summaryrefslogtreecommitdiff
path: root/usr/src
diff options
context:
space:
mode:
authorJames Blachly <james.blachly@gmail.com>2016-08-02 01:55:47 +0000
committerDan McDonald <danmcd@omniti.com>2016-08-15 10:19:42 -0400
commit5c9564e13556d93b85933b234fdd8810ce82cd93 (patch)
tree133cb4606efd56ebc90c106168aa0596240937df /usr/src
parent8da39a785b59a8f5bb6f0c441e93ccc965f15305 (diff)
downloadillumos-joyent-5c9564e13556d93b85933b234fdd8810ce82cd93.tar.gz
7215 usba logging through cmn_err (via usba_bus_ctl) output erroneously includes tab
7216 usba logging through cmn_err (via usba_bus_ctl) output truncates (leading) some device names Reviewed by: Garrett D'Amore <garrett@damore.org> Reviewed by: Robert Mustacchi <rm@joyent.com> Approved by: Dan McDonald <danmcd@omniti.com>
Diffstat (limited to 'usr/src')
-rw-r--r--usr/src/uts/common/io/usb/usba/usba.c51
-rw-r--r--usr/src/uts/common/sys/usb/usba/usba_impl.h1
2 files changed, 9 insertions, 43 deletions
diff --git a/usr/src/uts/common/io/usb/usba/usba.c b/usr/src/uts/common/io/usb/usba/usba.c
index 898243abb6..a2d1eeeba3 100644
--- a/usr/src/uts/common/io/usb/usba/usba.c
+++ b/usr/src/uts/common/io/usb/usba/usba.c
@@ -23,6 +23,7 @@
* Use is subject to license terms.
*
* Copyright 2014 Garrett D'Amore <garrett@damore.org>
+ * Copyright 2016 James S. Blachly, MD <james.blachly@gmail.com>
*/
@@ -35,8 +36,6 @@
#include <sys/usb/hubd/hub.h>
#include <sys/fs/dv_node.h>
-static int usba_str_startcmp(char *, char *);
-
/*
* USBA private variables and tunables
*/
@@ -267,7 +266,7 @@ usba_bus_ctl(dev_info_t *dip,
name = kmem_alloc(MAXNAMELEN, KM_SLEEP);
(void) usba_get_mfg_prod_sn_str(rdip, name, MAXNAMELEN);
if (name[0] != '\0') {
- cmn_err(CE_CONT, "?\t%s\n", name);
+ cmn_err(CE_CONT, "?%s\n", name);
}
kmem_free(name, MAXNAMELEN);
@@ -2830,28 +2829,6 @@ usba_get_dev_string_descrs(dev_info_t *dip, usba_device_t *ud)
/*
- * usba_str_startcmp:
- * Return the number of characters duplicated from the beginning of the
- * string. Return -1 if a complete duplicate.
- *
- * Arguments:
- * Two strings to compare.
- */
-static int usba_str_startcmp(char *first, char *second)
-{
- int num_same_chars = 0;
- while (*first == *second++) {
- if (*first++ == '\0') {
- return (-1);
- }
- num_same_chars++;
- }
-
- return (num_same_chars);
-}
-
-
-/*
* usba_get_mfg_prod_sn_str:
* Return a string containing mfg, product, serial number strings.
* Remove duplicates if some strings are the same.
@@ -2873,11 +2850,11 @@ usba_get_mfg_prod_sn_str(
usba_device_t *usba_device = usba_get_usba_device(dip);
int return_len = 0;
int len = 0;
- int duplen;
buffer[0] = '\0';
buffer[buflen-1] = '\0';
+ /* Manufacturer string exists. */
if ((usba_device->usb_mfg_str) &&
((len = strlen(usba_device->usb_mfg_str)) != 0)) {
(void) strncpy(buffer, usba_device->usb_mfg_str, buflen - 1);
@@ -2887,25 +2864,15 @@ usba_get_mfg_prod_sn_str(
/* Product string exists to append. */
if ((usba_device->usb_product_str) &&
((len = strlen(usba_device->usb_product_str)) != 0)) {
-
- /* Append only parts of string that don't match mfg string. */
- duplen = usba_str_startcmp(buffer,
- usba_device->usb_product_str);
-
- if (duplen != -1) { /* Not a complete match. */
- if (return_len > 0) {
- buffer[return_len++] = ' ';
- }
-
- /* Skip over the dup part of the concat'ed string. */
- len -= duplen;
- (void) strncpy(&buffer[return_len],
- &usba_device->usb_product_str[duplen],
- buflen - return_len - 1);
- return_len = min(buflen - 1, return_len + len);
+ if (return_len > 0) {
+ buffer[return_len++] = ' ';
}
+ (void) strncpy(&buffer[return_len],
+ usba_device->usb_product_str, buflen - return_len - 1);
+ return_len = min(buflen - 1, return_len + len);
}
+ /* Serial number string exists to append. */
if ((usba_device->usb_serialno_str) &&
((len = strlen(usba_device->usb_serialno_str)) != 0)) {
if (return_len > 0) {
diff --git a/usr/src/uts/common/sys/usb/usba/usba_impl.h b/usr/src/uts/common/sys/usb/usba/usba_impl.h
index 06e1744dc4..784bb32d44 100644
--- a/usr/src/uts/common/sys/usb/usba/usba_impl.h
+++ b/usr/src/uts/common/sys/usb/usba/usba_impl.h
@@ -239,7 +239,6 @@ typedef struct usba_hubdi {
/*
* usba_get_mfg_prod_sn_str:
* Return a string containing mfg, product, serial number strings.
- * Remove duplicates if some strings are the same.
*/
char *usba_get_mfg_prod_sn_str(dev_info_t *, char *, int);