summaryrefslogtreecommitdiff
path: root/usr
diff options
context:
space:
mode:
authorsriman bhavanam - Sun Microsystems - Bangalore India <Sriman.Bhavanam@Sun.COM>2009-05-27 12:08:46 +0530
committersriman bhavanam - Sun Microsystems - Bangalore India <Sriman.Bhavanam@Sun.COM>2009-05-27 12:08:46 +0530
commitc279fc79e3033aa26abead0dec23a0f7386b4a90 (patch)
tree2c5e31e93e76c01e52a172fc6babab3ba8e8412b /usr
parent67135030689c86f6ee00a0d59d67291165a4b2cc (diff)
downloadillumos-joyent-c279fc79e3033aa26abead0dec23a0f7386b4a90.tar.gz
6831956 prom_srch_aliases_by_def fails to find aliases matching a prom device name
Diffstat (limited to 'usr')
-rw-r--r--usr/src/lib/libdevinfo/devfsinfo.c28
1 files changed, 15 insertions, 13 deletions
diff --git a/usr/src/lib/libdevinfo/devfsinfo.c b/usr/src/lib/libdevinfo/devfsinfo.c
index a5e6915721..d6f8407ebb 100644
--- a/usr/src/lib/libdevinfo/devfsinfo.c
+++ b/usr/src/lib/libdevinfo/devfsinfo.c
@@ -19,11 +19,10 @@
* CDDL HEADER END
*/
/*
- * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 2009 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
-#pragma ident "%Z%%M% %I% %E% SMI"
#include <stdio.h>
#include <string.h>
@@ -464,7 +463,7 @@ devfs_bootdev_set_list(const char *dev_name, const uint_t options)
while (prom_list && prom_list[i]) {
if (!(options & BOOTDEV_PROMDEV)) {
ret = prom_dev_to_alias(prom_list[i], 0,
- &alias_list);
+ &alias_list);
if (ret < 0) {
free(prom_path);
prom_list_free(prom_list);
@@ -938,12 +937,12 @@ process_bootdev(const char *bootdevice, const char *default_root,
/* now we have a prom device path - convert to a devfs name */
if (devfs_prom_to_dev_name(prom_path, ret_buf) < 0) {
- continue;
+ continue;
}
/* append any default minor names necessary */
if (process_minor_name(ret_buf, default_root) < 0) {
- continue;
+ continue;
}
found = 1;
@@ -1021,17 +1020,17 @@ process_minor_name(char *dev_path, const char *root)
/* make sure to squash the digit */
*cp = '\0';
switch (n) {
- case 0: (void) strcat(dev_path, "q");
+ case 0: (void) strcat(dev_path, "q");
break;
- case 1: (void) strcat(dev_path, "r");
+ case 1: (void) strcat(dev_path, "r");
break;
- case 2: (void) strcat(dev_path, "s");
+ case 2: (void) strcat(dev_path, "s");
break;
- case 3: (void) strcat(dev_path, "t");
+ case 3: (void) strcat(dev_path, "t");
break;
- case 4: (void) strcat(dev_path, "u");
+ case 4: (void) strcat(dev_path, "u");
break;
- default: (void) strcat(dev_path, "a");
+ default: (void) strcat(dev_path, "a");
break;
}
}
@@ -1771,6 +1770,9 @@ prom_srch_aliases_by_def(char *promdev_def, struct name_list **exact_list,
char alias_buf[MAXNAMELEN];
int found = 0;
+ if ((ret = prom_find_aliases_node(prom_fd)) < 0)
+ return (0);
+
(void) memset(oppbuf.buf, 0, BUFSIZE);
opp->oprom_size = MAXPROPSIZE;
*ip = 0;
@@ -2191,8 +2193,8 @@ alias_to_prom_dev(char *alias, char *ret_buf)
if (options_ptr == NULL) {
options_ptr = strchr(alias_buf, ':');
if (options_ptr != NULL) {
- *options_ptr = '\0';
- (void) strlcpy(options, ++options_ptr,
+ *options_ptr = '\0';
+ (void) strlcpy(options, ++options_ptr,
sizeof (options));
}
}