diff options
author | CoprDistGit <infra@openeuler.org> | 2024-08-06 02:26:06 +0000 |
---|---|---|
committer | CoprDistGit <infra@openeuler.org> | 2024-08-06 02:26:06 +0000 |
commit | 5957157a0edfe9f07583bdb7530b172da2d7adfd (patch) | |
tree | 3bbe9ee8b02c4b84782d71167ed57549c008ce92 /0001-update-common-submodule.patch | |
parent | 568b42b6ea0df8c498b6d8583c24caf101a47dd8 (diff) |
automatic import of libguestfsopeneuler24.03_LTS
Diffstat (limited to '0001-update-common-submodule.patch')
-rw-r--r-- | 0001-update-common-submodule.patch | 138 |
1 files changed, 138 insertions, 0 deletions
diff --git a/0001-update-common-submodule.patch b/0001-update-common-submodule.patch new file mode 100644 index 0000000..f15d70b --- /dev/null +++ b/0001-update-common-submodule.patch @@ -0,0 +1,138 @@ +From 5c672d1541e7d769e73e6858944d33f66be12f30 Mon Sep 17 00:00:00 2001 +From: Laszlo Ersek <lersek@redhat.com> +Date: Tue, 14 Mar 2023 14:15:05 +0100 +Subject: [PATCH] update common submodule + +Andrey Drobyshev (2): + inject_virtio_win: add Virtio_SCSI to block_type + inject_virtio_win: write the proper block controller PCI ID to Win registry + +Richard W.M. Jones (2): + mlcustomize: Fix overlong comment + mlcustomize: Add accessors for block driver priority list + +Roman Kagan (1): + inject_virtio_win: match only vendor/device/revision + +Signed-off-by: Laszlo Ersek <lersek@redhat.com> +(cherry picked from commit 7414ac40c7df0a8938a05ba50907312b0093d107) +--- + common | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +Submodule common 90e0077e..360e037d: +diff --git a/common/mlcustomize/inject_virtio_win.ml b/common/mlcustomize/inject_virtio_win.ml +index 5f4aab72..2a30b200 100644 +--- a/common/mlcustomize/inject_virtio_win.ml ++++ b/common/mlcustomize/inject_virtio_win.ml +@@ -49,9 +49,12 @@ type t = { + of libosinfo. Although this behaviour is documented, IMHO it has + always been a bad idea. We should change this in future to allow + the user to select where they want to get drivers from. XXX *) ++ ++ mutable block_driver_priority : string list ++ (** List of block drivers *) + } + +-type block_type = Virtio_blk | IDE ++type block_type = Virtio_blk | Virtio_SCSI | IDE + and net_type = Virtio_net | E1000 | RTL8139 + and machine_type = I440FX | Q35 | Virt + +@@ -107,13 +110,17 @@ and get_inspection g root = + { g; root; + i_arch; i_major_version; i_minor_version; i_osinfo; + i_product_variant; i_windows_current_control_set; i_windows_systemroot; +- virtio_win = ""; was_set = false } ++ virtio_win = ""; was_set = false; ++ block_driver_priority = ["virtio_blk"; "vrtioblk"; "viostor"] } ++ ++let get_block_driver_priority t = t.block_driver_priority ++let set_block_driver_priority t v = t.block_driver_priority <- v + + let scsi_class_guid = "{4D36E97B-E325-11CE-BFC1-08002BE10318}" +-let viostor_legacy_pciid = "VEN_1AF4&DEV_1001&SUBSYS_00021AF4&REV_00" +-let viostor_modern_pciid = "VEN_1AF4&DEV_1042&SUBSYS_11001AF4&REV_01" +-let vioscsi_legacy_pciid = "VEN_1AF4&DEV_1004&SUBSYS_00081AF4&REV_00" +-let vioscsi_modern_pciid = "VEN_1AF4&DEV_1048&SUBSYS_11001AF4&REV_01" ++let viostor_legacy_pciid = "VEN_1AF4&DEV_1001&REV_00" ++let viostor_modern_pciid = "VEN_1AF4&DEV_1042&REV_01" ++let vioscsi_legacy_pciid = "VEN_1AF4&DEV_1004&REV_00" ++let vioscsi_modern_pciid = "VEN_1AF4&DEV_1048&REV_01" + + let rec inject_virtio_win_drivers ({ g } as t) reg = + (* Copy the virtio drivers to the guest. *) +@@ -176,14 +183,13 @@ let rec inject_virtio_win_drivers ({ g } as t) reg = + else ( + (* Can we install the block driver? *) + let block : block_type = +- let filenames = ["virtio_blk"; "vrtioblk"; "viostor"] in + let viostor_driver = try ( + Some ( + List.find ( + fun driver_file -> + let source = driverdir // driver_file ^ ".sys" in + g#exists source +- ) filenames ++ ) t.block_driver_priority + ) + ) with Not_found -> None in + match viostor_driver with +@@ -194,16 +200,22 @@ let rec inject_virtio_win_drivers ({ g } as t) reg = + IDE + + | Some driver_name -> +- (* Block driver needs tweaks to allow booting; the rest is set up by PnP +- * manager *) ++ (* Block driver needs tweaks to allow booting; ++ * the rest is set up by PnP manager. ++ *) + let source = driverdir // (driver_name ^ ".sys") in + let target = sprintf "%s/system32/drivers/%s.sys" + t.i_windows_systemroot driver_name in + let target = g#case_sensitive_path target in ++ let installed_block_type, legacy_pciid, modern_pciid = ++ match driver_name with ++ | "vioscsi" -> Virtio_SCSI, vioscsi_legacy_pciid, vioscsi_modern_pciid ++ | _ -> Virtio_blk, viostor_legacy_pciid, viostor_modern_pciid ++ in + g#cp source target; +- add_guestor_to_registry t reg driver_name viostor_legacy_pciid; +- add_guestor_to_registry t reg driver_name viostor_modern_pciid; +- Virtio_blk in ++ add_guestor_to_registry t reg driver_name legacy_pciid; ++ add_guestor_to_registry t reg driver_name modern_pciid; ++ installed_block_type in + + (* Can we install the virtio-net driver? *) + let net : net_type = +diff --git a/common/mlcustomize/inject_virtio_win.mli b/common/mlcustomize/inject_virtio_win.mli +index 0ced02e8..d14f0497 100644 +--- a/common/mlcustomize/inject_virtio_win.mli ++++ b/common/mlcustomize/inject_virtio_win.mli +@@ -20,7 +20,7 @@ + + type t (** Handle *) + +-type block_type = Virtio_blk | IDE ++type block_type = Virtio_blk | Virtio_SCSI | IDE + and net_type = Virtio_net | E1000 | RTL8139 + and machine_type = I440FX | Q35 | Virt + +@@ -64,6 +64,16 @@ val from_environment : Guestfs.guestfs -> string -> string -> t + + This should only be used by [virt-v2v] and is considered a legacy method. *) + ++val get_block_driver_priority : t -> string list ++val set_block_driver_priority : t -> string list -> unit ++(** Get or set the current block driver priority list. This is ++ a list of virtio-win block driver names (eg. ["viostor"]) that ++ we search until we come to the first [name ^ ".sys"] that ++ we find, and that is the block driver which gets installed. ++ ++ This module contains a default priority list which should ++ be suitable for most use cases. *) ++ + val inject_virtio_win_drivers : t -> Registry.t -> virtio_win_installed + (** [inject_virtio_win_drivers t reg] + installs virtio drivers from the driver directory or driver |