[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 4/6] ieee1275: change the logic of ieee1275_get_devargs()
From: |
Avnish Chouhan |
Subject: |
[PATCH v2 4/6] ieee1275: change the logic of ieee1275_get_devargs() |
Date: |
Fri, 10 May 2024 16:34:49 +0530 |
From: Avnish Chouhan <avnish@linux.vnet.ibm.com>
Usually grub will parse the PFW arguments by searching for the first occurence
of the character ':'.
However, we can have this char more than once on NQN.
This patch changes the logic to find the last occurence of this char so we can
get the proper values
for NVMeoFC
Signed-off-by: Diego Domingos <diegodo@br.ibm.com>
Signed-off-by: Avnish Chouhan <avnish@linux.vnet.ibm.com>
---
grub-core/kern/ieee1275/openfw.c | 19 +++++++++++++++++--
1 file changed, 17 insertions(+), 2 deletions(-)
diff --git a/grub-core/kern/ieee1275/openfw.c b/grub-core/kern/ieee1275/openfw.c
index 0278054..b97104c 100644
--- a/grub-core/kern/ieee1275/openfw.c
+++ b/grub-core/kern/ieee1275/openfw.c
@@ -324,7 +324,7 @@ grub_claimmap (grub_addr_t addr, grub_size_t size)
static char *
grub_ieee1275_get_devargs (const char *path)
{
- char *colon = grub_strchr (path, ':');
+ char *colon = grub_strrchr (path, ':');
if (! colon)
return 0;
@@ -339,6 +339,21 @@ grub_ieee1275_get_devname (const char *path)
char *colon = grub_strchr (path, ':');
int pathlen = grub_strlen (path);
struct grub_ieee1275_devalias curalias;
+
+ /* Check some special cases */
+ 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)
pathlen = (int)(colon - path);
@@ -579,7 +594,7 @@ grub_ieee1275_get_boot_dev (void)
return NULL;
}
- bootpath = (char *) grub_malloc ((grub_size_t) bootpath_size + 64);
+ bootpath = (char *) grub_malloc ((grub_size_t) bootpath_size + 64 + 256);
if (! bootpath)
{
grub_print_error ();
--
2.31.1
- [PATCH 0/6] NVMeoFC support on Grub, Avnish Chouhan, 2024/05/10
- [PATCH v2 2/6] ieee1275/powerpc: enables device mapper discovery, Avnish Chouhan, 2024/05/10
- [PATCH v2 3/6] ieee1275: implement FCP methods for WWPN and LUNs, Avnish Chouhan, 2024/05/10
- [PATCH v2 4/6] ieee1275: change the logic of ieee1275_get_devargs(),
Avnish Chouhan <=
- [PATCH v2 6/6] ieee1275: ofpath enable NVMeoF logical device translate, Avnish Chouhan, 2024/05/10
- [PATCH v2 1/6] ieee1275/powerpc: implements fibre channel discovery for ofpathname, Avnish Chouhan, 2024/05/10
- [PATCH v2 5/6] ieee1275: add support for NVMeoFC, Avnish Chouhan, 2024/05/10