53 lines
1.8 KiB
Diff
53 lines
1.8 KiB
Diff
|
From 468628bdc39800341e7aa6ff7795cc0d93cfaf3f Mon Sep 17 00:00:00 2001
|
||
|
From: Michael Chang <mchang@suse.com>
|
||
|
Date: Tue, 11 Apr 2023 10:59:34 +0800
|
||
|
Subject: [PATCH 1/2] openfw: Ensure get_devargs and get_devname functions are
|
||
|
consistent
|
||
|
|
||
|
Commit 165c9b234 changed the logic of ieee1275_get_devargs() to use the
|
||
|
first or second occurrence of a colon as a separator between device name
|
||
|
and arguments. However, this didn't align with the complementary
|
||
|
function ieee1275_get_devname, which uses the first occurrence of a
|
||
|
colon after the namespace keyword as arguments for the nvme-of device.
|
||
|
|
||
|
This commit addresses the inconsistency by ensuring that both functions
|
||
|
follow a common logic. Now, get_devargs and get_devname functions are
|
||
|
consistent with each other, making it easier to understand and maintain
|
||
|
the codebase.
|
||
|
|
||
|
Signed-off-by: Michael Chang <mchang@suse.com>
|
||
|
---
|
||
|
grub-core/kern/ieee1275/openfw.c | 15 +++++++++------
|
||
|
1 file changed, 9 insertions(+), 6 deletions(-)
|
||
|
|
||
|
diff --git a/grub-core/kern/ieee1275/openfw.c b/grub-core/kern/ieee1275/openfw.c
|
||
|
index e2ffec32d..3bbd07d95 100644
|
||
|
--- a/grub-core/kern/ieee1275/openfw.c
|
||
|
+++ b/grub-core/kern/ieee1275/openfw.c
|
||
|
@@ -354,13 +354,16 @@ static char *
|
||
|
grub_ieee1275_get_devargs (const char *path)
|
||
|
{
|
||
|
char *colon = grub_strchr (path, ':');
|
||
|
- char *colon_check = colon;
|
||
|
|
||
|
- /* Find the last occurence of colon */
|
||
|
- while(colon_check){
|
||
|
- colon = colon_check;
|
||
|
- colon_check = grub_strchr (colon+1, ':');
|
||
|
- }
|
||
|
+ /* Use the same logic in grub_ieee1275_get_devname for nvme-of arguments */
|
||
|
+ if (grub_strstr(path, "nvme-of"))
|
||
|
+ {
|
||
|
+ char *namespace_split = grub_strstr(path,"/namespace@");
|
||
|
+ if (namespace_split)
|
||
|
+ colon = grub_strchr (namespace_split, ':');
|
||
|
+ else
|
||
|
+ colon = NULL;
|
||
|
+ }
|
||
|
|
||
|
if (! colon)
|
||
|
return 0;
|
||
|
--
|
||
|
2.39.2
|
||
|
|