Mercurial > illumos > illumos-gate
changeset 10975:9dd13a7cd2e3
6850995 hald dumped core
6898374 incorrect USB webcam video* devlink remove rules cause dangling links
author | Raymond Chen <Raymond.Chen@Sun.COM> |
---|---|
date | Fri, 06 Nov 2009 11:19:08 +0800 |
parents | 32d689ba6466 |
children | 03a10dbb75a3 |
files | usr/src/cmd/devfsadm/usb_link.c usr/src/cmd/hal/hald/solaris/devinfo_usb.c |
diffstat | 2 files changed, 7 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/usr/src/cmd/devfsadm/usb_link.c Thu Nov 05 18:44:56 2009 -0800 +++ b/usr/src/cmd/devfsadm/usb_link.c Fri Nov 06 11:19:08 2009 +0800 @@ -116,9 +116,9 @@ ILEVEL_0, devfsadm_rm_all }, { "usb", USB_LINK_RE_DDIVS_USBC, RM_POST | RM_HOT | RM_ALWAYS, ILEVEL_0, devfsadm_rm_all }, - { "usb", USB_LINK_RE_VIDEO, RM_POST | RM_HOT | RM_ALWAYS, ILEVEL_0, + { "usb", USB_LINK_RE_VIDEO2, RM_POST | RM_HOT | RM_ALWAYS, ILEVEL_0, devfsadm_rm_all }, - { "usb", USB_LINK_RE_VIDEO2, RM_POST | RM_HOT | RM_ALWAYS, ILEVEL_0, + { "usb", USB_LINK_RE_VIDEO, RM_POST | RM_HOT | RM_ALWAYS, ILEVEL_0, devfsadm_rm_all }, { "usb", USB_LINK_RE_DEVICE, RM_POST | RM_HOT, ILEVEL_0, devfsadm_rm_all },
--- a/usr/src/cmd/hal/hald/solaris/devinfo_usb.c Thu Nov 05 18:44:56 2009 -0800 +++ b/usr/src/cmd/hal/hald/solaris/devinfo_usb.c Fri Nov 06 11:19:08 2009 +0800 @@ -462,7 +462,7 @@ * situation, we will read the devlink name from * /dev/usb directory. */ - if ((*devlink == NULL) && + if ((*devlink == NULL) && (re != NULL) && ((strstr(re, "hid") != NULL) || (strstr(re, "video") != NULL))) { *devlink = get_usb_devlink(*minor_path, "/dev/usb/"); } @@ -494,7 +494,7 @@ char *s; get_dev_link_path(node, "usb_video", - "^usb/video+", &devlink, &minor_path, &minor_name); + "^usb/video[0-9]+", &devlink, &minor_path, &minor_name); if ((minor_path == NULL) || (devlink == NULL)) { @@ -555,7 +555,7 @@ char udi[HAL_PATH_MAX]; get_dev_link_path(node, "ddi_pseudo", - "^usb/hid+", &devlink, &minor_path, &minor_name); + "^usb/hid[0-9]+", &devlink, &minor_path, &minor_name); if ((minor_path == NULL) || (devlink == NULL)) { @@ -629,7 +629,8 @@ char *devlink = NULL; char udi[HAL_PATH_MAX]; - get_dev_link_path(node, "ddi_ctl:devctl:scsi", NULL, &devlink, &minor_path, &minor_name); + get_dev_link_path(node, "ddi_ctl:devctl:scsi", + "^usb/mass-storage[0-9]+", &devlink, &minor_path, &minor_name); if ((devlink == NULL) || (minor_path == NULL)) { goto out;