From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on sa.local.altlinux.org X-Spam-Level: X-Spam-Status: No, score=-4.3 required=5.0 tests=ALL_TRUSTED,BAYES_00, RP_MATCHES_RCVD autolearn=ham autolearn_force=no version=3.4.1 From: Alexey Sheplyakov To: devel-kernel@lists.altlinux.org Date: Mon, 3 Oct 2022 18:02:03 +0400 Message-Id: <20221003140226.1064966-8-asheplyakov@basealt.ru> X-Mailer: git-send-email 2.33.3 In-Reply-To: <20221003140226.1064966-1-asheplyakov@basealt.ru> References: <20221003140226.1064966-1-asheplyakov@basealt.ru> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Cc: nir@basealt.ru, jqt4@basealt.ru, rst@basealt.ru, sin@basealt.ru Subject: [d-kernel] [PATCH 07/31] efi-rtc: avoid calling efi.get_time on Baikal-M SoC X-BeenThere: devel-kernel@lists.altlinux.org X-Mailman-Version: 2.1.12 Precedence: list Reply-To: ALT Linux kernel packages development List-Id: ALT Linux kernel packages development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 Oct 2022 14:03:19 -0000 Archived-At: List-Archive: List-Post: Old versions of Baikal-M UEFI (before SDK-M 4.4) do NOT provide get_time at the runtime (not even as a stub), hence calling it results in an Oops. Signed-off-by: Alexey Sheplyakov X-DONTUPSTREAM X-legacy X-feature-Baikal-M --- drivers/rtc/rtc-efi.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/drivers/rtc/rtc-efi.c b/drivers/rtc/rtc-efi.c index 11850c2880ad..472d9f54ebe8 100644 --- a/drivers/rtc/rtc-efi.c +++ b/drivers/rtc/rtc-efi.c @@ -17,6 +17,7 @@ #include #include #include +#include #define EFI_ISDST (EFI_TIME_ADJUST_DAYLIGHT|EFI_TIME_IN_DAYLIGHT) @@ -257,6 +258,14 @@ static int __init efi_rtc_probe(struct platform_device *dev) efi_time_t eft; efi_time_cap_t cap; +#ifdef CONFIG_OF + /* efi.get_time is not always safe to call since some UEFI + * implementations do not privde get_time at runtime. */ + if (of_device_is_compatible(of_root, "baikal,baikal-m")) { + dev_err(&dev->dev, "Baikal-M UEFI has no get_time\n"); + return -ENODEV; + } +#endif /* First check if the RTC is usable */ if (efi.get_time(&eft, &cap) != EFI_SUCCESS) return -ENODEV; -- 2.33.3