plymouth-24.004.60-immediately-probe-simpledrm.patch 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527
  1. From 64379c1100a0177f52e130601d44a7ffe0fdedf1 Mon Sep 17 00:00:00 2001
  2. From: Hans de Goede <hdegoede@redhat.com>
  3. Date: Tue, 4 Jun 2024 21:09:00 +0200
  4. Subject: [PATCH 1/9] ply-utils: Add ply_string_has_suffix () helper function
  5. Add a ply_string_has_suffix () helper function to match the existing
  6. ply_string_has_prefix () helper function.
  7. ---
  8. src/libply/ply-utils.c | 18 ++++++++++++++++++
  9. src/libply/ply-utils.h | 2 ++
  10. 2 files changed, 20 insertions(+)
  11. diff --git a/src/libply/ply-utils.c b/src/libply/ply-utils.c
  12. index 0e317b67..d6d127f1 100644
  13. --- a/src/libply/ply-utils.c
  14. +++ b/src/libply/ply-utils.c
  15. @@ -473,6 +473,24 @@ ply_string_has_prefix (const char *str,
  16. return strncmp (str, prefix, strlen (prefix)) == 0;
  17. }
  18. +bool
  19. +ply_string_has_suffix (const char *str,
  20. + const char *suffix)
  21. +{
  22. + size_t str_len, suffix_len;
  23. +
  24. + if (str == NULL || suffix == NULL)
  25. + return false;
  26. +
  27. + str_len = strlen (str);
  28. + suffix_len = strlen (suffix);
  29. +
  30. + if (suffix_len > str_len)
  31. + return false;
  32. +
  33. + return strcmp (str + (str_len - suffix_len), suffix) == 0;
  34. +}
  35. +
  36. double
  37. ply_get_timestamp (void)
  38. {
  39. diff --git a/src/libply/ply-utils.h b/src/libply/ply-utils.h
  40. index 7cbbb2f4..86d66384 100644
  41. --- a/src/libply/ply-utils.h
  42. +++ b/src/libply/ply-utils.h
  43. @@ -109,6 +109,8 @@ char **ply_copy_string_array (const char *const *array);
  44. void ply_free_string_array (char **array);
  45. bool ply_string_has_prefix (const char *str,
  46. const char *prefix);
  47. +bool ply_string_has_suffix (const char *str,
  48. + const char *suffix);
  49. double ply_get_timestamp (void);
  50. void ply_save_errno (void);
  51. --
  52. 2.45.1
  53. From 1c3ff0338c80a831b2f0ea63a57e20c9013ddb52 Mon Sep 17 00:00:00 2001
  54. From: Hans de Goede <hdegoede@redhat.com>
  55. Date: Tue, 4 Jun 2024 21:16:31 +0200
  56. Subject: [PATCH 2/9] ply-device-manager: Add syspath_is_simpledrm () helper
  57. Add a helper to determine if a udev syspath is a simpledrm device.
  58. This is a preparation patch to for making simpledrm devices their
  59. own renderer-type.
  60. ---
  61. src/libply-splash-core/ply-device-manager.c | 11 +++++++----
  62. 1 file changed, 7 insertions(+), 4 deletions(-)
  63. diff --git a/src/libply-splash-core/ply-device-manager.c b/src/libply-splash-core/ply-device-manager.c
  64. index d75ac6c5..4c48f606 100644
  65. --- a/src/libply-splash-core/ply-device-manager.c
  66. +++ b/src/libply-splash-core/ply-device-manager.c
  67. @@ -339,11 +339,15 @@ remove_input_device_from_renderers (ply_device_manager_t *manager,
  68. ply_hashtable_foreach (manager->renderers, (ply_hashtable_foreach_func_t *) on_each_input_device_remove_from_renderer, input_device);
  69. }
  70. +static bool
  71. +syspath_is_simpledrm (const char *syspath)
  72. +{
  73. + return ply_string_has_suffix (syspath, "simple-framebuffer.0/drm/card0");
  74. +}
  75. +
  76. static bool
  77. verify_drm_device (struct udev_device *device)
  78. {
  79. - const char *id_path;
  80. -
  81. /*
  82. * Simple-framebuffer devices driven by simpledrm lack information
  83. * like panel-rotation info and physical size, causing the splash
  84. @@ -352,8 +356,7 @@ verify_drm_device (struct udev_device *device)
  85. * To avoid this treat simpledrm devices as fbdev devices and only
  86. * use them after the timeout.
  87. */
  88. - id_path = udev_device_get_property_value (device, "ID_PATH");
  89. - if (!ply_string_has_prefix (id_path, "platform-simple-framebuffer"))
  90. + if (!syspath_is_simpledrm (udev_device_get_syspath (device)))
  91. return true; /* Not a SimpleDRM device */
  92. /*
  93. --
  94. 2.45.1
  95. From 19d49a42fcc3cf9d3ee62a572eec24e8b73f9799 Mon Sep 17 00:00:00 2001
  96. From: Hans de Goede <hdegoede@redhat.com>
  97. Date: Tue, 4 Jun 2024 21:24:22 +0200
  98. Subject: [PATCH 3/9] ply-renderer: Add new PLY_RENDERER_TYPE_SIMPLEDRM
  99. renderer-type
  100. Add a new PLY_RENDERER_TYPE_SIMPLEDRM renderer-type to help differentiate
  101. the simpledrm case from the regular drm device case.
  102. simpledrm devices require some special handling in the device-manager,
  103. this is a preparation patch for improving the simpledrm handling
  104. in ply-device-manager.
  105. ---
  106. src/libply-splash-core/ply-device-manager.c | 11 ++++++++---
  107. src/libply-splash-core/ply-renderer.c | 1 +
  108. src/libply-splash-core/ply-renderer.h | 1 +
  109. 3 files changed, 10 insertions(+), 3 deletions(-)
  110. diff --git a/src/libply-splash-core/ply-device-manager.c b/src/libply-splash-core/ply-device-manager.c
  111. index 4c48f606..256b38d0 100644
  112. --- a/src/libply-splash-core/ply-device-manager.c
  113. +++ b/src/libply-splash-core/ply-device-manager.c
  114. @@ -380,7 +380,7 @@ static bool
  115. create_devices_for_udev_device (ply_device_manager_t *manager,
  116. struct udev_device *device)
  117. {
  118. - const char *device_path, *device_sysname;
  119. + const char *device_path, *device_sysname, *device_syspath;
  120. bool created = false;
  121. bool force_fb = false;
  122. @@ -389,6 +389,7 @@ create_devices_for_udev_device (ply_device_manager_t *manager,
  123. device_path = udev_device_get_devnode (device);
  124. device_sysname = udev_device_get_sysname (device);
  125. + device_syspath = udev_device_get_syspath (device);
  126. if (device_path != NULL) {
  127. const char *subsystem;
  128. @@ -403,7 +404,10 @@ create_devices_for_udev_device (ply_device_manager_t *manager,
  129. return false;
  130. }
  131. ply_trace ("found DRM device %s", device_path);
  132. - renderer_type = PLY_RENDERER_TYPE_DRM;
  133. + if (syspath_is_simpledrm (device_syspath))
  134. + renderer_type = PLY_RENDERER_TYPE_SIMPLEDRM;
  135. + else
  136. + renderer_type = PLY_RENDERER_TYPE_DRM;
  137. } else if (strcmp (subsystem, SUBSYSTEM_FRAME_BUFFER) == 0) {
  138. ply_trace ("found frame buffer device %s", device_path);
  139. if (!fb_device_has_drm_device (manager, device))
  140. @@ -446,7 +450,8 @@ create_devices_for_udev_device (ply_device_manager_t *manager,
  141. terminal,
  142. renderer_type);
  143. if (created) {
  144. - if (renderer_type == PLY_RENDERER_TYPE_DRM)
  145. + if (renderer_type == PLY_RENDERER_TYPE_DRM ||
  146. + renderer_type == PLY_RENDERER_TYPE_SIMPLEDRM)
  147. manager->found_drm_device = 1;
  148. if (renderer_type == PLY_RENDERER_TYPE_FRAME_BUFFER)
  149. manager->found_fb_device = 1;
  150. diff --git a/src/libply-splash-core/ply-renderer.c b/src/libply-splash-core/ply-renderer.c
  151. index 40a2c813..6a7aff96 100644
  152. --- a/src/libply-splash-core/ply-renderer.c
  153. +++ b/src/libply-splash-core/ply-renderer.c
  154. @@ -269,6 +269,7 @@ ply_renderer_open (ply_renderer_t *renderer)
  155. {
  156. { PLY_RENDERER_TYPE_X11, PLYMOUTH_PLUGIN_PATH "renderers/x11.so" },
  157. { PLY_RENDERER_TYPE_DRM, PLYMOUTH_PLUGIN_PATH "renderers/drm.so" },
  158. + { PLY_RENDERER_TYPE_SIMPLEDRM, PLYMOUTH_PLUGIN_PATH "renderers/drm.so" },
  159. { PLY_RENDERER_TYPE_FRAME_BUFFER, PLYMOUTH_PLUGIN_PATH "renderers/frame-buffer.so" },
  160. { PLY_RENDERER_TYPE_NONE, NULL }
  161. };
  162. diff --git a/src/libply-splash-core/ply-renderer.h b/src/libply-splash-core/ply-renderer.h
  163. index 5fbf819d..34ff5886 100644
  164. --- a/src/libply-splash-core/ply-renderer.h
  165. +++ b/src/libply-splash-core/ply-renderer.h
  166. @@ -41,6 +41,7 @@ typedef enum
  167. PLY_RENDERER_TYPE_NONE = -1,
  168. PLY_RENDERER_TYPE_AUTO,
  169. PLY_RENDERER_TYPE_DRM,
  170. + PLY_RENDERER_TYPE_SIMPLEDRM,
  171. PLY_RENDERER_TYPE_FRAME_BUFFER,
  172. PLY_RENDERER_TYPE_X11
  173. } ply_renderer_type_t;
  174. --
  175. 2.45.1
  176. From 188a4393b11fdb25f1fcc7e1ca763d62374b3d70 Mon Sep 17 00:00:00 2001
  177. From: Hans de Goede <hdegoede@redhat.com>
  178. Date: Tue, 4 Jun 2024 22:05:20 +0200
  179. Subject: [PATCH 4/9] ply-renderer: Add ply_renderer_get_type ()
  180. Add a ply_renderer_get_type () helper function to get the type of
  181. a renderer.
  182. ---
  183. src/libply-splash-core/ply-renderer.c | 6 ++++++
  184. src/libply-splash-core/ply-renderer.h | 1 +
  185. 2 files changed, 7 insertions(+)
  186. diff --git a/src/libply-splash-core/ply-renderer.c b/src/libply-splash-core/ply-renderer.c
  187. index 6a7aff96..61c59ccc 100644
  188. --- a/src/libply-splash-core/ply-renderer.c
  189. +++ b/src/libply-splash-core/ply-renderer.c
  190. @@ -102,6 +102,12 @@ ply_renderer_get_device_name (ply_renderer_t *renderer)
  191. return renderer->device_name;
  192. }
  193. +ply_renderer_type_t
  194. +ply_renderer_get_type (ply_renderer_t *renderer)
  195. +{
  196. + return renderer->type;
  197. +}
  198. +
  199. static bool
  200. ply_renderer_load_plugin (ply_renderer_t *renderer,
  201. const char *module_path)
  202. diff --git a/src/libply-splash-core/ply-renderer.h b/src/libply-splash-core/ply-renderer.h
  203. index 34ff5886..cfd4f2dd 100644
  204. --- a/src/libply-splash-core/ply-renderer.h
  205. +++ b/src/libply-splash-core/ply-renderer.h
  206. @@ -63,6 +63,7 @@ void ply_renderer_activate (ply_renderer_t *renderer);
  207. void ply_renderer_deactivate (ply_renderer_t *renderer);
  208. bool ply_renderer_is_active (ply_renderer_t *renderer);
  209. const char *ply_renderer_get_device_name (ply_renderer_t *renderer);
  210. +ply_renderer_type_t ply_renderer_get_type (ply_renderer_t *renderer);
  211. ply_list_t *ply_renderer_get_heads (ply_renderer_t *renderer);
  212. ply_pixel_buffer_t *ply_renderer_get_buffer_for_head (ply_renderer_t *renderer,
  213. ply_renderer_head_t *head);
  214. --
  215. 2.45.1
  216. From 9096b304f6bec090ed53aa280f234c2b4fd18828 Mon Sep 17 00:00:00 2001
  217. From: Hans de Goede <hdegoede@redhat.com>
  218. Date: Wed, 5 Jun 2024 21:31:55 +0200
  219. Subject: [PATCH 5/9] ply-device-manager: Skip /dev/dri/render nodes
  220. DRM render nodes do not support KMS and trying to probe them just
  221. slows things down, so skip them.
  222. ---
  223. src/libply-splash-core/ply-device-manager.c | 4 ++++
  224. 1 file changed, 4 insertions(+)
  225. diff --git a/src/libply-splash-core/ply-device-manager.c b/src/libply-splash-core/ply-device-manager.c
  226. index 256b38d0..51990b7c 100644
  227. --- a/src/libply-splash-core/ply-device-manager.c
  228. +++ b/src/libply-splash-core/ply-device-manager.c
  229. @@ -403,6 +403,10 @@ create_devices_for_udev_device (ply_device_manager_t *manager,
  230. ply_trace ("ignoring since we only handle SimpleDRM devices after timeout");
  231. return false;
  232. }
  233. + if (ply_string_has_prefix (device_path, "/dev/dri/render")) {
  234. + ply_trace ("ignoring since it is a render node");
  235. + return false;
  236. + }
  237. ply_trace ("found DRM device %s", device_path);
  238. if (syspath_is_simpledrm (device_syspath))
  239. renderer_type = PLY_RENDERER_TYPE_SIMPLEDRM;
  240. --
  241. 2.45.1
  242. From eb5abda0c2fbcd88892f2fbd346a1ac2413cc8ad Mon Sep 17 00:00:00 2001
  243. From: Hans de Goede <hdegoede@redhat.com>
  244. Date: Wed, 5 Jun 2024 21:38:43 +0200
  245. Subject: [PATCH 6/9] ply-device-manager: Move local_console_terminal handling
  246. for DRM/FB renderers
  247. create_devices_for_terminal_and_renderer_type () only ever gets called with
  248. a NULL terminal parameter when create_devices_for_udev_device () is calling
  249. it to create a DRM or FB renderer.
  250. Move the use of local_console_terminal as terminal for the first DRM / FB
  251. renderer created from create_devices_for_udev_device () to
  252. create_devices_for_terminal_and_renderer_type () with an extra !terminal
  253. check.
  254. This is a preparation patch for fixing an issue where the local_console
  255. is managed by a simpledrm renderer and the remove event for that gets
  256. processed after the add event of the normal drm device which leaves
  257. the local_console unmanaged breaking legacy input support.
  258. ---
  259. src/libply-splash-core/ply-device-manager.c | 15 ++++++---------
  260. 1 file changed, 6 insertions(+), 9 deletions(-)
  261. diff --git a/src/libply-splash-core/ply-device-manager.c b/src/libply-splash-core/ply-device-manager.c
  262. index 51990b7c..65504e93 100644
  263. --- a/src/libply-splash-core/ply-device-manager.c
  264. +++ b/src/libply-splash-core/ply-device-manager.c
  265. @@ -441,17 +441,9 @@ create_devices_for_udev_device (ply_device_manager_t *manager,
  266. }
  267. if (renderer_type != PLY_RENDERER_TYPE_NONE) {
  268. - ply_terminal_t *terminal = NULL;
  269. -
  270. - if (!manager->local_console_managed &&
  271. - manager->local_console_terminal != NULL &&
  272. - ply_terminal_is_vt (manager->local_console_terminal)) {
  273. - terminal = manager->local_console_terminal;
  274. - }
  275. -
  276. created = create_devices_for_terminal_and_renderer_type (manager,
  277. device_path,
  278. - terminal,
  279. + NULL,
  280. renderer_type);
  281. if (created) {
  282. if (renderer_type == PLY_RENDERER_TYPE_DRM ||
  283. @@ -1105,6 +1097,11 @@ create_devices_for_terminal_and_renderer_type (ply_device_manager_t *manager,
  284. return true;
  285. }
  286. + if (!terminal && !manager->local_console_managed &&
  287. + manager->local_console_terminal != NULL &&
  288. + ply_terminal_is_vt (manager->local_console_terminal))
  289. + terminal = manager->local_console_terminal;
  290. +
  291. ply_trace ("creating devices for %s (renderer type: %u) (terminal: %s)",
  292. device_path ? : "", renderer_type, terminal ? ply_terminal_get_name (terminal) : "none");
  293. --
  294. 2.45.1
  295. From 8c0d5965030aae11249cbe1e42decc0654005c39 Mon Sep 17 00:00:00 2001
  296. From: Hans de Goede <hdegoede@redhat.com>
  297. Date: Wed, 5 Jun 2024 21:52:19 +0200
  298. Subject: [PATCH 7/9] ply-device-manager: Remove simpledrm renderers before
  299. adding normal drm renderers
  300. udev remove events for simpledrm udev devices may arrive after the udev add
  301. event for a normal drm udev device which is replacing the simpledrm device.
  302. When the local_console is managed by a simpledrm renderer and the remove
  303. event for the simpledrm renderer is received after the add event of
  304. the normal drm device, the local_console is left unmanaged breaking legacy
  305. input support.
  306. When this scenario gets hit it breaks entering disk unlock passwords.
  307. Add code to remove simpledrm renderers before adding normal drm renderers
  308. to avoid this.
  309. ---
  310. src/libply-splash-core/ply-device-manager.c | 24 +++++++++++++++++++++
  311. 1 file changed, 24 insertions(+)
  312. diff --git a/src/libply-splash-core/ply-device-manager.c b/src/libply-splash-core/ply-device-manager.c
  313. index 65504e93..1c9560d7 100644
  314. --- a/src/libply-splash-core/ply-device-manager.c
  315. +++ b/src/libply-splash-core/ply-device-manager.c
  316. @@ -1080,6 +1080,18 @@ create_text_displays_for_terminal (ply_device_manager_t *manager,
  317. manager->text_display_added_handler (manager->event_handler_data, display);
  318. }
  319. +static void
  320. +free_simpledrm_renderer (char *device_path,
  321. + ply_renderer_t *renderer,
  322. + ply_device_manager_t *manager)
  323. +{
  324. + if (ply_renderer_get_type (renderer) != PLY_RENDERER_TYPE_SIMPLEDRM)
  325. + return;
  326. +
  327. + ply_trace ("removing simpledrm renderer %s", device_path);
  328. + free_devices_from_device_path (manager, device_path, true);
  329. +}
  330. +
  331. static bool
  332. create_devices_for_terminal_and_renderer_type (ply_device_manager_t *manager,
  333. const char *device_path,
  334. @@ -1097,6 +1109,18 @@ create_devices_for_terminal_and_renderer_type (ply_device_manager_t *manager,
  335. return true;
  336. }
  337. + /*
  338. + * simpledrm udev remove events may arrive after normal drm device add
  339. + * events, leaving the local_console unmanaged breaking legacy input.
  340. + * Remove simpledrm renderers before adding drm renderers to avoid this.
  341. + */
  342. + if (renderer_type == PLY_RENDERER_TYPE_DRM) {
  343. + ply_hashtable_foreach (manager->renderers,
  344. + (ply_hashtable_foreach_func_t *)
  345. + free_simpledrm_renderer,
  346. + manager);
  347. + }
  348. +
  349. if (!terminal && !manager->local_console_managed &&
  350. manager->local_console_terminal != NULL &&
  351. ply_terminal_is_vt (manager->local_console_terminal))
  352. --
  353. 2.45.1
  354. From 2f8b64ea4c6cefca6569ab94dc37d436a3fbf048 Mon Sep 17 00:00:00 2001
  355. From: Hans de Goede <hdegoede@redhat.com>
  356. Date: Tue, 4 Jun 2024 23:07:19 +0200
  357. Subject: [PATCH 8/9] ply-device-manager: Create renderer for simpledrm devices
  358. right away
  359. Often when plymouth starts and enumerates udev devices which are already
  360. present at start (coldplug detection), udev is still initializing all
  361. the devices and it reports 0 for udev_device_get_is_initialized ().
  362. It may take a long time for the state of the simpledrm udev device
  363. to change to initialized and for a udev add event to be send.
  364. Especially when the amdgpu kernel module is involved which is very
  365. large for a kernel module and can take op to 7 seconds to load.
  366. In this case it is even possible for plymouth's default DeviceTimeout
  367. of 8 seconds to trigger before the simpledrm device is considered
  368. initialized. See for example these lines extracted from the plymouth-debug
  369. log attached to: https://bugzilla.redhat.com/show_bug.cgi?id=2183743
  370. 00:00:02.909 ../src/libply-splash-core/ply-device-manager.c:498:create_devi: found device /sys/devices/pci0000:00/0000:00:01.0/simple-framebuffer.0/drm/card0
  371. 00:00:02.910 ../src/libply-splash-core/ply-device-manager.c:513:create_devi: it's not initialized
  372. 00:00:10.917 ../src/libply-splash-core/ply-device-manager.c:1237:create_dev: Timeout elapsed, looking for devices from udev
  373. 00:00:10.918 ../src/libply-splash-core/ply-device-manager.c:498:create_devi: found device /sys/devices/pci0000:00/0000:00:01.0/simple-framebuffer.0/drm/card0
  374. 00:00:10.918 ../src/libply-splash-core/ply-device-manager.c:513:create_devi: it's not initialized
  375. This leads to plymouth falling back to the text splash even when
  376. plymouth.use-simpledrm is passed on the kernel commandline.
  377. Add a special case for simpledrm devices and add these during coldboot
  378. even if they are not initialized yet.
  379. ---
  380. src/libply-splash-core/ply-device-manager.c | 10 ++++++----
  381. 1 file changed, 6 insertions(+), 4 deletions(-)
  382. diff --git a/src/libply-splash-core/ply-device-manager.c b/src/libply-splash-core/ply-device-manager.c
  383. index 1c9560d7..90a60661 100644
  384. --- a/src/libply-splash-core/ply-device-manager.c
  385. +++ b/src/libply-splash-core/ply-device-manager.c
  386. @@ -490,6 +490,7 @@ create_devices_for_subsystem (ply_device_manager_t *manager,
  387. udev_list_entry_foreach (entry, udev_enumerate_get_list_entry (matches)){
  388. struct udev_device *device = NULL;
  389. const char *path, *node;
  390. + int initialized;
  391. path = udev_list_entry_get_name (entry);
  392. @@ -502,10 +503,11 @@ create_devices_for_subsystem (ply_device_manager_t *manager,
  393. device = udev_device_new_from_syspath (manager->udev_context, path);
  394. - /* if device isn't fully initialized, we'll get an add event later
  395. - */
  396. - if (udev_device_get_is_initialized (device)) {
  397. - ply_trace ("device is initialized");
  398. + /* If device isn't fully initialized, we'll get an add event later */
  399. + initialized = udev_device_get_is_initialized (device);
  400. + /* Simpledrm can be handled uninitialized and this shows the splash sooner */
  401. + if (initialized || syspath_is_simpledrm (path)) {
  402. + ply_trace ("device is initialized %d", initialized);
  403. node = udev_device_get_devnode (device);
  404. if (node != NULL) {
  405. --
  406. 2.45.1
  407. From 12fdedb4efb0b7e04c74f43917a180a20e54ea24 Mon Sep 17 00:00:00 2001
  408. From: Hans de Goede <hdegoede@redhat.com>
  409. Date: Wed, 5 Jun 2024 22:07:32 +0200
  410. Subject: [PATCH 9/9] ply-device-manager: Make create_devices_for_subsystem ()
  411. return void
  412. Make create_devices_for_subsystem () return void. Its callers do not care
  413. about the return value and currently the return value is not always correct
  414. since if a device is found, found may later become false again if
  415. a subsequent create_devices_for_udev_device () call fails.
  416. ---
  417. src/libply-splash-core/ply-device-manager.c | 11 ++++-------
  418. 1 file changed, 4 insertions(+), 7 deletions(-)
  419. diff --git a/src/libply-splash-core/ply-device-manager.c b/src/libply-splash-core/ply-device-manager.c
  420. index 90a60661..1f41e1b2 100644
  421. --- a/src/libply-splash-core/ply-device-manager.c
  422. +++ b/src/libply-splash-core/ply-device-manager.c
  423. @@ -458,23 +458,22 @@ create_devices_for_udev_device (ply_device_manager_t *manager,
  424. return created;
  425. }
  426. -static bool
  427. +static void
  428. create_devices_for_subsystem (ply_device_manager_t *manager,
  429. const char *subsystem)
  430. {
  431. struct udev_enumerate *matches;
  432. struct udev_list_entry *entry;
  433. - bool found_device = false;
  434. if (strcmp (subsystem, SUBSYSTEM_INPUT) == 0) {
  435. if (ply_kernel_command_line_has_argument ("plymouth.use-legacy-input")) {
  436. ply_trace ("Not creating devices for subsystem " SUBSYSTEM_INPUT " because plymouth.use-legacy-input on command line");
  437. - return false;
  438. + return;
  439. }
  440. if (manager->xkb_keymap == NULL) {
  441. ply_trace ("Not creating devices for subsystem " SUBSYSTEM_INPUT " because there is no configure XKB layout");
  442. - return false;
  443. + return;
  444. }
  445. }
  446. @@ -512,7 +511,7 @@ create_devices_for_subsystem (ply_device_manager_t *manager,
  447. node = udev_device_get_devnode (device);
  448. if (node != NULL) {
  449. ply_trace ("found node %s", node);
  450. - found_device = create_devices_for_udev_device (manager, device);
  451. + create_devices_for_udev_device (manager, device);
  452. }
  453. } else {
  454. ply_trace ("it's not initialized");
  455. @@ -522,8 +521,6 @@ create_devices_for_subsystem (ply_device_manager_t *manager,
  456. }
  457. udev_enumerate_unref (matches);
  458. -
  459. - return found_device;
  460. }
  461. static void
  462. --
  463. 2.45.1