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:
parent
26c2f306fd
commit
f8679cedff
1 changed files with 3 additions and 0 deletions
|
@ -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)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue