1
0
forked from rpms/plymouth

More boot blocking fixes

Related: #870695
This commit is contained in:
Ray Strode 2012-11-02 19:09:52 -04:00
parent 767da6cc7e
commit 5d01314b1e
2 changed files with 76 additions and 3 deletions

View File

@ -1,7 +1,7 @@
From 6ccedf7b6ecdc8314ed97355cfe5499fffb13a1e Mon Sep 17 00:00:00 2001
From: Ray Strode <rstrode@redhat.com>
Date: Thu, 1 Nov 2012 17:04:33 -0400
Subject: [PATCH 1/2] main: if deactivate when already deactivated return
Subject: [PATCH 1/3] main: if deactivate when already deactivated return
immediately
We were trying to ignore second deactivate requests, but
@ -40,7 +40,7 @@ index 88e5002..60ca28f 100644
From b3548ebaf76d222f56d6a7b34c5940b930d47609 Mon Sep 17 00:00:00 2001
From: Ray Strode <rstrode@redhat.com>
Date: Thu, 1 Nov 2012 17:16:07 -0400
Subject: [PATCH 2/2] two-step: don't update progress when idle
Subject: [PATCH 2/3] two-step: don't update progress when idle
We've already reach a state where we aren't drawing anymore, etc,
so don't update progress and potentially fire off animations
@ -66,3 +66,72 @@ index 2998beb..541a108 100644
--
1.7.12.1
From a6129abfc527ac247685d80fc5c20144be1badca Mon Sep 17 00:00:00 2001
From: Ray Strode <rstrode@redhat.com>
Date: Fri, 2 Nov 2012 17:26:41 -0400
Subject: [PATCH 3/3] main: make plymouth show-splash idempotent
plymouth show-splash causes hairy things, that should only happen once,
like activating renderers to happen.
This commit makes subsequent show-splash calls be no-ops.
---
src/main.c | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/src/main.c b/src/main.c
index 60ca28f..ff06163 100644
--- a/src/main.c
+++ b/src/main.c
@@ -113,6 +113,7 @@ typedef struct
uint32_t should_be_attached : 1;
uint32_t should_retain_splash : 1;
uint32_t is_inactive : 1;
+ uint32_t is_shown : 1;
uint32_t should_force_details : 1;
char *kernel_console_tty;
@@ -871,6 +872,12 @@ on_show_splash (state_t *state)
{
bool has_display;
+ if (state->is_shown)
+ {
+ ply_trace ("show splash called while already shown");
+ return;
+ }
+
if (state->is_inactive)
{
ply_trace ("show splash called while inactive");
@@ -884,6 +891,8 @@ on_show_splash (state_t *state)
return;
}
+ state->is_shown = true;
+
check_for_consoles (state, state->default_tty, true);
has_display = ply_list_get_length (state->pixel_displays) > 0 ||
@@ -1012,6 +1021,8 @@ dump_details_and_quit_splash (state_t *state)
if (state->boot_splash != NULL)
ply_boot_splash_hide (state->boot_splash);
+ state->is_shown = false;
+
quit_splash (state);
}
@@ -1116,6 +1127,8 @@ on_boot_splash_idle (state_t *state)
ply_renderer_deactivate (state->renderer);
if (state->boot_splash != NULL)
ply_boot_splash_hide (state->boot_splash);
+
+ state->is_shown = false;
}
ply_trace ("quitting splash");
--
1.7.12.1

View File

@ -6,7 +6,7 @@
Summary: Graphical Boot Animation and Logger
Name: plymouth
Version: 0.8.8
Release: 2%{?dist}
Release: 3%{?dist}
License: GPLv2+
Group: System Environment/Base
Source0: http://freedesktop.org/software/plymouth/releases/%{name}-%{version}.tar.bz2
@ -507,6 +507,10 @@ fi
%defattr(-, root, root)
%changelog
* Fri Nov 02 2012 Ray Strode <rstrode@redhat.com> 0.8.8-3
- More boot blocking fixes
Related: #870695
* Thu Nov 01 2012 Ray Strode <rstrode@redhat.com> 0.8.8-2
- Fix crash when deactivating multiple times
Related: #870695