sparc64: Don't use devspec to determine the OBP path

Don't use devspec to determine the OBP path on SPARC hardware.  Within all
versions of Linux on SPARC, the devspec returns one of three values:
"none", "vnet-port", or "vdisk".  Unlike on PPC, none of these values
are useful in determining the OBP path.

Before this patch grub-ofpathname always returned the wrong value
for a virtual disk. For example:

% grub-ofpathname /dev/vdiskc2
vdisk/disk@2:b

After this patch it now returns the correct value:

% grub-ofpathname /dev/vdiskc2
/virtual-devices@100/channel-devices@200/disk@2:b

Orabug: 24459765

Signed-off-by: Eric Snowberg <eric.snowberg@oracle.com>
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
This commit is contained in:
Eric Snowberg 2017-05-18 17:10:22 -06:00 committed by Daniel Kiper
parent 26c2f306fd
commit f8679cedff

View file

@ -120,6 +120,8 @@ find_obppath (const char *sysfs_path_orig)
#endif #endif
fd = open(path, O_RDONLY); fd = open(path, O_RDONLY);
#ifndef __sparc__
if (fd < 0 || fstat (fd, &st) < 0) if (fd < 0 || fstat (fd, &st) < 0)
{ {
if (fd >= 0) if (fd >= 0)
@ -127,6 +129,7 @@ find_obppath (const char *sysfs_path_orig)
snprintf(path, path_size, "%s/devspec", sysfs_path); snprintf(path, path_size, "%s/devspec", sysfs_path);
fd = open(path, O_RDONLY); fd = open(path, O_RDONLY);
} }
#endif
if (fd < 0 || fstat (fd, &st) < 0) if (fd < 0 || fstat (fd, &st) < 0)
{ {