diff options
author | Raymond Chen <Raymond.Chen@Sun.COM> | 2009-06-05 13:26:07 +0800 |
---|---|---|
committer | Raymond Chen <Raymond.Chen@Sun.COM> | 2009-06-05 13:26:07 +0800 |
commit | 489b7c4ab76ae8df137fbfcc2214f7baa52883a0 (patch) | |
tree | a50bc198922042c9ffd4285beabb66713bc01499 | |
parent | ffdc884126129b5717570ffc6192f88d1c088711 (diff) | |
download | illumos-gate-489b7c4ab76ae8df137fbfcc2214f7baa52883a0.tar.gz |
6839931 Run usb video test case cause system panic
6840438 wusb related warlock warnings
46 files changed, 335 insertions, 126 deletions
diff --git a/usr/src/uts/common/Makefile.files b/usr/src/uts/common/Makefile.files index ac17b4f78f..85410c94de 100644 --- a/usr/src/uts/common/Makefile.files +++ b/usr/src/uts/common/Makefile.files @@ -758,6 +758,9 @@ SATA_OBJS += sata.o USBA_OBJS += hcdi.o usba.o usbai.o hubdi.o parser.o genconsole.o \ usbai_pipe_mgmt.o usbai_req.o usbai_util.o usbai_register.o \ usba_devdb.o usba10_calls.o usba_ugen.o whcdi.o wa.o +USBA_WITHOUT_WUSB_OBJS += hcdi.o usba.o usbai.o hubdi.o parser.o genconsole.o \ + usbai_pipe_mgmt.o usbai_req.o usbai_util.o usbai_register.o \ + usba_devdb.o usba10_calls.o usba_ugen.o USBA10_OBJS += usba10.o diff --git a/usr/src/uts/common/io/usb/hcd/ehci/ehci_isoch_util.c b/usr/src/uts/common/io/usb/hcd/ehci/ehci_isoch_util.c index ba1a8626bb..b79aa032bc 100644 --- a/usr/src/uts/common/io/usb/hcd/ehci/ehci_isoch_util.c +++ b/usr/src/uts/common/io/usb/hcd/ehci/ehci_isoch_util.c @@ -19,7 +19,7 @@ * CDDL HEADER END */ /* - * Copyright 2008 Sun Microsystems, Inc. All rights reserved. + * Copyright 2009 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -668,7 +668,6 @@ ehci_deallocate_itd( "ehci_deallocate_itd: old_itd = 0x%p", (void *)old_itd); ASSERT(mutex_owned(&ehcip->ehci_int_mutex)); - ASSERT(Get_ITD(old_itd->itd_trans_wrapper) == itw->itw_id); /* If it has been marked RECLAIM it has already been removed */ if (Get_ITD(old_itd->itd_state) != EHCI_ITD_RECLAIM) { diff --git a/usr/src/uts/common/io/usb/hwa/hwahc/hwahc.c b/usr/src/uts/common/io/usb/hwa/hwahc/hwahc.c index 4266b5a60a..ad93cf4cb2 100644 --- a/usr/src/uts/common/io/usb/hwa/hwahc/hwahc.c +++ b/usr/src/uts/common/io/usb/hwa/hwahc/hwahc.c @@ -765,7 +765,9 @@ hwahc_cleanup(dev_info_t *dip, hwahc_state_t *hwahcp) if (hwahcp->hwahc_flags & HWAHC_WA_STARTED) { /* can be combined with wusb_wa_data_fini() */ + mutex_exit(&hwahcp->hwahc_mutex); hwahc_wa_stop(hwahcp); + mutex_enter(&hwahcp->hwahc_mutex); } if (hwahcp->hwahc_flags & HWAHC_HC_INITED) { @@ -2409,13 +2411,17 @@ hwahc_bus_unconfig(dev_info_t *dip, uint_t flag, ddi_bus_config_op_t op, if (hc_data->hc_children_state[port] & WUSB_CHILD_ZAP) { wusb_dev_info_t *dev_info; wusb_secrt_data_t *csecrt_data; + usba_device_t *child_ud; USB_DPRINTF_L3(PRINT_MASK_EVENTS, hwahcp->hwahc_log_handle, "hwahc_bus_unconfig: physically zap port %d", port); + child_ud = hc_data->hc_usba_devices[port]; + mutex_exit(&hc_data->hc_mutex); /* zap the dip and usba_device structure as well */ - usba_free_usba_device(hc_data->hc_usba_devices[port]); + usba_free_usba_device(child_ud); + mutex_enter(&hc_data->hc_mutex); hc_data->hc_usba_devices[port] = NULL; /* dip freed in usba_destroy_child_devi */ @@ -3689,8 +3695,10 @@ hwahc_hc_channel_suspend(hwahc_state_t *hwahcp) return (USB_SUCCESS); } + mutex_exit(&hwahcp->hwahc_mutex); /* suspend host, refer to WUSB 1.0 spec 8.5.3.14 */ rval = wusb_hc_stop_ch(&hwahcp->hwahc_hc_data, 10000); /* 10ms */ + mutex_enter(&hwahcp->hwahc_mutex); if (rval != USB_SUCCESS) { USB_DPRINTF_L2(PRINT_MASK_PM, hwahcp->hwahc_log_handle, "hwahc_hc_channel_suspend: wusb channel stop fails"); @@ -3940,8 +3948,8 @@ hwahc_hc_initial_start(hwahc_state_t *hwahcp) return (rval); } - /* reset wire adapter */ mutex_exit(&hwahcp->hwahc_mutex); + /* reset wire adapter */ rval = wusb_wa_reset(&hwahcp->hwahc_wa_data, hwahcp->hwahc_default_pipe); mutex_enter(&hwahcp->hwahc_mutex); @@ -3967,12 +3975,14 @@ hwahc_hc_initial_start(hwahc_state_t *hwahcp) } } + mutex_exit(&hwahcp->hwahc_mutex); /* set cluster id for the wusb channel */ rval = wusb_hc_set_cluster_id(&hwahcp->hwahc_hc_data, cluster_id); if (rval != USB_SUCCESS) { USB_DPRINTF_L2(PRINT_MASK_ATTA, hwahcp->hwahc_log_handle, "hwahc_hc_initial_start: set cluster id %d fails", cluster_id); + mutex_enter(&hwahcp->hwahc_mutex); goto err; } @@ -3985,6 +3995,7 @@ hwahc_hc_initial_start(hwahc_state_t *hwahcp) USB_DPRINTF_L2(PRINT_MASK_ATTA, hwahcp->hwahc_log_handle, "hwahc_hc_initial_start: set stream idx %d fails", stream_idx); + mutex_enter(&hwahcp->hwahc_mutex); goto err; } @@ -3996,16 +4007,17 @@ hwahc_hc_initial_start(hwahc_state_t *hwahcp) if (rval != USB_SUCCESS) { USB_DPRINTF_L2(PRINT_MASK_ATTA, hwahcp->hwahc_log_handle, "hwahc_hc_initial_start: set num dnts fails"); + mutex_enter(&hwahcp->hwahc_mutex); goto err; } /* set host info IE */ rval = wusb_hc_add_host_info(&hwahcp->hwahc_hc_data, stream_idx); - if (rval != USB_SUCCESS) { USB_DPRINTF_L2(PRINT_MASK_ATTA, hwahcp->hwahc_log_handle, "hwahc_hc_initial_start: add hostinfo ie fails"); + mutex_enter(&hwahcp->hwahc_mutex); goto err; } @@ -4014,7 +4026,7 @@ hwahc_hc_initial_start(hwahc_state_t *hwahcp) (void) memset(mas, 0xff, WUSB_SET_WUSB_MAS_LEN); mas[0] = 0xf0; /* the first 4 slots are for beacons */ rval = wusb_hc_set_wusb_mas(&hwahcp->hwahc_hc_data, mas); - + mutex_enter(&hwahcp->hwahc_mutex); if (rval != USB_SUCCESS) { USB_DPRINTF_L2(PRINT_MASK_ATTA, hwahcp->hwahc_log_handle, "hwahc_hc_initial_start: set wusb mas fails"); @@ -4030,29 +4042,28 @@ hwahc_hc_initial_start(hwahc_state_t *hwahcp) random_get_pseudo_bytes(dft_gtkid, 3); /* set default GTK, need a way to dynamically compute it */ + mutex_exit(&hwahcp->hwahc_mutex); rval = wusb_hc_set_gtk(&hwahcp->hwahc_hc_data, dft_gtk, dft_gtkid); if (rval != USB_SUCCESS) { USB_DPRINTF_L2(PRINT_MASK_ATTA, hwahcp->hwahc_log_handle, "hwahc_hc_initial_start: set gtk fails"); + mutex_enter(&hwahcp->hwahc_mutex); goto err; } /* enable wire adapter */ - mutex_exit(&hwahcp->hwahc_mutex); rval = wusb_wa_enable(&hwahcp->hwahc_wa_data, hwahcp->hwahc_default_pipe); - mutex_enter(&hwahcp->hwahc_mutex); - if (rval != USB_SUCCESS) { USB_DPRINTF_L2(PRINT_MASK_ATTA, hwahcp->hwahc_log_handle, "hwahc_hc_initial_start: enable wa fails"); + mutex_enter(&hwahcp->hwahc_mutex); goto err; } /* Start Notification endpoint */ - mutex_exit(&hwahcp->hwahc_mutex); rval = wusb_wa_start_nep(&hwahcp->hwahc_wa_data, USB_FLAGS_SLEEP); if (rval != USB_SUCCESS) { @@ -4104,7 +4115,9 @@ err: wusb_hc_free_cluster_id(cluster_id); } + mutex_exit(&hwahcp->hwahc_mutex); (void) uwb_stop_beacon(hwahcp->hwahc_dip); + mutex_enter(&hwahcp->hwahc_mutex); return (rval); } @@ -4159,7 +4172,6 @@ hwahc_hc_final_stop(hwahc_state_t *hwahcp) mutex_exit(&hwahcp->hwahc_mutex); (void) wusb_wa_disable(&hwahcp->hwahc_wa_data, hwahcp->hwahc_default_pipe); - mutex_enter(&hwahcp->hwahc_mutex); /* stop beaconing. Not necessary to unreserve mas */ (void) uwb_stop_beacon(hwahcp->hwahc_dip); @@ -4167,12 +4179,11 @@ hwahc_hc_final_stop(hwahc_state_t *hwahcp) wusb_hc_rem_host_info(&hwahcp->hwahc_hc_data); /* Manually remove all connected children */ - mutex_exit(&hwahcp->hwahc_mutex); hwahc_run_callbacks(hwahcp, USBA_EVENT_TAG_HOT_REMOVAL); - mutex_enter(&hwahcp->hwahc_mutex); /* delete all the children */ (void) hwahc_cleanup_child(hwahcp->hwahc_dip); + mutex_enter(&hwahcp->hwahc_mutex); } /* @@ -4233,11 +4244,13 @@ hwahc_hc_channel_start(hwahc_state_t *hwahcp) /* set stream idx */ stream_idx = 1; + mutex_exit(&hwahcp->hwahc_mutex); rval = wusb_hc_set_stream_idx(&hwahcp->hwahc_hc_data, stream_idx); if (rval != USB_SUCCESS) { USB_DPRINTF_L2(PRINT_MASK_ATTA, hwahcp->hwahc_log_handle, "hwahc_hc_channel_start: set stream idx %d fails", stream_idx); + mutex_enter(&hwahcp->hwahc_mutex); return (rval); } @@ -4250,6 +4263,7 @@ hwahc_hc_channel_start(hwahc_state_t *hwahcp) if (rval != USB_SUCCESS) { USB_DPRINTF_L2(PRINT_MASK_ATTA, hwahcp->hwahc_log_handle, "hwahc_hc_channel_start: set wusb mas fails"); + mutex_enter(&hwahcp->hwahc_mutex); return (rval); } @@ -4261,10 +4275,12 @@ hwahc_hc_channel_start(hwahc_state_t *hwahcp) if (rval != USB_SUCCESS) { USB_DPRINTF_L2(PRINT_MASK_ATTA, hwahcp->hwahc_log_handle, "hwahc_hc_channel_start: add hostinfo ie fails"); + mutex_enter(&hwahcp->hwahc_mutex); return (rval); } + mutex_enter(&hwahcp->hwahc_mutex); hwahcp->hwahc_hw_state = HWAHC_HW_STARTED; hwahcp->hwahc_hc_soft_state = HWAHC_CTRL_OPERATIONAL_STATE; @@ -4317,11 +4333,12 @@ hwahc_hc_channel_stop(hwahc_state_t *hwahcp) /* send host disconect IE so that the children know to disconnect */ mutex_exit(&hwahcp->hwahc_mutex); rval = wusb_hc_send_host_disconnect(&hwahcp->hwahc_hc_data); - mutex_enter(&hwahcp->hwahc_mutex); if (rval != USB_SUCCESS) { USB_DPRINTF_L2(PRINT_MASK_ATTA, hwahcp->hwahc_log_handle, "hwahc_hc_channel_stop: send host disconnect ie fails"); + mutex_enter(&hwahcp->hwahc_mutex); + return (rval); } @@ -4335,6 +4352,7 @@ hwahc_hc_channel_stop(hwahc_state_t *hwahcp) if (rval != USB_SUCCESS) { USB_DPRINTF_L2(PRINT_MASK_ATTA, hwahcp->hwahc_log_handle, "hwahc_hc_channel_stop: set stream idx 0 fails"); + mutex_enter(&hwahcp->hwahc_mutex); return (rval); } @@ -4346,9 +4364,12 @@ hwahc_hc_channel_stop(hwahc_state_t *hwahcp) if (rval != USB_SUCCESS) { USB_DPRINTF_L2(PRINT_MASK_ATTA, hwahcp->hwahc_log_handle, "hwahc_hc_channel_stop: set null wusb mas fails"); + mutex_enter(&hwahcp->hwahc_mutex); return (rval); } + + mutex_enter(&hwahcp->hwahc_mutex); (void) memcpy(hwahcp->hwahc_hc_data.hc_mas, mas, WUSB_SET_WUSB_MAS_LEN); hwahcp->hwahc_hw_state = HWAHC_HW_CH_STOPPED; @@ -4897,6 +4918,7 @@ hwahc_stop_result_thread(hwahc_state_t *hwahcp) USB_DPRINTF_L4(PRINT_MASK_ATTA, hwahcp->hwahc_log_handle, "hwahc_stop_result_thread: reset hwa bulk-in pipe"); + mutex_exit(&hwahcp->hwahc_mutex); usb_pipe_reset(wa_data->wa_dip, wa_data->wa_bulkin_ph, USB_FLAGS_SLEEP, NULL, NULL); @@ -4908,6 +4930,7 @@ hwahc_stop_result_thread(hwahc_state_t *hwahcp) "hwahc_stop_result_thread: close hwa bulk-in pipe"); usb_pipe_close(wa_data->wa_dip, wa_data->wa_bulkin_ph, USB_FLAGS_SLEEP, NULL, NULL); + mutex_enter(&hwahcp->hwahc_mutex); mutex_enter(&wa_data->wa_mutex); wa_data->wa_bulkin_ph = NULL; @@ -5178,8 +5201,10 @@ hwahc_handle_dn(hwahc_state_t *hwahcp, hwa_notif_dn_recvd_t *dn_notif) mutex_enter(&hc_data->hc_mutex); if (dn_notif->bSourceDeviceAddr == hc_data->hc_alive_ie.bDeviceAddress[0]) { + mutex_exit(&hc_data->hc_mutex); wusb_hc_rem_ie(hc_data, (wusb_ie_header_t *)&hc_data->hc_alive_ie); + mutex_enter(&hc_data->hc_mutex); } mutex_exit(&hc_data->hc_mutex); @@ -5441,12 +5466,15 @@ hwahc_trust_timeout_handler(void *arg) { wusb_dev_info_t *dev = (wusb_dev_info_t *)arg; usb_port_t port; + uint16_t dev_addr; wusb_hc_data_t *hc_data = dev->wdev_hc; uint8_t retry = 3; + int rval; mutex_enter(&hc_data->hc_mutex); dev->wdev_trust_timer = 0; + dev_addr = dev->wdev_addr; if (dev->wdev_active == 1) { /* device is active during the past period. Restart the timer */ @@ -5454,8 +5482,12 @@ hwahc_trust_timeout_handler(void *arg) } else { /* send a KeepAlive IE to query the device */ for (retry = 0; retry < 3; retry++) { - if (wusb_hc_send_keepalive_ie(hc_data, - dev->wdev_addr) == USB_SUCCESS) { + mutex_exit(&hc_data->hc_mutex); + rval = wusb_hc_send_keepalive_ie(hc_data, + dev_addr); + mutex_enter(&hc_data->hc_mutex); + + if (rval == USB_SUCCESS) { break; } /* retry 3 times if fail to send KeepAlive IE */ diff --git a/usr/src/uts/common/io/usb/hwa/hwahc/hwahc_util.c b/usr/src/uts/common/io/usb/hwa/hwahc/hwahc_util.c index 527a5167b2..07159a5f2d 100644 --- a/usr/src/uts/common/io/usb/hwa/hwahc/hwahc_util.c +++ b/usr/src/uts/common/io/usb/hwa/hwahc/hwahc_util.c @@ -288,8 +288,12 @@ hwahc_pipe_cleanup(hwahc_state_t *hwahcp, usba_pipe_handle_data_t *ph) /* if active, abort the requests */ if (hdl->rp_state == WA_RPIPE_STATE_ACTIVE) { + mutex_exit(&hdl->rp_mutex); + mutex_exit(&hwahcp->hwahc_mutex); rval = wusb_wa_rpipe_abort(hwahcp->hwahc_dip, hwahcp->hwahc_default_pipe, hdl); + mutex_enter(&hwahcp->hwahc_mutex); + mutex_enter(&hdl->rp_mutex); } mutex_exit(&hdl->rp_mutex); @@ -303,7 +307,10 @@ hwahc_pipe_cleanup(hwahc_state_t *hwahcp, usba_pipe_handle_data_t *ph) switch (pp->pp_state) { case HWAHC_PIPE_STATE_CLOSE: completion_reason = USB_CR_PIPE_CLOSING; + + mutex_exit(&hwahcp->hwahc_mutex); (void) wusb_wa_rpipe_reset(hwahcp->hwahc_dip, ph, hdl, 0); + mutex_enter(&hwahcp->hwahc_mutex); break; case HWAHC_PIPE_STATE_RESET: @@ -487,18 +494,14 @@ hwahc_hcdi_pipe_open( mutex_exit(&hwahcp->hwahc_mutex); /* target the rpipe to the endpoint */ - mutex_enter(&wa->wa_mutex); rval = wusb_wa_set_rpipe_target(hwahcp->hwahc_dip, wa, hwahcp->hwahc_default_pipe, ph, pp->pp_rp); - mutex_exit(&wa->wa_mutex); mutex_enter(&hwahcp->hwahc_mutex); if (rval != USB_SUCCESS) { USB_DPRINTF_L2(PRINT_MASK_HCDI, hwahcp->hwahc_log_handle, "hwahc_hcdi_pipe_open: set target for rpipe failed"); - mutex_enter(&wa->wa_mutex); wusb_wa_release_rpipe(wa, pp->pp_rp); - mutex_exit(&wa->wa_mutex); kmem_free(pp, sizeof (hwahc_pipe_private_t)); mutex_exit(&hwahcp->hwahc_mutex); @@ -536,7 +539,6 @@ hwahc_hcdi_pipe_close( hwahc_state_t *hwahcp; hwahc_pipe_private_t *pp; usb_ep_descr_t *epdt = &ph->p_ep; - wusb_wa_data_t *wa; hwahcp = hwahc_obtain_state(ph->p_usba_device->usb_root_hub_dip); @@ -559,10 +561,7 @@ hwahc_hcdi_pipe_close( wusb_wa_clear_dev_ep(ph); /* clear the remote dev's endpoint */ mutex_enter(&hwahcp->hwahc_mutex); - wa = &hwahcp->hwahc_wa_data; - mutex_enter(&wa->wa_mutex); wusb_wa_release_rpipe(&hwahcp->hwahc_wa_data, pp->pp_rp); - mutex_exit(&wa->wa_mutex); mutex_enter(&ph->p_mutex); cv_destroy(&pp->pp_xfer_cmpl_cv); diff --git a/usr/src/uts/common/io/usb/usba/wa.c b/usr/src/uts/common/io/usb/usba/wa.c index 1671355011..9928e483bd 100644 --- a/usr/src/uts/common/io/usb/usba/wa.c +++ b/usr/src/uts/common/io/usb/usba/wa.c @@ -106,9 +106,11 @@ wusb_wa_rpipes_init(wusb_wa_data_t *wa_data) mutex_init(&hdl->rp_mutex, NULL, MUTEX_DRIVER, NULL); cv_init(&hdl->rp_cv, NULL, CV_DRIVER, NULL); + _NOTE(NOW_INVISIBLE_TO_OTHER_THREADS(*hdl)); hdl->rp_state = WA_RPIPE_STATE_FREE; hdl->rp_refcnt = 0; hdl->rp_timeout_list = NULL; + _NOTE(NOW_VISIBLE_TO_OTHER_THREADS(*hdl)); } } @@ -149,6 +151,8 @@ wusb_wa_data_init(dev_info_t *dip, wusb_wa_data_t *wa_data, wusb_wa_cb_t *cbs, return (USB_INVALID_ARGS); } + _NOTE(NOW_INVISIBLE_TO_OTHER_THREADS(*wa_data)); + /* get inf descr and ept descrs from altif data */ altif_data = &dev_data->dev_curr_cfg-> cfg_if[dev_data->dev_curr_if].if_alt[0]; @@ -227,6 +231,8 @@ wusb_wa_data_init(dev_info_t *dip, wusb_wa_data_t *wa_data, wusb_wa_cb_t *cbs, mutex_init(&wa_data->wa_mutex, NULL, MUTEX_DRIVER, NULL); + _NOTE(NOW_VISIBLE_TO_OTHER_THREADS(*wa_data)); + return (USB_SUCCESS); } @@ -234,11 +240,13 @@ wusb_wa_data_init(dev_info_t *dip, wusb_wa_data_t *wa_data, wusb_wa_cb_t *cbs, void wusb_wa_data_fini(wusb_wa_data_t *wa_data) { + mutex_enter(&wa_data->wa_mutex); if (wa_data->wa_rpipe_hdl) { wusb_wa_rpipes_fini(wa_data); kmem_free(wa_data->wa_rpipe_hdl, wa_data->wa_num_rpipes * sizeof (wusb_wa_rpipe_hdl_t)); } + mutex_exit(&wa_data->wa_mutex); mutex_destroy(&wa_data->wa_mutex); } @@ -354,6 +362,9 @@ wusb_wa_get_rpipe_descrs(wusb_wa_data_t *wa_data, usb_pipe_handle_t ph, return (USB_INVALID_ARGS); } + /* called at initialization, no other threads yet */ + _NOTE(NOW_INVISIBLE_TO_OTHER_THREADS(*wa_data)); + for (i = 0; i < wa_data->wa_num_rpipes; i++) { rval = wusb_wa_get_rpipe_descr(dip, ph, i, &wa_data->wa_rpipe_hdl[i].rp_descr, mask, handle); @@ -366,6 +377,7 @@ wusb_wa_get_rpipe_descrs(wusb_wa_data_t *wa_data, usb_pipe_handle_t ph, return (rval); } } + _NOTE(NOW_VISIBLE_TO_OTHER_THREADS(*wa_data)); return (USB_SUCCESS); } @@ -836,15 +848,16 @@ wusb_wa_get_rpipe(wusb_wa_data_t *wa_data, usb_pipe_handle_t ph, int wusb_wa_release_rpipe(wusb_wa_data_t *wa, wusb_wa_rpipe_hdl_t *hdl) { - ASSERT(mutex_owned(&wa->wa_mutex)); if (hdl == NULL) { return (USB_FAILURE); } + mutex_enter(&wa->wa_mutex); mutex_enter(&hdl->rp_mutex); if (hdl->rp_refcnt == 0) { mutex_exit(&hdl->rp_mutex); + mutex_exit(&wa->wa_mutex); return (USB_FAILURE); } @@ -860,6 +873,7 @@ wusb_wa_release_rpipe(wusb_wa_data_t *wa, wusb_wa_rpipe_hdl_t *hdl) } mutex_exit(&hdl->rp_mutex); + mutex_exit(&wa->wa_mutex); return (USB_SUCCESS); } @@ -1037,7 +1051,6 @@ wusb_wa_set_rpipe_target(dev_info_t *dip, wusb_wa_data_t *wa, uint16_t maxsize; uint16_t seg_len; - ASSERT(mutex_owned(&wa->wa_mutex)); USB_DPRINTF_L4(DPRINT_MASK_WHCDI, whcdi_log_handle, "wusb_wa_set_rpipe_target: ph_data = 0x%p rp_hdl = 0x%p", @@ -1078,6 +1091,7 @@ wusb_wa_set_rpipe_target(dev_info_t *dip, wusb_wa_data_t *wa, return (USB_FAILURE); } + mutex_enter(&wa->wa_mutex); usba_device = usba_get_usba_device(ph_data->p_dip); mutex_enter(&hdl->rp_mutex); @@ -1106,6 +1120,7 @@ wusb_wa_set_rpipe_target(dev_info_t *dip, wusb_wa_data_t *wa, /* WA don't have so many blocks to fulfill this reqirement */ if (wa->wa_avail_blocks < blockcnt) { mutex_exit(&hdl->rp_mutex); + mutex_exit(&wa->wa_mutex); return (USB_FAILURE); } @@ -1156,6 +1171,8 @@ wusb_wa_set_rpipe_target(dev_info_t *dip, wusb_wa_data_t *wa, hdl->rp_descr.wNumTransactionErrors = 0; mutex_exit(&hdl->rp_mutex); + mutex_exit(&wa->wa_mutex); + /* set rpipe descr */ rval = wusb_wa_set_rpipe_descr(dip, ph, &hdl->rp_descr); if (rval != USB_SUCCESS) { @@ -1199,17 +1216,19 @@ wusb_wa_rpipe_abort(dev_info_t *dip, usb_pipe_handle_t ph, usb_cb_flags_t cb_flags; int rval; - ASSERT(mutex_owned(&hdl->rp_mutex)); + mutex_enter(&hdl->rp_mutex); USB_DPRINTF_L4(DPRINT_MASK_WHCDI, whcdi_log_handle, "wusb_wa_rpipe_abort: rp_hdl = 0x%p", (void *)hdl); /* only abort when there is active transfer */ if (hdl->rp_state != WA_RPIPE_STATE_ACTIVE) { + mutex_exit(&hdl->rp_mutex); return (USB_SUCCESS); } + mutex_exit(&hdl->rp_mutex); rval = usb_pipe_sync_ctrl_xfer(dip, ph, WA_CLASS_RPIPE_REQ_OUT_TYPE, WA_REQ_ABORT_RPIPE, @@ -2098,6 +2117,7 @@ wusb_wa_free_segs(wusb_wa_trans_wrapper_t *wr) return; } + for (i = 0; i < wr->wr_nsegs; i++) { seg = &wr->wr_seg_array[i]; @@ -2204,8 +2224,10 @@ wusb_wa_abort_req(wusb_wa_data_t *wa_data, wusb_wa_trans_wrapper_t *wr, p[7] = (uint8_t)(id >> 24); req->bulk_data->b_wptr += WA_ABORT_REQ_LEN; + mutex_exit(&wr->wr_rp->rp_mutex); rval = usb_pipe_bulk_xfer(wa_data->wa_bulkout_ph, req, USB_FLAGS_SLEEP); + mutex_enter(&wr->wr_rp->rp_mutex); if (rval != USB_SUCCESS) { USB_DPRINTF_L2(DPRINT_MASK_WHCDI, whcdi_log_handle, "wusb_wa_abort_req: send abort req failed, rval = %d", @@ -2360,9 +2382,13 @@ wusb_wa_xfer_timeout_handler(void *arg) wr->wr_state = WR_TIMEOUT; wa_data = wr->wr_wa_data; + + mutex_exit(&hdl->rp_mutex); rval = wusb_wa_get_rpipe_status(wa_data->wa_dip, wa_data->wa_default_pipe, hdl->rp_descr.wRPipeIndex, &rp_status); + mutex_enter(&hdl->rp_mutex); + if (rval != USB_SUCCESS) { /* reset WA perhaps? */ hdl->rp_state = WA_RPIPE_STATE_ERROR; @@ -2389,8 +2415,10 @@ wusb_wa_xfer_timeout_handler(void *arg) USB_DPRINTF_L3(DPRINT_MASK_WHCDI, whcdi_log_handle, "wusb_wa_xfer_timeout_handler: rp not idle"); + mutex_exit(&hdl->rp_mutex); rval = wusb_wa_rpipe_abort(wa_data->wa_dip, wa_data->wa_default_pipe, hdl); + mutex_enter(&hdl->rp_mutex); USB_DPRINTF_L3(DPRINT_MASK_WHCDI, whcdi_log_handle, @@ -2549,8 +2577,10 @@ wusb_wa_wr_xfer(wusb_wa_data_t *wa_data, wusb_wa_rpipe_hdl_t *hdl, req = wr->wr_seg_array[i].seg_trans_reqp; ASSERT(req != NULL); + mutex_exit(&hdl->rp_mutex); /* send ith transfer request */ rval = usb_pipe_bulk_xfer(wa_data->wa_bulkout_ph, req, 0); + mutex_enter(&hdl->rp_mutex); if (rval != USB_SUCCESS) { USB_DPRINTF_L2(DPRINT_MASK_WHCDI, whcdi_log_handle, "wusb_wa_wr_xfer: send transfer request %d failed," @@ -2595,8 +2625,10 @@ wusb_wa_wr_xfer(wusb_wa_data_t *wa_data, wusb_wa_rpipe_hdl_t *hdl, } wr->wr_seg_array[i].seg_data_req_state = 1; /* submitted */ + mutex_exit(&hdl->rp_mutex); /* send ith data asynchronously */ rval = usb_pipe_bulk_xfer(wa_data->wa_bulkout_ph, req, 0); + mutex_enter(&hdl->rp_mutex); if (rval != USB_SUCCESS) { USB_DPRINTF_L2(DPRINT_MASK_WHCDI, whcdi_log_handle, "wusb_wa_wr_xfer: send transfer data %d failed", @@ -3222,9 +3254,7 @@ wusb_wa_handle_error(wusb_wa_data_t *wa_data, wusb_wa_trans_wrapper_t *wr, USB_DPRINTF_L3(DPRINT_MASK_WHCDI, whcdi_log_handle, "wusb_wa_handle_error: segment err, abort other segs"); - mutex_exit(&wr->wr_rp->rp_mutex); wusb_wa_abort_req(wa_data, wr, wr->wr_id); - mutex_enter(&wr->wr_rp->rp_mutex); } wusb_wa_stop_xfer_timer(wr); diff --git a/usr/src/uts/common/io/usb/usba/whcdi.c b/usr/src/uts/common/io/usb/usba/whcdi.c index b35f5c67c7..97599a97bb 100644 --- a/usr/src/uts/common/io/usb/usba/whcdi.c +++ b/usr/src/uts/common/io/usb/usba/whcdi.c @@ -54,6 +54,7 @@ static kmutex_t whcdi_mutex; /* use 0-30 bit as wusb cluster_id bitmaps */ static uint32_t cluster_id_mask = 0; +_NOTE(MUTEX_PROTECTS_DATA(whcdi_mutex, cluster_id_mask)) usb_log_handle_t whcdi_log_handle; uint_t whcdi_errlevel = USB_LOG_L4; @@ -105,10 +106,9 @@ wusb_hc_get_cluster_id() /* set the bitmask */ cluster_id_mask |= (1 << i); id = WUSB_MIN_CLUSTER_ID + i; - mutex_exit(&whcdi_mutex); - USB_DPRINTF_L3(DPRINT_MASK_WHCDI, whcdi_log_handle, "new cluster id %d, mask %d", id, cluster_id_mask); + mutex_exit(&whcdi_mutex); return (id); } @@ -244,7 +244,9 @@ wusb_hc_set_cluster_id(wusb_hc_data_t *hc_data, uint8_t cluster_id) USB_DPRINTF_L2(DPRINT_MASK_WHCDI, whcdi_log_handle, "Set_Cluster_ID fails: rval=%d ", rval); } else { + mutex_enter(&hc_data->hc_mutex); hc_data->hc_cluster_id = cluster_id; + mutex_exit(&hc_data->hc_mutex); } return (rval); @@ -321,13 +323,17 @@ wusb_hc_remove_mmc_ie(wusb_hc_data_t *hc_data, uint8_t iehdl) dev_info_t *dip = hc_data->hc_dip; int rval; + ASSERT(mutex_owned(&hc_data->hc_mutex)); + if ((iehdl >= hc_data->hc_num_mmcies) || (hc_data->hc_mmcie_list[iehdl] == NULL)) { return (USB_FAILURE); } + mutex_exit(&hc_data->hc_mutex); rval = hc_data->rem_mmc_ie(dip, iehdl); + mutex_enter(&hc_data->hc_mutex); if (rval != USB_SUCCESS) { USB_DPRINTF_L2(DPRINT_MASK_WHCDI, whcdi_log_handle, "Remove_MMC_IE fails: rval=%d ", rval); @@ -402,6 +408,7 @@ wusb_hc_rem_ie(wusb_hc_data_t *hc_data, wusb_ie_header_t *ieh) int i; int16_t iehdl = -1; + mutex_enter(&hc_data->hc_mutex); for (i = 0; i < hc_data->hc_num_mmcies; i++) { if (hc_data->hc_mmcie_list[i] == ieh) { iehdl = (int16_t)i; @@ -413,12 +420,15 @@ wusb_hc_rem_ie(wusb_hc_data_t *hc_data, wusb_ie_header_t *ieh) if (iehdl == -1) { USB_DPRINTF_L2(DPRINT_MASK_WHCDI, whcdi_log_handle, "wusb_hc_rem_ie: IE(%p) iehdl not found", (void *)ieh); + mutex_exit(&hc_data->hc_mutex); return; } (void) wusb_hc_remove_mmc_ie(hc_data, (uint8_t)iehdl); + wusb_hc_free_iehdl(hc_data, (uint8_t)iehdl); + mutex_exit(&hc_data->hc_mutex); } /* Add Host Info IE */ @@ -431,6 +441,8 @@ wusb_hc_add_host_info(wusb_hc_data_t *hc_data, uint8_t stream_idx) hinfo = kmem_zalloc(sizeof (wusb_ie_host_info_t), KM_SLEEP); + mutex_enter(&hc_data->hc_mutex); + hinfo->bIEIdentifier = WUSB_IE_HOSTINFO; hinfo->bLength = sizeof (wusb_ie_host_info_t); if (hc_data->hc_newcon_enabled) { @@ -446,6 +458,7 @@ wusb_hc_add_host_info(wusb_hc_data_t *hc_data, uint8_t stream_idx) if (rval != USB_SUCCESS) { USB_DPRINTF_L2(DPRINT_MASK_WHCDI, whcdi_log_handle, "wusb_hc_add_host_info: get ie handle fails"); + mutex_exit(&hc_data->hc_mutex); return (rval); } @@ -453,16 +466,20 @@ wusb_hc_add_host_info(wusb_hc_data_t *hc_data, uint8_t stream_idx) USB_DPRINTF_L3(DPRINT_MASK_WHCDI, whcdi_log_handle, "wusb_hc_add_host_info: iehdl=%d", iehdl); + mutex_exit(&hc_data->hc_mutex); rval = wusb_hc_add_mmc_ie(hc_data, 10, 1, iehdl, sizeof (wusb_ie_host_info_t), (uint8_t *)hinfo); if (rval != USB_SUCCESS) { USB_DPRINTF_L2(DPRINT_MASK_WHCDI, whcdi_log_handle, "wusb_hc_add_host_info: add host info mmc ie fails"); + mutex_enter(&hc_data->hc_mutex); wusb_hc_free_iehdl(hc_data, iehdl); + mutex_exit(&hc_data->hc_mutex); return (rval); } + return (USB_SUCCESS); } @@ -667,8 +684,7 @@ wusb_hc_send_keepalive_ie(wusb_hc_data_t *hc_data, uint8_t addr) uint8_t iehdl; int rval; - ASSERT(mutex_owned(&hc_data->hc_mutex)); - + mutex_enter(&hc_data->hc_mutex); /* * the scheme ensures each time only one device addr * is set each time @@ -684,6 +700,7 @@ wusb_hc_send_keepalive_ie(wusb_hc_data_t *hc_data, uint8_t addr) if (rval != USB_SUCCESS) { USB_DPRINTF_L2(DPRINT_MASK_WHCDI, whcdi_log_handle, "wusb_hc_send_keepalive_ie: get ie handle fails"); + mutex_exit(&hc_data->hc_mutex); return (rval); } @@ -701,7 +718,6 @@ wusb_hc_send_keepalive_ie(wusb_hc_data_t *hc_data, uint8_t addr) if (rval != USB_SUCCESS) { USB_DPRINTF_L2(DPRINT_MASK_WHCDI, whcdi_log_handle, "wusb_hc_send_keepalive_ie: add keepalive ie fails"); - mutex_enter(&hc_data->hc_mutex); /* no need to free the ack iehdl since it is reused */ return (rval); @@ -719,6 +735,7 @@ wusb_hc_send_keepalive_ie(wusb_hc_data_t *hc_data, uint8_t addr) mutex_enter(&hc_data->hc_mutex); (void) wusb_hc_remove_mmc_ie(hc_data, iehdl); wusb_hc_free_iehdl(hc_data, iehdl); + mutex_exit(&hc_data->hc_mutex); return (USB_SUCCESS); } @@ -1212,6 +1229,7 @@ wusb_test_write(wusb_dev_info_t *dev_info) { int16_t value; int i, rval; + usb_pipe_handle_t dev_ph; value = wusb_get_ccm_encryption_value(&dev_info->wdev_secrt_data); if (value == -1) { @@ -1224,7 +1242,11 @@ wusb_test_write(wusb_dev_info_t *dev_info) for (i = 0; i < 1; i++) { USB_DPRINTF_L4(DPRINT_MASK_WHCDI, whcdi_log_handle, "wusb_test_write %d start:", i); - rval = wusb_dev_set_encrypt(dev_info->wdev_ph, (uint8_t)value); + mutex_enter(&dev_info->wdev_hc->hc_mutex); + dev_ph = dev_info->wdev_ph; + mutex_exit(&dev_info->wdev_hc->hc_mutex); + + rval = wusb_dev_set_encrypt(dev_ph, (uint8_t)value); if (rval != USB_SUCCESS) { USB_DPRINTF_L2(DPRINT_MASK_WHCDI, whcdi_log_handle, "wusb_test_write: %dth set encryption failed", i); @@ -1237,10 +1259,12 @@ wusb_test_write(wusb_dev_info_t *dev_info) /* enable CCM encryption on the device */ int -wusb_enable_dev_encrypt(wusb_dev_info_t *dev_info) +wusb_enable_dev_encrypt(wusb_hc_data_t *hc_data, wusb_dev_info_t *dev_info) { int16_t value; int rval; + usb_pipe_handle_t ph; + USB_DPRINTF_L3(DPRINT_MASK_WHCDI, whcdi_log_handle, "wusb_enable_dev_encrypt:enter"); @@ -1252,7 +1276,11 @@ wusb_enable_dev_encrypt(wusb_dev_info_t *dev_info) return (USB_FAILURE); } - rval = wusb_dev_set_encrypt(dev_info->wdev_ph, (uint8_t)value); + mutex_enter(&hc_data->hc_mutex); + ph = dev_info->wdev_ph; + mutex_exit(&hc_data->hc_mutex); + + rval = wusb_dev_set_encrypt(ph, (uint8_t)value); if (rval != USB_SUCCESS) { USB_DPRINTF_L2(DPRINT_MASK_WHCDI, whcdi_log_handle, "wusb_enable_dev_encrypt: set encryption failed"); @@ -1275,6 +1303,7 @@ wusb_hc_auth_dev(wusb_hc_data_t *hc_data, usb_port_t port, { wusb_dev_info_t *dev_info; usb_pipe_handle_t child_ph; + dev_info_t *child_dip; ASSERT(mutex_owned(&hc_data->hc_mutex)); @@ -1288,6 +1317,7 @@ wusb_hc_auth_dev(wusb_hc_data_t *hc_data, usb_port_t port, return (USB_INVALID_ARGS); } child_ph = dev_info->wdev_ph; + child_dip = hc_data->hc_children_dips[port]; mutex_exit(&hc_data->hc_mutex); /* get device security descrs */ @@ -1304,7 +1334,7 @@ wusb_hc_auth_dev(wusb_hc_data_t *hc_data, usb_port_t port, * enable CCM encryption on the device, this needs to be done * before 4-way handshake. [WUSB 1.0/7.3.2.5] */ - if (wusb_enable_dev_encrypt(dev_info) != USB_SUCCESS) { + if (wusb_enable_dev_encrypt(hc_data, dev_info) != USB_SUCCESS) { USB_DPRINTF_L2(DPRINT_MASK_WHCDI, whcdi_log_handle, "wusb_hc_auth_dev: set encryption failed"); @@ -1312,11 +1342,12 @@ wusb_hc_auth_dev(wusb_hc_data_t *hc_data, usb_port_t port, return (USB_FAILURE); } - mutex_enter(&hc_data->hc_mutex); /* this seems to relieve the non-response issue somehow */ - usb_pipe_close(hc_data->hc_children_dips[port], dev_info->wdev_ph, + usb_pipe_close(child_dip, child_ph, USB_FLAGS_SLEEP | USBA_FLAGS_PRIVILEGED, NULL, NULL); + + mutex_enter(&hc_data->hc_mutex); dev_info->wdev_ph = NULL; /* unauthenticated state */ @@ -1346,7 +1377,7 @@ wusb_hc_auth_dev(wusb_hc_data_t *hc_data, usb_port_t port, (void *)dev_info->wdev_cc); mutex_exit(&hc_data->hc_mutex); - if (usb_pipe_open(hc_data->hc_children_dips[port], NULL, NULL, + if (usb_pipe_open(child_dip, NULL, NULL, USB_FLAGS_SLEEP | USBA_FLAGS_PRIVILEGED, &child_ph) != USB_SUCCESS) { USB_DPRINTF_L2(DPRINT_MASK_WHCDI, whcdi_log_handle, @@ -1369,8 +1400,7 @@ wusb_hc_auth_dev(wusb_hc_data_t *hc_data, usb_port_t port, port); /* perhaps resetting the device is better */ - usb_pipe_reset(hc_data->hc_children_dips[port], - child_ph, + usb_pipe_reset(child_dip, child_ph, USB_FLAGS_SLEEP | USBA_FLAGS_PRIVILEGED, NULL, NULL); (void) wusb_dev_set_encrypt(child_ph, 0); @@ -1658,8 +1688,11 @@ wusb_hc_handle_port_connect(wusb_hc_data_t *hc_data, usb_port_t port, error: if (dev_info->wdev_ph != NULL) { - usb_pipe_close(child_dip, dev_info->wdev_ph, + mutex_exit(&hc_data->hc_mutex); + usb_pipe_close(child_dip, child_ph, USB_FLAGS_SLEEP | USBA_FLAGS_PRIVILEGED, NULL, NULL); + mutex_enter(&hc_data->hc_mutex); + dev_info->wdev_ph = NULL; } @@ -1674,9 +1707,10 @@ error: "failure to remove child node"); } - /* no need to unset address for WUSB */ - child_ud->usb_addr = 0; + mutex_exit(&hc_data->hc_mutex); usba_free_usba_device(child_ud); + mutex_enter(&hc_data->hc_mutex); + hc_data->hc_children_dips[port] = NULL; hc_data->hc_usba_devices[port] = NULL; } @@ -2096,8 +2130,10 @@ wusb_hc_send_host_disconnect(wusb_hc_data_t *hc_data) disconn_ie->bIEIdentifier = WUSB_IE_HOST_DISCONNECT; disconn_ie->bLength = sizeof (wusb_ie_host_disconnect_t); + mutex_enter(&hc_data->hc_mutex); rval = wusb_hc_get_iehdl(hc_data, (wusb_ie_header_t *)disconn_ie, &iehdl); + mutex_exit(&hc_data->hc_mutex); if (rval != USB_SUCCESS) { USB_DPRINTF_L2(DPRINT_MASK_WHCDI, whcdi_log_handle, "wusb_hc_send_host_disconnect: get ie handle fails"); @@ -2112,15 +2148,21 @@ wusb_hc_send_host_disconnect(wusb_hc_data_t *hc_data) USB_DPRINTF_L2(DPRINT_MASK_WHCDI, whcdi_log_handle, "wusb_hc_send_host_disconnect: add host " "disconnect ie fails"); + mutex_enter(&hc_data->hc_mutex); wusb_hc_free_iehdl(hc_data, iehdl); + mutex_exit(&hc_data->hc_mutex); kmem_free(disconn_ie, sizeof (wusb_ie_host_disconnect_t)); return (rval); } delay(drv_usectohz(100000)); /* WUSB 1.0/7.5.5 */ + + mutex_enter(&hc_data->hc_mutex); (void) wusb_hc_remove_mmc_ie(hc_data, iehdl); wusb_hc_free_iehdl(hc_data, iehdl); + mutex_exit(&hc_data->hc_mutex); + kmem_free(disconn_ie, sizeof (wusb_ie_host_disconnect_t)); return (USB_SUCCESS); @@ -2435,6 +2477,8 @@ wusb_hc_set_ptk(wusb_hc_data_t *hc_data, uint8_t *key_data, usb_port_t port) int rval; uint8_t *p; + ASSERT(mutex_owned(&hc_data->hc_mutex)); + if ((key_data == NULL) || (dev_info == NULL)) { return (USB_INVALID_ARGS); @@ -2449,6 +2493,8 @@ wusb_hc_set_ptk(wusb_hc_data_t *hc_data, uint8_t *key_data, usb_port_t port) p = &key_descr->KeyData[0]; (void) memcpy(p, key_data, 16); + mutex_exit(&hc_data->hc_mutex); + if ((rval = hc_data->set_ptk(dip, key_descr, klen, port)) != USB_SUCCESS) { USB_DPRINTF_L2(DPRINT_MASK_WHCDI, whcdi_log_handle, @@ -2456,6 +2502,7 @@ wusb_hc_set_ptk(wusb_hc_data_t *hc_data, uint8_t *key_data, usb_port_t port) } kmem_free(key_descr, klen); + mutex_enter(&hc_data->hc_mutex); return (rval); } @@ -2649,21 +2696,27 @@ wusb_4way_handshake(wusb_hc_data_t *hc_data, usb_port_t port, uchar_t adata2[] = "out-of-bandMIC"; uchar_t bdata[32], keyout[32], mic[8]; int rval; + usb_pipe_handle_t w_ph; USB_DPRINTF_L4(DPRINT_MASK_WHCDI, whcdi_log_handle, "wusb_4way_handshake: port = %d", port); + mutex_enter(&hc_data->hc_mutex); dev_info = hc_data->hc_dev_infos[port]; if (dev_info == NULL) { + mutex_exit(&hc_data->hc_mutex); return (USB_FAILURE); } cc = dev_info->wdev_cc; if (dev_info->wdev_ph == NULL || cc == NULL) { + mutex_exit(&hc_data->hc_mutex); return (USB_FAILURE); } + w_ph = dev_info->wdev_ph; + hs = (wusb_hndshk_data_t *)kmem_zalloc( 3 * sizeof (wusb_hndshk_data_t), KM_SLEEP); @@ -2683,6 +2736,7 @@ wusb_4way_handshake(wusb_hc_data_t *hc_data, usb_port_t port, != USB_SUCCESS) { USB_DPRINTF_L2(DPRINT_MASK_WHCDI, whcdi_log_handle, "Nonce generation failed: %d", rval); + mutex_exit(&hc_data->hc_mutex); goto done; } @@ -2691,7 +2745,8 @@ wusb_4way_handshake(wusb_hc_data_t *hc_data, usb_port_t port, USB_DPRINTF_L4(DPRINT_MASK_WHCDI, whcdi_log_handle, "wusb_4way_handshake: shake 1............."); - rval = wusb_handshake(dev_info->wdev_ph, &(hs[0]), 1); + mutex_exit(&hc_data->hc_mutex); + rval = wusb_handshake(w_ph, &(hs[0]), 1); if (rval != USB_SUCCESS) { USB_DPRINTF_L2(DPRINT_MASK_WHCDI, whcdi_log_handle, "handshake 1 failed, rval = %d", rval); @@ -2702,7 +2757,7 @@ wusb_4way_handshake(wusb_hc_data_t *hc_data, usb_port_t port, /* handshake 2 */ USB_DPRINTF_L4(DPRINT_MASK_WHCDI, whcdi_log_handle, "wusb_4way_handshake: shake 2............."); - rval = wusb_handshake(dev_info->wdev_ph, &(hs[1]), 2); + rval = wusb_handshake(w_ph, &(hs[1]), 2); if (rval != USB_SUCCESS) { USB_DPRINTF_L2(DPRINT_MASK_WHCDI, whcdi_log_handle, "handshake 2 failed, rval = %d", rval); @@ -2721,10 +2776,14 @@ wusb_4way_handshake(wusb_hc_data_t *hc_data, usb_port_t port, /* derived session keys, refer to WUSB 1.0/6.5.1 */ n.sfn = 0; n.tkid = tkid[0] | (tkid[1]<<8) | (tkid[2] << 16); + + mutex_enter(&hc_data->hc_mutex); n.daddr = dev_info->wdev_addr; + n.saddr = hc_data->hc_addr; bcopy(hs[0].Nonce, bdata, 16); bcopy(hs[1].Nonce, bdata + 16, 16); + mutex_exit(&hc_data->hc_mutex); rval = PRF_256(cc->CK, 16, &n, adata1, 14, bdata, 32, keyout); if (rval != 0) { @@ -2769,7 +2828,7 @@ wusb_4way_handshake(wusb_hc_data_t *hc_data, usb_port_t port, USB_DPRINTF_L4(DPRINT_MASK_WHCDI, whcdi_log_handle, "wusb_4way_handshake: shake 3............."); - rval = wusb_handshake(dev_info->wdev_ph, &(hs[2]), 3); + rval = wusb_handshake(w_ph, &(hs[2]), 3); if (rval != USB_SUCCESS) { USB_DPRINTF_L2(DPRINT_MASK_WHCDI, whcdi_log_handle, "handshake 3 failed, rval = %d", rval); @@ -2777,12 +2836,14 @@ wusb_4way_handshake(wusb_hc_data_t *hc_data, usb_port_t port, goto done; } + mutex_enter(&hc_data->hc_mutex); /* set PTK for host */ (void) memcpy(dev_info->wdev_ptk, keyout + 16, 16); USB_DPRINTF_L4(DPRINT_MASK_WHCDI, whcdi_log_handle, "wusb_4way_handshake: set ptk ............."); rval = wusb_hc_set_ptk(hc_data, dev_info->wdev_ptk, port); + mutex_exit(&hc_data->hc_mutex); if (rval != USB_SUCCESS) { USB_DPRINTF_L2(DPRINT_MASK_WHCDI, whcdi_log_handle, "set ptk for host failed, rval = %d", rval); @@ -2809,7 +2870,7 @@ wusb_4way_handshake(wusb_hc_data_t *hc_data, usb_port_t port, * set GTK for device * GTK is initialized when hc_data is inited */ - rval = wusb_dev_set_key(dev_info->wdev_ph, 2 << 4, + rval = wusb_dev_set_key(w_ph, 2 << 4, &hc_data->hc_gtk, hc_data->hc_gtk.bLength); done: kmem_free(hs, 3 * sizeof (wusb_hndshk_data_t)); diff --git a/usr/src/uts/common/io/warlock/hid_with_usba.wlcmd b/usr/src/uts/common/io/warlock/hid_with_usba.wlcmd index f40741e759..c6cbe4a0f5 100644 --- a/usr/src/uts/common/io/warlock/hid_with_usba.wlcmd +++ b/usr/src/uts/common/io/warlock/hid_with_usba.wlcmd @@ -46,6 +46,7 @@ root usb_get_if_number root usb_parse_CV_cfg_descr root usb_parse_CV_ep_descr root usb_parse_CV_if_descr +root usb_parse_comp_ep_descr root usb_pipe_get_private root usb_get_current_frame_number root usb_get_max_isoc_pkts @@ -191,6 +192,7 @@ add ehci_trans_wrapper::tw_handle_qtd targets ehci_handle_ctrl_qtd add ehci_trans_wrapper::tw_handle_qtd targets ehci_handle_bulk_qtd add ehci_trans_wrapper::tw_handle_qtd targets ehci_handle_intr_qtd +add hubd::h_cleanup_child targets warlock_dummy add usba_hcdi_ops::usba_hcdi_console_input_init targets \ ohci_hcdi_polled_input_init add usba_hcdi_ops::usba_hcdi_console_input_fini targets \ diff --git a/usr/src/uts/common/io/warlock/scsa2usb.wlcmd b/usr/src/uts/common/io/warlock/scsa2usb.wlcmd index 713952a554..96ff440e22 100644 --- a/usr/src/uts/common/io/warlock/scsa2usb.wlcmd +++ b/usr/src/uts/common/io/warlock/scsa2usb.wlcmd @@ -19,11 +19,10 @@ # CDDL HEADER END # # -# Copyright 2006 Sun Microsystems, Inc. All rights reserved. +# Copyright 2009 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # -#ident "%Z%%M% %I% %E% SMI" one scsa2usb_state @@ -33,7 +32,6 @@ root scsa2usb_scsi_getcap scsa2usb_scsi_setcap scsa2usb_scsi_init_pkt root scsa2usb_scsi_destroy_pkt root scsa2usb_reconnect_event_cb root scsa2usb_disconnect_event_cb -root scsa2usb_null_free root scsa2usb_panic_callb root scsa2usb_work_thread diff --git a/usr/src/uts/common/io/warlock/scsa2usb_with_usba.wlcmd b/usr/src/uts/common/io/warlock/scsa2usb_with_usba.wlcmd index 2caebe76a1..d7b46544a1 100644 --- a/usr/src/uts/common/io/warlock/scsa2usb_with_usba.wlcmd +++ b/usr/src/uts/common/io/warlock/scsa2usb_with_usba.wlcmd @@ -19,10 +19,9 @@ # CDDL HEADER END # # -# Copyright 2008 Sun Microsystems, Inc. All rights reserved. +# Copyright 2009 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # -#ident "%Z%%M% %I% %E% SMI" one ohci_state one ehci_state @@ -51,6 +50,7 @@ root usb_get_if_number root usb_parse_CV_cfg_descr root usb_parse_CV_ep_descr root usb_parse_CV_if_descr +root usb_parse_comp_ep_descr root usb_pipe_get_private root usb_get_current_frame_number root usb_get_max_isoc_pkts @@ -125,6 +125,9 @@ root hubd_root_hub_cleanup_thread root ohci_intr root ehci_intr +root ohci_quiesce +root uhci_quiesce +root ehci_quiesce root usba_dbuf_tail root usb_log @@ -142,6 +145,7 @@ root usb_fail_checkpoint add usba_pipe_async_req::sync_func targets usba_pipe_sync_close add usba_pipe_async_req::sync_func targets usba_pipe_sync_reset +add hubd::h_cleanup_child targets warlock_dummy add usb_isoc_req::isoc_cb targets warlock_dummy add usb_isoc_req::isoc_exc_cb targets warlock_dummy add usba_pipe_async_req::callback targets warlock_dummy @@ -169,7 +173,6 @@ root scsa2usb_scsi_tgt_init scsa2usb_scsi_tgt_probe scsa2usb_scsi_tgt_free root scsa2usb_reconnect_event_cb root scsa2usb_disconnect_event_cb -root scsa2usb_null_free root scsa2usb_work_thread root scsa2usb_panic_callb diff --git a/usr/src/uts/common/io/warlock/ugen_with_usba.wlcmd b/usr/src/uts/common/io/warlock/ugen_with_usba.wlcmd index b307a5c21d..964ea09aa3 100644 --- a/usr/src/uts/common/io/warlock/ugen_with_usba.wlcmd +++ b/usr/src/uts/common/io/warlock/ugen_with_usba.wlcmd @@ -18,10 +18,9 @@ # # 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. # -#ident "%Z%%M% %I% %E% SMI" one ohci_state one ehci_state @@ -45,6 +44,7 @@ root usb_get_dev_descr root usb_parse_CV_cfg_descr root usb_parse_CV_ep_descr root usb_parse_CV_if_descr +root usb_parse_comp_ep_descr root usb_pipe_get_private root usb_get_max_isoc_pkts root usb_pipe_set_private @@ -109,6 +109,9 @@ root hubd_pre_suspend_event_cb root hubd_reconnect_event_cb root hubd_root_hub_cleanup_thread root hubd_bus_power +root ehci_quiesce +root uhci_quiesce +root ohci_quiesce ### specify the ugen root functions root ugen_skel_disconnect_ev_cb @@ -126,6 +129,7 @@ add usb_ctrl_req::ctrl_cb targets warlock_dummy add usb_ctrl_req::ctrl_exc_cb targets warlock_dummy add usb_intr_req::intr_cb targets warlock_dummy add usb_intr_req::intr_exc_cb targets warlock_dummy +add hubd::h_cleanup_child targets warlock_dummy add usba_pm_req::cb targets warlock_dummy add ohci_trans_wrapper::tw_handle_td targets ohci_handle_bulk_td diff --git a/usr/src/uts/common/io/warlock/usb_ac_with_usba.wlcmd b/usr/src/uts/common/io/warlock/usb_ac_with_usba.wlcmd index aba4357455..dd4c0a0f46 100644 --- a/usr/src/uts/common/io/warlock/usb_ac_with_usba.wlcmd +++ b/usr/src/uts/common/io/warlock/usb_ac_with_usba.wlcmd @@ -47,6 +47,7 @@ root usb_get_if_number root usb_parse_CV_cfg_descr root usb_parse_CV_ep_descr root usb_parse_CV_if_descr +root usb_parse_comp_ep_descr root usb_pipe_get_private root usb_get_current_frame_number root usb_get_max_isoc_pkts @@ -94,6 +95,10 @@ root hcdi_autoclearing root hcdi_cb_thread root hcdi_shared_cb_thread +root ohci_quiesce +root uhci_quiesce +root ehci_quiesce + root usb_ugen_attach root usb_ugen_close root usb_ugen_detach @@ -164,6 +169,7 @@ root usb_ac_stop_play root usb_ac_stop_record root usb_ac_teardown +add hubd::h_cleanup_child targets warlock_dummy add usba_pipe_async_req::sync_func targets usba_pipe_sync_close add usba_pipe_async_req::sync_func targets usba_pipe_sync_reset diff --git a/usr/src/uts/common/io/warlock/usb_ia_with_usba.wlcmd b/usr/src/uts/common/io/warlock/usb_ia_with_usba.wlcmd index 400af40f87..4c86ebcf06 100644 --- a/usr/src/uts/common/io/warlock/usb_ia_with_usba.wlcmd +++ b/usr/src/uts/common/io/warlock/usb_ia_with_usba.wlcmd @@ -1,5 +1,5 @@ # -# Copyright 2007 Sun Microsystems, Inc. All rights reserved. +# Copyright 2009 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # # CDDL HEADER START @@ -21,7 +21,6 @@ # # CDDL HEADER END # -#ident "%Z%%M% %I% %E% SMI" one ohci_state @@ -51,6 +50,7 @@ root usb_get_if_number root usb_parse_CV_cfg_descr root usb_parse_CV_ep_descr root usb_parse_CV_if_descr +root usb_parse_comp_ep_descr root usb_pipe_reset root usb_pipe_get_private root usb_get_current_frame_number @@ -142,6 +142,9 @@ root hcdi_autoclearing root hcdi_cb_thread root hcdi_shared_cb_thread +root ohci_quiesce +root uhci_quiesce +root ehci_quiesce root usba_pipe_do_async_func_thread root usba_get_hc_dma_attr @@ -152,6 +155,7 @@ root usba_taskq_destroy root usba_mk_mctl root usb_fail_checkpoint +add hubd::h_cleanup_child targets warlock_dummy add usb_bulk_req::bulk_cb targets warlock_dummy add usb_bulk_req::bulk_exc_cb targets warlock_dummy add usb_ctrl_req::ctrl_cb targets warlock_dummy diff --git a/usr/src/uts/common/io/warlock/usb_mid_with_usba.wlcmd b/usr/src/uts/common/io/warlock/usb_mid_with_usba.wlcmd index c8248fc9de..7685d3e02d 100644 --- a/usr/src/uts/common/io/warlock/usb_mid_with_usba.wlcmd +++ b/usr/src/uts/common/io/warlock/usb_mid_with_usba.wlcmd @@ -1,5 +1,5 @@ # -# Copyright 2007 Sun Microsystems, Inc. All rights reserved. +# Copyright 2009 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # # CDDL HEADER START @@ -21,7 +21,6 @@ # # CDDL HEADER END # -#ident "%Z%%M% %I% %E% SMI" one ohci_state @@ -51,6 +50,7 @@ root usb_get_if_number root usb_parse_CV_cfg_descr root usb_parse_CV_ep_descr root usb_parse_CV_if_descr +root usb_parse_comp_ep_descr root usb_pipe_reset root usb_pipe_get_private root usb_get_current_frame_number @@ -60,6 +60,9 @@ root usba_ready_interface_node root usba_free_hcdi_ops root ohci_intr root ehci_intr +root ohci_quiesce +root uhci_quiesce +root ehci_quiesce root usba_dbuf_tail root usb_log @@ -140,6 +143,7 @@ root usba_taskq_destroy root usba_mk_mctl root usb_fail_checkpoint +add hubd::h_cleanup_child targets warlock_dummy add usb_bulk_req::bulk_cb targets warlock_dummy add usb_bulk_req::bulk_exc_cb targets warlock_dummy add usb_ctrl_req::ctrl_cb targets warlock_dummy diff --git a/usr/src/uts/common/io/warlock/usbftdi_with_usba.wlcmd b/usr/src/uts/common/io/warlock/usbftdi_with_usba.wlcmd index bf0eaffeef..5f40e18082 100644 --- a/usr/src/uts/common/io/warlock/usbftdi_with_usba.wlcmd +++ b/usr/src/uts/common/io/warlock/usbftdi_with_usba.wlcmd @@ -47,6 +47,7 @@ root usb_get_if_number root usb_parse_CV_cfg_descr root usb_parse_CV_ep_descr root usb_parse_CV_if_descr +root usb_parse_comp_ep_descr root usb_pipe_get_private root usb_get_current_frame_number root usb_get_max_isoc_pkts @@ -143,6 +144,9 @@ root usb_fail_checkpoint root ohci_intr root ehci_intr +root ohci_quiesce +root uhci_quiesce +root ehci_quiesce ### specify the uftdi root functions @@ -194,6 +198,7 @@ add ds_ops::ds_in_pipe targets uftdi_in_pipe add uftdi_state::uf_cb.cb_tx targets usbser_tx_cb add uftdi_state::uf_cb.cb_rx targets usbser_rx_cb +add hubd::h_cleanup_child targets warlock_dummy add usb_ctrl_req::ctrl_cb targets warlock_dummy add usb_ctrl_req::ctrl_exc_cb targets warlock_dummy add usb_bulk_req::bulk_cb targets uftdi_bulkin_cb diff --git a/usr/src/uts/common/io/warlock/usbprn_with_usba.wlcmd b/usr/src/uts/common/io/warlock/usbprn_with_usba.wlcmd index d3c8386557..55785e7015 100644 --- a/usr/src/uts/common/io/warlock/usbprn_with_usba.wlcmd +++ b/usr/src/uts/common/io/warlock/usbprn_with_usba.wlcmd @@ -1,5 +1,5 @@ # -# Copyright 2007 Sun Microsystems, Inc. All rights reserved. +# Copyright 2009 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # # CDDL HEADER START @@ -21,7 +21,6 @@ # # CDDL HEADER END # -#ident "%Z%%M% %I% %E% SMI" one ohci_state one ehci_state @@ -45,6 +44,7 @@ root usb_get_if_number root usb_parse_CV_cfg_descr root usb_parse_CV_ep_descr root usb_parse_CV_if_descr +root usb_parse_comp_ep_descr root usb_pipe_get_private root usb_get_current_frame_number root usb_get_max_isoc_pkts @@ -94,6 +94,9 @@ root hcdi_autoclearing root hcdi_cb_thread root hcdi_shared_cb_thread +root ohci_quiesce +root uhci_quiesce +root ehci_quiesce root hubd_restore_state_cb root hubd_disconnect_event_cb @@ -139,6 +142,7 @@ root usbprn_reconnect_event_cb root usbprn_disconnect_event_cb root usbprn_power +add hubd::h_cleanup_child targets warlock_dummy add usb_ctrl_req::ctrl_cb targets warlock_dummy add usb_ctrl_req::ctrl_exc_cb targets warlock_dummy add usb_bulk_req::bulk_cb targets usbprn_bulk_xfer_cb diff --git a/usr/src/uts/common/io/warlock/usbser_edge_with_usba.wlcmd b/usr/src/uts/common/io/warlock/usbser_edge_with_usba.wlcmd index 50e2f88102..eb9f49649b 100644 --- a/usr/src/uts/common/io/warlock/usbser_edge_with_usba.wlcmd +++ b/usr/src/uts/common/io/warlock/usbser_edge_with_usba.wlcmd @@ -1,8 +1,7 @@ # -# Copyright 2007 Sun Microsystems, Inc. All rights reserved. +# Copyright 2009 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # -#ident "%Z%%M% %I% %E% SMI" one ohci_state one ehci_state @@ -32,6 +31,7 @@ root usb_get_if_number root usb_parse_CV_cfg_descr root usb_parse_CV_ep_descr root usb_parse_CV_if_descr +root usb_parse_comp_ep_descr root usb_pipe_get_private root usb_get_current_frame_number root usb_get_max_isoc_pkts @@ -129,6 +129,9 @@ root usb_fail_checkpoint root ohci_intr root ehci_intr +root ohci_quiesce +root uhci_quiesce +root ehci_quiesce ### specify the edgeport root functions root usbser_soft_state_size @@ -188,6 +191,7 @@ add edge_port::ep_cb.cb_tx targets usbser_tx_cb add edge_port::ep_cb.cb_rx targets usbser_rx_cb add edge_port::ep_cb.cb_status targets usbser_status_cb +add hubd::h_cleanup_child targets warlock_dummy add usb_ctrl_req::ctrl_cb targets warlock_dummy add usb_ctrl_req::ctrl_exc_cb targets warlock_dummy add usb_bulk_req::bulk_cb targets edgesp_bulkin_cb diff --git a/usr/src/uts/common/io/warlock/usbser_keyspan_with_usba.wlcmd b/usr/src/uts/common/io/warlock/usbser_keyspan_with_usba.wlcmd index d9bfab4102..787b6ce387 100644 --- a/usr/src/uts/common/io/warlock/usbser_keyspan_with_usba.wlcmd +++ b/usr/src/uts/common/io/warlock/usbser_keyspan_with_usba.wlcmd @@ -20,11 +20,10 @@ # # # -# Copyright 2007 Sun Microsystems, Inc. All rights reserved. +# Copyright 2009 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # -#ident "%Z%%M% %I% %E% SMI" one ohci_state one ehci_state @@ -53,6 +52,7 @@ root usb_get_if_number root usb_parse_CV_cfg_descr root usb_parse_CV_ep_descr root usb_parse_CV_if_descr +root usb_parse_comp_ep_descr root usb_pipe_get_private root usb_get_current_frame_number root usb_get_max_isoc_pkts @@ -150,6 +150,9 @@ root usb_fail_checkpoint root ohci_intr root ehci_intr +root ohci_quiesce +root uhci_quiesce +root ehci_quiesce ### specify the keyspan root functions root usbser_soft_state_size @@ -208,6 +211,7 @@ add keyspan_port::kp_cb.cb_tx targets usbser_tx_cb add keyspan_port::kp_cb.cb_rx targets usbser_rx_cb add keyspan_port::kp_cb.cb_status targets usbser_status_cb +add hubd::h_cleanup_child targets warlock_dummy add usb_ctrl_req::ctrl_cb targets warlock_dummy add usb_ctrl_req::ctrl_exc_cb targets warlock_dummy add usb_bulk_req::bulk_cb targets keyspan_bulkin_cb diff --git a/usr/src/uts/common/io/warlock/usbskel_with_usba.wlcmd b/usr/src/uts/common/io/warlock/usbskel_with_usba.wlcmd index 22f4007431..68446e9b98 100644 --- a/usr/src/uts/common/io/warlock/usbskel_with_usba.wlcmd +++ b/usr/src/uts/common/io/warlock/usbskel_with_usba.wlcmd @@ -1,5 +1,5 @@ # -# Copyright 2007 Sun Microsystems, Inc. All rights reserved. +# Copyright 2009 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # # CDDL HEADER START @@ -21,7 +21,6 @@ # # CDDL HEADER END # -#ident "%Z%%M% %I% %E% SMI" one ohci_state one ehci_state @@ -46,6 +45,7 @@ root usb_get_dev_descr root usb_parse_CV_cfg_descr root usb_parse_CV_ep_descr root usb_parse_CV_if_descr +root usb_parse_comp_ep_descr root usb_pipe_reset root usb_pipe_get_private root usb_get_max_isoc_pkts @@ -117,7 +117,9 @@ root usba_taskq_destroy root hcdi_autoclearing root hcdi_cb_thread root hcdi_shared_cb_thread - +root ohci_quiesce +root uhci_quiesce +root ehci_quiesce root hubd_bus_power root hubd_hotplug_thread @@ -139,6 +141,7 @@ root usbskel_exception_callback root usbskel_disconnect_callback root usbskel_reconnect_callback +add hubd::h_cleanup_child targets warlock_dummy add usba_pipe_async_req::sync_func targets usba_pipe_sync_close add usba_pipe_async_req::sync_func targets usba_pipe_sync_reset diff --git a/usr/src/uts/common/io/warlock/usbsprl_with_usba.wlcmd b/usr/src/uts/common/io/warlock/usbsprl_with_usba.wlcmd index d2cf713966..4fdb0bf320 100644 --- a/usr/src/uts/common/io/warlock/usbsprl_with_usba.wlcmd +++ b/usr/src/uts/common/io/warlock/usbsprl_with_usba.wlcmd @@ -17,10 +17,9 @@ # # 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. # -#ident "%Z%%M% %I% %E% SMI" one ohci_state one ehci_state @@ -47,6 +46,7 @@ root usb_get_if_number root usb_parse_CV_cfg_descr root usb_parse_CV_ep_descr root usb_parse_CV_if_descr +root usb_parse_comp_ep_descr root usb_pipe_get_private root usb_get_current_frame_number root usb_get_max_isoc_pkts @@ -143,6 +143,9 @@ root usb_fail_checkpoint root ohci_intr root ehci_intr +root ohci_quiesce +root uhci_quiesce +root ehci_quiesce ### specify the pl2303 root functions @@ -194,6 +197,7 @@ add ds_ops::ds_in_pipe targets pl2303_in_pipe add pl2303_state::pl_cb.cb_tx targets usbser_tx_cb add pl2303_state::pl_cb.cb_rx targets usbser_rx_cb +add hubd::h_cleanup_child targets warlock_dummy add usb_ctrl_req::ctrl_cb targets warlock_dummy add usb_ctrl_req::ctrl_exc_cb targets warlock_dummy add usb_bulk_req::bulk_cb targets pl2303_bulkin_cb diff --git a/usr/src/uts/common/io/warlock/usbvc_with_usba.wlcmd b/usr/src/uts/common/io/warlock/usbvc_with_usba.wlcmd index ba95bb221f..08f1bc60e1 100644 --- a/usr/src/uts/common/io/warlock/usbvc_with_usba.wlcmd +++ b/usr/src/uts/common/io/warlock/usbvc_with_usba.wlcmd @@ -19,10 +19,9 @@ # 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. # -#ident "%Z%%M% %I% %E% SMI" one ohci_state one ehci_state @@ -46,6 +45,7 @@ root usb_get_if_number root usb_parse_CV_cfg_descr root usb_parse_CV_ep_descr root usb_parse_CV_if_descr +root usb_parse_comp_ep_descr root usb_pipe_get_private root usb_get_current_frame_number root usb_get_max_isoc_pkts @@ -139,6 +139,9 @@ root usb_fail_checkpoint root ohci_intr root ehci_intr +root ohci_quiesce +root uhci_quiesce +root ehci_quiesce ### specify the usbvc root functions root usbvc_open @@ -151,6 +154,7 @@ root usbvc_isoc_exc_cb root usbvc_disconnect_event_cb root usbvc_reconnect_event_cb +add hubd::h_cleanup_child targets warlock_dummy add usb_ctrl_req::ctrl_cb targets warlock_dummy add usb_ctrl_req::ctrl_exc_cb targets warlock_dummy add usb_isoc_req::isoc_cb targets usbvc_isoc_cb diff --git a/usr/src/uts/common/sys/usb/hubd/hubdvar.h b/usr/src/uts/common/sys/usb/hubd/hubdvar.h index cbe0b2f855..3c85cefd51 100644 --- a/usr/src/uts/common/sys/usb/hubd/hubdvar.h +++ b/usr/src/uts/common/sys/usb/hubd/hubdvar.h @@ -260,6 +260,8 @@ _NOTE(DATA_READABLE_WITHOUT_LOCK(hubd::h_default_pipe hubd::h_hubpm hubd::h_dip hubd::h_ignore_pwr_budget + hubd::h_hub_descr + hubd::h_cleanup_child )) _NOTE(SCHEME_PROTECTS_DATA("stable data", usb_ep_descr)) diff --git a/usr/src/uts/common/sys/usb/usba/usba_types.h b/usr/src/uts/common/sys/usb/usba/usba_types.h index 5a6f753515..e007d5d3c0 100644 --- a/usr/src/uts/common/sys/usb/usba/usba_types.h +++ b/usr/src/uts/common/sys/usb/usba/usba_types.h @@ -234,6 +234,7 @@ typedef struct usba_wireless_data { usb_uwb_cap_descr_t *uwb_descr; /* UWB capability descr */ } usba_wireless_data_t; + /* * This structure uniquely identifies a USB device * with all interfaces, or just one interface of a USB device. @@ -355,6 +356,7 @@ typedef struct usba_device { _NOTE(MUTEX_PROTECTS_DATA(usba_device::usb_mutex, usba_device)) _NOTE(MUTEX_PROTECTS_DATA(usba_device::usb_mutex, usba_evdata)) +_NOTE(MUTEX_PROTECTS_DATA(usba_device::usb_mutex, usba_wireless_data)) _NOTE(SCHEME_PROTECTS_DATA("chg at attach only", usba_evdata::ev_rm_cb_id)) @@ -365,6 +367,13 @@ _NOTE(SCHEME_PROTECTS_DATA("chg at attach only", _NOTE(SCHEME_PROTECTS_DATA("chg at attach only", usba_evdata::ev_resume_cb_id)) +_NOTE(SCHEME_PROTECTS_DATA("chg at attach only", + usba_wireless_data::wusb_bos)) +_NOTE(SCHEME_PROTECTS_DATA("chg at attach only", + usba_wireless_data::wusb_bos_length)) +_NOTE(SCHEME_PROTECTS_DATA("chg at attach only", + usba_wireless_data::uwb_descr)) + /* this should be really stable data */ _NOTE(DATA_READABLE_WITHOUT_LOCK(usba_device::usb_serialno_str)) _NOTE(DATA_READABLE_WITHOUT_LOCK(usba_device::usb_root_hub_dip)) @@ -398,9 +407,14 @@ _NOTE(DATA_READABLE_WITHOUT_LOCK(usba_device::usb_client_ev_cb_list)) _NOTE(DATA_READABLE_WITHOUT_LOCK(usba_device::usb_dip)) _NOTE(DATA_READABLE_WITHOUT_LOCK(usba_device::usb_is_wireless)) _NOTE(DATA_READABLE_WITHOUT_LOCK(usba_device::usb_wireless_data)) +_NOTE(DATA_READABLE_WITHOUT_LOCK(usba_device::usb_is_wa)) _NOTE(SCHEME_PROTECTS_DATA("set at device creation", usba_device::usb_shared_taskq)) +_NOTE(SCHEME_PROTECTS_DATA("local use only", + usb_key_descr::bDescriptorType)) +_NOTE(SCHEME_PROTECTS_DATA("local use only", + usb_key_descr::bLength)) /* * serialization in drivers */ diff --git a/usr/src/uts/common/sys/usb/usba/whcdi.h b/usr/src/uts/common/sys/usb/usba/whcdi.h index bdbf4537f4..c5fbafb67a 100644 --- a/usr/src/uts/common/sys/usb/usba/whcdi.h +++ b/usr/src/uts/common/sys/usb/usba/whcdi.h @@ -68,6 +68,7 @@ typedef struct wusb_dev_info { _NOTE(DATA_READABLE_WITHOUT_LOCK(wusb_dev_info::wdev_addr)) _NOTE(DATA_READABLE_WITHOUT_LOCK(wusb_dev_info::wdev_uwb_descr)) _NOTE(DATA_READABLE_WITHOUT_LOCK(wusb_dev_info::wdev_hc)) +_NOTE(DATA_READABLE_WITHOUT_LOCK(wusb_dev_info::wdev_secrt_data)) /* * According to WUSB 1.0 spec, WUSB hosts can support up to 127 devices. @@ -150,8 +151,31 @@ _NOTE(MUTEX_PROTECTS_DATA(wusb_hc_data_t::hc_mutex, wusb_dev_info_t)) _NOTE(MUTEX_PROTECTS_DATA(wusb_hc_data_t::hc_mutex, wusb_hc_data_t)) _NOTE(DATA_READABLE_WITHOUT_LOCK(wusb_hc_data_t::hc_num_ports)) +_NOTE(DATA_READABLE_WITHOUT_LOCK(wusb_hc_data_t::hc_num_mmcies)) _NOTE(DATA_READABLE_WITHOUT_LOCK(wusb_hc_data_t::hc_dip)) - +_NOTE(DATA_READABLE_WITHOUT_LOCK(wusb_hc_data_t::hc_gtk)) +_NOTE(DATA_READABLE_WITHOUT_LOCK(wusb_hc_data_t::add_mmc_ie)) +_NOTE(DATA_READABLE_WITHOUT_LOCK(wusb_hc_data_t::rem_mmc_ie)) +_NOTE(DATA_READABLE_WITHOUT_LOCK(wusb_hc_data_t::set_cluster_id)) +_NOTE(DATA_READABLE_WITHOUT_LOCK(wusb_hc_data_t::set_encrypt)) +_NOTE(DATA_READABLE_WITHOUT_LOCK(wusb_hc_data_t::set_gtk)) +_NOTE(DATA_READABLE_WITHOUT_LOCK(wusb_hc_data_t::set_ptk)) +_NOTE(DATA_READABLE_WITHOUT_LOCK(wusb_hc_data_t::set_num_dnts)) +_NOTE(DATA_READABLE_WITHOUT_LOCK(wusb_hc_data_t::set_stream_idx)) +_NOTE(DATA_READABLE_WITHOUT_LOCK(wusb_hc_data_t::set_wusb_mas)) +_NOTE(DATA_READABLE_WITHOUT_LOCK(wusb_hc_data_t::stop_ch)) +_NOTE(DATA_READABLE_WITHOUT_LOCK(wusb_hc_data_t::create_child)) +_NOTE(DATA_READABLE_WITHOUT_LOCK(wusb_hc_data_t::destroy_child)) +_NOTE(DATA_READABLE_WITHOUT_LOCK(wusb_hc_data_t::disconnect_dev)) +_NOTE(DATA_READABLE_WITHOUT_LOCK(wusb_hc_data_t::reconnect_dev)) +_NOTE(DATA_READABLE_WITHOUT_LOCK(wusb_hc_data_t::get_time)) + +_NOTE(SCHEME_PROTECTS_DATA("local use only", + wusb_ie_host_disconnect::bLength)) +_NOTE(SCHEME_PROTECTS_DATA("local use only", + wusb_ie_host_disconnect::bIEIdentifier)) +_NOTE(SCHEME_PROTECTS_DATA("local use only", + wusb_ccm_nonce::sfn)) /* * WUSB 1.0 4.3.8.5 says the range of cluster id is in 0x80-0xfe, * we limit the maximum WUSB host controller numbers to 31 now, @@ -258,7 +282,7 @@ wusb_cc_t *wusb_hc_cc_matched(wusb_hc_cc_list_t *cc_list, uint8_t *cdid); /* security functions */ int wusb_dev_set_encrypt(usb_pipe_handle_t ph, uint8_t value); -int wusb_enable_dev_encrypt(wusb_dev_info_t *dev_info); +int wusb_enable_dev_encrypt(wusb_hc_data_t *hc, wusb_dev_info_t *dev_info); int wusb_dev_set_key(usb_pipe_handle_t ph, uint8_t key_index, usb_key_descr_t *key, size_t klen); int wusb_hc_set_encrypt(wusb_hc_data_t *hc_data, usb_port_t port, diff --git a/usr/src/uts/intel/hid/Makefile b/usr/src/uts/intel/hid/Makefile index a3d918bbf4..20376e28e0 100644 --- a/usr/src/uts/intel/hid/Makefile +++ b/usr/src/uts/intel/hid/Makefile @@ -20,7 +20,7 @@ # # # uts/intel/hid/Makefile -# Copyright 2008 Sun Microsystems, Inc. All rights reserved. +# Copyright 2009 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # # @@ -112,7 +112,7 @@ TEST = test # # lock_lint rules # -USBA_FILES = $(USBA_OBJS:%.o=../usba/%.ll) +USBA_FILES = $(USBA_WITHOUT_WUSB_OBJS:%.o=../usba/%.ll) OHCI_FILES = $(OHCI_OBJS:%.o=../ohci/%.ll) UHCI_FILES = $(UHCI_OBJS:%.o=../uhci/%.ll) EHCI_FILES = $(EHCI_OBJS:%.o=../ehci/%.ll) @@ -148,6 +148,7 @@ uhci_files: ehci_files: @cd ../ehci;pwd; $(MAKE) warlock + warlock_ddi.files: cd ../warlock; pwd; $(MAKE) warlock diff --git a/usr/src/uts/intel/scsa2usb/Makefile b/usr/src/uts/intel/scsa2usb/Makefile index 0f2419a89b..f1673e6c2e 100644 --- a/usr/src/uts/intel/scsa2usb/Makefile +++ b/usr/src/uts/intel/scsa2usb/Makefile @@ -20,7 +20,7 @@ # # # uts/intel/scsa2usb/Makefile -# Copyright 2008 Sun Microsystems, Inc. All rights reserved. +# Copyright 2009 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # # @@ -114,7 +114,7 @@ TEST = test # # lock_lint rules # -USBA_FILES = $(USBA_OBJS:%.o=../usba/%.ll) +USBA_FILES = $(USBA_WITHOUT_WUSB_OBJS:%.o=../usba/%.ll) UHCI_FILES = $(UHCI_OBJS:%.o=../uhci/%.ll) OHCI_FILES = $(OHCI_OBJS:%.o=../ohci/%.ll) EHCI_FILES = $(EHCI_OBJS:%.o=../ehci/%.ll) diff --git a/usr/src/uts/intel/ugen/Makefile b/usr/src/uts/intel/ugen/Makefile index 5544dac706..de0ca3af98 100644 --- a/usr/src/uts/intel/ugen/Makefile +++ b/usr/src/uts/intel/ugen/Makefile @@ -19,7 +19,7 @@ # CDDL HEADER END # # -# Copyright 2008 Sun Microsystems, Inc. All rights reserved. +# Copyright 2009 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # @@ -100,7 +100,7 @@ TEST = test # # lock_lint rules # -USBA_FILES = $(USBA_OBJS:%.o=../usba/%.ll) +USBA_FILES = $(USBA_WITHOUT_WUSB_OBJS:%.o=../usba/%.ll) UHCI_FILES = $(UHCI_OBJS:%.o=../uhci/%.ll) OHCI_FILES = $(OHCI_OBJS:%.o=../ohci/%.ll) EHCI_FILES = $(EHCI_OBJS:%.o=../ehci/%.ll) diff --git a/usr/src/uts/intel/usb_ac/Makefile b/usr/src/uts/intel/usb_ac/Makefile index 29ce6e73fb..5b18985111 100644 --- a/usr/src/uts/intel/usb_ac/Makefile +++ b/usr/src/uts/intel/usb_ac/Makefile @@ -108,7 +108,7 @@ TEST = test # # lock_lint rules # -USBA_FILES = $(USBA_OBJS:%.o=../usba/%.ll) +USBA_FILES = $(USBA_WITHOUT_WUSB_OBJS:%.o=../usba/%.ll) UHCI_FILES = $(UHCI_OBJS:%.o=../uhci/%.ll) OHCI_FILES = $(OHCI_OBJS:%.o=../ohci/%.ll) EHCI_FILES = $(EHCI_OBJS:%.o=../ehci/%.ll) diff --git a/usr/src/uts/intel/usb_ia/Makefile b/usr/src/uts/intel/usb_ia/Makefile index 0bd9d32ceb..daac68d010 100644 --- a/usr/src/uts/intel/usb_ia/Makefile +++ b/usr/src/uts/intel/usb_ia/Makefile @@ -20,10 +20,9 @@ # # # uts/intel/usb_ia/Makefile -# Copyright 2007 Sun Microsystems, Inc. All rights reserved. +# Copyright 2009 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # -#ident "%Z%%M% %I% %E% SMI" # # This makefile drives the production of the usb_ia driver kernel module. # @@ -106,7 +105,7 @@ TEST = test # # lock_lint rules # -USBA_FILES = $(USBA_OBJS:%.o=../usba/%.ll) +USBA_FILES = $(USBA_WITHOUT_WUSB_OBJS:%.o=../usba/%.ll) UHCI_FILES = $(UHCI_OBJS:%.o=../uhci/%.ll) OHCI_FILES = $(OHCI_OBJS:%.o=../ohci/%.ll) EHCI_FILES = $(EHCI_OBJS:%.o=../ehci/%.ll) diff --git a/usr/src/uts/intel/usb_mid/Makefile b/usr/src/uts/intel/usb_mid/Makefile index 3fa1458089..6f5d3df456 100644 --- a/usr/src/uts/intel/usb_mid/Makefile +++ b/usr/src/uts/intel/usb_mid/Makefile @@ -20,10 +20,9 @@ # # uts/intel/usb_mid/Makefile -# Copyright 2007 Sun Microsystems, Inc. All rights reserved. +# Copyright 2009 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # -#ident "%Z%%M% %I% %E% SMI" # # This makefile drives the production of the usb_mid driver kernel module. # @@ -106,7 +105,7 @@ TEST = test # # lock_lint rules # -USBA_FILES = $(USBA_OBJS:%.o=../usba/%.ll) +USBA_FILES = $(USBA_WITHOUT_WUSB_OBJS:%.o=../usba/%.ll) UHCI_FILES = $(UHCI_OBJS:%.o=../uhci/%.ll) OHCI_FILES = $(OHCI_OBJS:%.o=../ohci/%.ll) EHCI_FILES = $(EHCI_OBJS:%.o=../ehci/%.ll) diff --git a/usr/src/uts/intel/usbftdi/Makefile b/usr/src/uts/intel/usbftdi/Makefile index 2af8e23760..4dfbef27bc 100644 --- a/usr/src/uts/intel/usbftdi/Makefile +++ b/usr/src/uts/intel/usbftdi/Makefile @@ -95,7 +95,7 @@ TEST = test # WARLOCK_CMD = $(WLCMD_DIR)/$(MODULE).wlcmd USBSER_FILES = $(USBSER_OBJS:%.o=../usbser/%.ll) -USBA_FILES = $(USBA_OBJS:%.o=../usba/%.ll) +USBA_FILES = $(USBA_WITHOUT_WUSB_OBJS:%.o=../usba/%.ll) UHCI_FILES = $(UHCI_OBJS:%.o=../uhci/%.ll) OHCI_FILES = $(OHCI_OBJS:%.o=../ohci/%.ll) EHCI_FILES = $(EHCI_OBJS:%.o=../ehci/%.ll) diff --git a/usr/src/uts/intel/usbprn/Makefile b/usr/src/uts/intel/usbprn/Makefile index 8838fc5c50..8dbb7d0823 100644 --- a/usr/src/uts/intel/usbprn/Makefile +++ b/usr/src/uts/intel/usbprn/Makefile @@ -20,7 +20,7 @@ # # # uts/intel/usbprn/Makefile -# Copyright 2008 Sun Microsystems, Inc. All rights reserved. +# Copyright 2009 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # # @@ -105,7 +105,8 @@ TEST = test # # lock_lint rules # -USBA_FILES = $(USBA_OBJS:%.o=../usba/%.ll) +#USBA_FILES = $(USBA_OBJS:%.o=../usba/%.ll) +USBA_FILES = $(USBA_WITHOUT_WUSB_OBJS:%.o=../usba/%.ll) UHCI_FILES = $(UHCI_OBJS:%.o=../uhci/%.ll) OHCI_FILES = $(OHCI_OBJS:%.o=../ohci/%.ll) EHCI_FILES = $(EHCI_OBJS:%.o=../ehci/%.ll) diff --git a/usr/src/uts/intel/usbskel/Makefile b/usr/src/uts/intel/usbskel/Makefile index d730fcdf63..57efcd878d 100644 --- a/usr/src/uts/intel/usbskel/Makefile +++ b/usr/src/uts/intel/usbskel/Makefile @@ -20,7 +20,7 @@ # # # uts/intel/usbskel/Makefile -# Copyright 2008 Sun Microsystems, Inc. All rights reserved. +# Copyright 2009 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # # @@ -106,7 +106,7 @@ TEST = test # # lock_lint rules # -USBA_FILES = $(USBA_OBJS:%.o=../usba/%.ll) +USBA_FILES = $(USBA_WITHOUT_WUSB_OBJS:%.o=../usba/%.ll) UHCI_FILES = $(UHCI_OBJS:%.o=../uhci/%.ll) OHCI_FILES = $(OHCI_OBJS:%.o=../ohci/%.ll) EHCI_FILES = $(EHCI_OBJS:%.o=../ehci/%.ll) diff --git a/usr/src/uts/intel/usbsksp/Makefile b/usr/src/uts/intel/usbsksp/Makefile index 0efc49b304..a8141b4d45 100644 --- a/usr/src/uts/intel/usbsksp/Makefile +++ b/usr/src/uts/intel/usbsksp/Makefile @@ -20,7 +20,7 @@ # # # -# Copyright 2008 Sun Microsystems, Inc. All rights reserved. +# Copyright 2009 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # # uts/intel/usbsksp/Makefile @@ -97,7 +97,7 @@ TEST = test WARLOCK_CMD = $(WLCMD_DIR)/usbser_keyspan.wlcmd USBSER_FILES = $(USBSER_OBJS:%.o=../usbser/%.ll) -USBA_FILES = $(USBA_OBJS:%.o=../usba/%.ll) +USBA_FILES = $(USBA_WITHOUT_WUSB_OBJS:%.o=../usba/%.ll) UHCI_FILES = $(UHCI_OBJS:%.o=../uhci/%.ll) OHCI_FILES = $(OHCI_OBJS:%.o=../ohci/%.ll) EHCI_FILES = $(EHCI_OBJS:%.o=../ehci/%.ll) diff --git a/usr/src/uts/intel/usbsprl/Makefile b/usr/src/uts/intel/usbsprl/Makefile index 68dd0ef75c..24cbdebf47 100644 --- a/usr/src/uts/intel/usbsprl/Makefile +++ b/usr/src/uts/intel/usbsprl/Makefile @@ -20,7 +20,7 @@ # # # uts/intel/usbsprl/Makefile -# Copyright 2008 Sun Microsystems, Inc. All rights reserved. +# Copyright 2009 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # # @@ -94,7 +94,7 @@ TEST = test # WARLOCK_CMD = $(WLCMD_DIR)/$(MODULE).wlcmd USBSER_FILES = $(USBSER_OBJS:%.o=../usbser/%.ll) -USBA_FILES = $(USBA_OBJS:%.o=../usba/%.ll) +USBA_FILES = $(USBA_WITHOUT_WUSB_OBJS:%.o=../usba/%.ll) UHCI_FILES = $(UHCI_OBJS:%.o=../uhci/%.ll) OHCI_FILES = $(OHCI_OBJS:%.o=../ohci/%.ll) EHCI_FILES = $(EHCI_OBJS:%.o=../ehci/%.ll) diff --git a/usr/src/uts/intel/usbvc/Makefile b/usr/src/uts/intel/usbvc/Makefile index fdd43a5f20..c3898620e8 100644 --- a/usr/src/uts/intel/usbvc/Makefile +++ b/usr/src/uts/intel/usbvc/Makefile @@ -20,10 +20,9 @@ # # -# Copyright 2007 Sun Microsystems, Inc. All rights reserved. +# Copyright 2009 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # -#ident "%Z%%M% %I% %E% SMI" # # This makefile drives the production of the usbvc driver kernel module. @@ -113,7 +112,7 @@ TEST = test # # lock_lint rules # -USBA_FILES = $(USBA_OBJS:%.o=../usba/%.ll) +USBA_FILES = $(USBA_WITHOUT_WUSB_OBJS:%.o=../usba/%.ll) UHCI_FILES = $(UHCI_OBJS:%.o=../uhci/%.ll) OHCI_FILES = $(OHCI_OBJS:%.o=../ohci/%.ll) EHCI_FILES = $(EHCI_OBJS:%.o=../ehci/%.ll) diff --git a/usr/src/uts/sparc/hid/Makefile b/usr/src/uts/sparc/hid/Makefile index 80bffaa47f..e1a1ecfd7b 100644 --- a/usr/src/uts/sparc/hid/Makefile +++ b/usr/src/uts/sparc/hid/Makefile @@ -21,7 +21,7 @@ # # uts/sparc/hid/Makefile -# Copyright 2008 Sun Microsystems, Inc. All rights reserved. +# Copyright 2009 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # # @@ -111,7 +111,7 @@ TEST = test # # lock_lint rules # -USBA_FILES = $(USBA_OBJS:%.o=../usba/%.ll) +USBA_FILES = $(USBA_WITHOUT_WUSB_OBJS:%.o=../usba/%.ll) OHCI_FILES = $(OHCI_OBJS:%.o=../ohci/%.ll) UHCI_FILES = $(UHCI_OBJS:%.o=../uhci/%.ll) EHCI_FILES = $(EHCI_OBJS:%.o=../ehci/%.ll) diff --git a/usr/src/uts/sparc/scsa2usb/Makefile b/usr/src/uts/sparc/scsa2usb/Makefile index 468624518d..ac55a7de42 100644 --- a/usr/src/uts/sparc/scsa2usb/Makefile +++ b/usr/src/uts/sparc/scsa2usb/Makefile @@ -19,7 +19,7 @@ # CDDL HEADER END # # -# Copyright 2008 Sun Microsystems, Inc. All rights reserved. +# Copyright 2009 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # # uts/sparc/scsa2usb/Makefile @@ -110,7 +110,7 @@ TEST = test # # lock_lint rules # -USBA_FILES = $(USBA_OBJS:%.o=../usba/%.ll) +USBA_FILES = $(USBA_WITHOUT_WUSB_OBJS:%.o=../usba/%.ll) UHCI_FILES = $(UHCI_OBJS:%.o=../uhci/%.ll) OHCI_FILES = $(OHCI_OBJS:%.o=../ohci/%.ll) EHCI_FILES = $(EHCI_OBJS:%.o=../ehci/%.ll) diff --git a/usr/src/uts/sparc/ugen/Makefile b/usr/src/uts/sparc/ugen/Makefile index 1c2316c6cd..9d9e2b6564 100644 --- a/usr/src/uts/sparc/ugen/Makefile +++ b/usr/src/uts/sparc/ugen/Makefile @@ -21,7 +21,7 @@ # # uts/sparc/ugen/Makefile # -# Copyright 2008 Sun Microsystems, Inc. All rights reserved. +# Copyright 2009 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # # @@ -104,7 +104,7 @@ TEST = test # # lock_lint rules # -USBA_FILES = $(USBA_OBJS:%.o=../usba/%.ll) +USBA_FILES = $(USBA_WITHOUT_WUSB_OBJS:%.o=../usba/%.ll) UHCI_FILES = $(UHCI_OBJS:%.o=../uhci/%.ll) OHCI_FILES = $(OHCI_OBJS:%.o=../ohci/%.ll) EHCI_FILES = $(EHCI_OBJS:%.o=../ehci/%.ll) diff --git a/usr/src/uts/sparc/usb_ia/Makefile b/usr/src/uts/sparc/usb_ia/Makefile index 7362164b0a..71356e1d4f 100644 --- a/usr/src/uts/sparc/usb_ia/Makefile +++ b/usr/src/uts/sparc/usb_ia/Makefile @@ -21,14 +21,13 @@ # # uts/sparc/usb_ia/Makefile -# Copyright 2007 Sun Microsystems, Inc. All rights reserved. +# Copyright 2009 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # # This makefile drives the production of the usb_ia driver kernel module. # sparc architecture dependent # -#ident "%Z%%M% %I% %E% SMI" # # Path to the base of the uts directory tree (usually /usr/src/uts). @@ -104,7 +103,7 @@ TEST = test # # lock_lint rules # -USBA_FILES = $(USBA_OBJS:%.o=../usba/%.ll) +USBA_FILES = $(USBA_WITHOUT_WUSB_OBJS:%.o=../usba/%.ll) UHCI_FILES = $(UHCI_OBJS:%.o=../uhci/%.ll) OHCI_FILES = $(OHCI_OBJS:%.o=../ohci/%.ll) EHCI_FILES = $(EHCI_OBJS:%.o=../ehci/%.ll) diff --git a/usr/src/uts/sparc/usb_mid/Makefile b/usr/src/uts/sparc/usb_mid/Makefile index 14afaee71e..61ea14e1b3 100644 --- a/usr/src/uts/sparc/usb_mid/Makefile +++ b/usr/src/uts/sparc/usb_mid/Makefile @@ -21,14 +21,13 @@ # uts/sparc/usb_mid/Makefile -# Copyright 2007 Sun Microsystems, Inc. All rights reserved. +# Copyright 2009 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # # This makefile drives the production of the usb_mid driver kernel module. # sparc architecture dependent # -#ident "%Z%%M% %I% %E% SMI" # # Path to the base of the uts directory tree (usually /usr/src/uts). @@ -104,7 +103,7 @@ TEST = test # # lock_lint rules # -USBA_FILES = $(USBA_OBJS:%.o=../usba/%.ll) +USBA_FILES = $(USBA_WITHOUT_WUSB_OBJS:%.o=../usba/%.ll) UHCI_FILES = $(UHCI_OBJS:%.o=../uhci/%.ll) OHCI_FILES = $(OHCI_OBJS:%.o=../ohci/%.ll) EHCI_FILES = $(EHCI_OBJS:%.o=../ehci/%.ll) diff --git a/usr/src/uts/sparc/usbftdi/Makefile b/usr/src/uts/sparc/usbftdi/Makefile index 1fc04dfe03..025cfef7f1 100644 --- a/usr/src/uts/sparc/usbftdi/Makefile +++ b/usr/src/uts/sparc/usbftdi/Makefile @@ -95,7 +95,7 @@ TEST = test # WARLOCK_CMD = $(WLCMD_DIR)/$(MODULE).wlcmd USBSER_FILES = $(USBSER_OBJS:%.o=../usbser/%.ll) -USBA_FILES = $(USBA_OBJS:%.o=../usba/%.ll) +USBA_FILES = $(USBA_WITHOUT_WUSB_OBJS:%.o=../usba/%.ll) UHCI_FILES = $(UHCI_OBJS:%.o=../uhci/%.ll) OHCI_FILES = $(OHCI_OBJS:%.o=../ohci/%.ll) EHCI_FILES = $(EHCI_OBJS:%.o=../ehci/%.ll) diff --git a/usr/src/uts/sparc/usbprn/Makefile b/usr/src/uts/sparc/usbprn/Makefile index c8a8b7abf4..64011303d3 100644 --- a/usr/src/uts/sparc/usbprn/Makefile +++ b/usr/src/uts/sparc/usbprn/Makefile @@ -19,7 +19,7 @@ # CDDL HEADER END # # -# Copyright 2008 Sun Microsystems, Inc. All rights reserved. +# Copyright 2009 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # # @@ -101,7 +101,7 @@ TEST = test # # lock_lint rules # -USBA_FILES = $(USBA_OBJS:%.o=../usba/%.ll) +USBA_FILES = $(USBA_WITHOUT_WUSB_OBJS:%.o=../usba/%.ll) UHCI_FILES = $(UHCI_OBJS:%.o=../uhci/%.ll) OHCI_FILES = $(OHCI_OBJS:%.o=../ohci/%.ll) EHCI_FILES = $(EHCI_OBJS:%.o=../ehci/%.ll) diff --git a/usr/src/uts/sparc/usbskel/Makefile b/usr/src/uts/sparc/usbskel/Makefile index 714825125c..f2b6289f9a 100644 --- a/usr/src/uts/sparc/usbskel/Makefile +++ b/usr/src/uts/sparc/usbskel/Makefile @@ -21,7 +21,7 @@ # # uts/sparc/usbskel/Makefile -# Copyright 2008 Sun Microsystems, Inc. All rights reserved. +# Copyright 2009 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # # @@ -105,7 +105,7 @@ TEST = test # # lock_lint rules # -USBA_FILES = $(USBA_OBJS:%.o=../usba/%.ll) +USBA_FILES = $(USBA_WITHOUT_WUSB_OBJS:%.o=../usba/%.ll) UHCI_FILES = $(UHCI_OBJS:%.o=../uhci/%.ll) OHCI_FILES = $(OHCI_OBJS:%.o=../ohci/%.ll) EHCI_FILES = $(EHCI_OBJS:%.o=../ehci/%.ll) diff --git a/usr/src/uts/sparc/usbsksp/Makefile b/usr/src/uts/sparc/usbsksp/Makefile index cc36a3e9c1..16987d8e66 100644 --- a/usr/src/uts/sparc/usbsksp/Makefile +++ b/usr/src/uts/sparc/usbsksp/Makefile @@ -20,7 +20,7 @@ # # # -# Copyright 2008 Sun Microsystems, Inc. All rights reserved. +# Copyright 2009 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # # uts/sparc/usbsksp/Makefile @@ -102,7 +102,7 @@ TEST = test # WARLOCK_CMD = $(WLCMD_DIR)/usbser_keyspan.wlcmd USBSER_FILES = $(USBSER_OBJS:%.o=../usbser/%.ll) -USBA_FILES = $(USBA_OBJS:%.o=../usba/%.ll) +USBA_FILES = $(USBA_WITHOUT_WUSB_OBJS:%.o=../usba/%.ll) UHCI_FILES = $(UHCI_OBJS:%.o=../uhci/%.ll) OHCI_FILES = $(OHCI_OBJS:%.o=../ohci/%.ll) EHCI_FILES = $(EHCI_OBJS:%.o=../ehci/%.ll) diff --git a/usr/src/uts/sparc/usbsprl/Makefile b/usr/src/uts/sparc/usbsprl/Makefile index 0ed18caad9..2911e5ff6e 100644 --- a/usr/src/uts/sparc/usbsprl/Makefile +++ b/usr/src/uts/sparc/usbsprl/Makefile @@ -21,7 +21,7 @@ # # uts/sparc/usbsprl/Makefile # -# Copyright 2008 Sun Microsystems, Inc. All rights reserved. +# Copyright 2009 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # # @@ -100,7 +100,7 @@ TEST = test # WARLOCK_CMD = $(WLCMD_DIR)/$(MODULE).wlcmd USBSER_FILES = $(USBSER_OBJS:%.o=../usbser/%.ll) -USBA_FILES = $(USBA_OBJS:%.o=../usba/%.ll) +USBA_FILES = $(USBA_WITHOUT_WUSB_OBJS:%.o=../usba/%.ll) UHCI_FILES = $(UHCI_OBJS:%.o=../uhci/%.ll) OHCI_FILES = $(OHCI_OBJS:%.o=../ohci/%.ll) EHCI_FILES = $(EHCI_OBJS:%.o=../ehci/%.ll) diff --git a/usr/src/uts/sparc/usbvc/Makefile b/usr/src/uts/sparc/usbvc/Makefile index 537906c461..e68cb46a4c 100644 --- a/usr/src/uts/sparc/usbvc/Makefile +++ b/usr/src/uts/sparc/usbvc/Makefile @@ -20,10 +20,9 @@ # # -# Copyright 2007 Sun Microsystems, Inc. All rights reserved. +# Copyright 2009 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # -#ident "%Z%%M% %I% %E% SMI" # # uts/sparc/usbvc/Makefile @@ -111,7 +110,7 @@ TEST = test # # lock_lint rules # -USBA_FILES = $(USBA_OBJS:%.o=../usba/%.ll) +USBA_FILES = $(USBA_WITHOUT_WUSB_OBJS:%.o=../usba/%.ll) UHCI_FILES = $(UHCI_OBJS:%.o=../uhci/%.ll) OHCI_FILES = $(OHCI_OBJS:%.o=../ohci/%.ll) EHCI_FILES = $(EHCI_OBJS:%.o=../ehci/%.ll) |