Skip to content

Commit

Permalink
PM: base: power: don't try to use non-existing RTC for storing data
Browse files Browse the repository at this point in the history
commit 0560204 upstream.

If there is no legacy RTC device, don't try to use it for storing trace
data across suspend/resume.

Cc: <stable@vger.kernel.org>
Signed-off-by: Juergen Gross <jgross@suse.com>
Reviewed-by: Rafael J. Wysocki <rafael@kernel.org>
Link: https://lore.kernel.org/r/20210903084937.19392-2-jgross@suse.com
Signed-off-by: Juergen Gross <jgross@suse.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  • Loading branch information
jgross1 authored and gregkh committed Sep 22, 2021
1 parent 06cd58a commit 0b4547d
Showing 1 changed file with 10 additions and 0 deletions.
10 changes: 10 additions & 0 deletions drivers/base/power/trace.c
Expand Up @@ -13,6 +13,7 @@
#include <linux/export.h>
#include <linux/rtc.h>
#include <linux/suspend.h>
#include <linux/init.h>

#include <linux/mc146818rtc.h>

Expand Down Expand Up @@ -165,6 +166,9 @@ void generate_pm_trace(const void *tracedata, unsigned int user)
const char *file = *(const char **)(tracedata + 2);
unsigned int user_hash_value, file_hash_value;

if (!x86_platform.legacy.rtc)
return;

user_hash_value = user % USERHASH;
file_hash_value = hash_string(lineno, file, FILEHASH);
set_magic_time(user_hash_value, file_hash_value, dev_hash_value);
Expand Down Expand Up @@ -267,6 +271,9 @@ static struct notifier_block pm_trace_nb = {

static int __init early_resume_init(void)
{
if (!x86_platform.legacy.rtc)
return 0;

hash_value_early_read = read_magic_time();
register_pm_notifier(&pm_trace_nb);
return 0;
Expand All @@ -277,6 +284,9 @@ static int __init late_resume_init(void)
unsigned int val = hash_value_early_read;
unsigned int user, file, dev;

if (!x86_platform.legacy.rtc)
return 0;

user = val % USERHASH;
val = val / USERHASH;
file = val % FILEHASH;
Expand Down

0 comments on commit 0b4547d

Please sign in to comment.