Date: Sat, 20 Dec 2008 05:47:46 GMT From: Weongyo Jeong <weongyo@FreeBSD.org> To: Perforce Change Reviews <perforce@FreeBSD.org> Subject: PERFORCE change 155039 for review Message-ID: <200812200547.mBK5lkvx056596@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=155039 Change 155039 by weongyo@weongyo_ws on 2008/12/20 05:47:44 prevent sleeping without a lock Affected files ... .. //depot/projects/ndisusb/sys/compat/ndis/subr_usbd.c#30 edit Differences ... ==== //depot/projects/ndisusb/sys/compat/ndis/subr_usbd.c#30 (text+ko) ==== @@ -483,6 +483,8 @@ usb_config_descriptor_t cd, *cdp; usbd_status status; + mtx_lock(&Giant); + urb = usbd_geturb(ip); ctldesc = &urb->uu_ctldesc; if (ctldesc->ucd_desctype == UDESC_CONFIG) { @@ -491,6 +493,7 @@ &cd); if (status != USBD_NORMAL_COMPLETION) { ctldesc->ucd_trans_buflen = 0; + mtx_unlock(&Giant); return usbd_usb2urb(status); } /* Get the full descriptor. Try a few times for slow devices. */ @@ -505,6 +508,7 @@ } if (status != USBD_NORMAL_COMPLETION) { ctldesc->ucd_trans_buflen = 0; + mtx_unlock(&Giant); return usbd_usb2urb(status); } @@ -534,11 +538,15 @@ if (status != USBD_NORMAL_COMPLETION) { ctldesc->ucd_trans_buflen = 0; + mtx_unlock(&Giant); return usbd_usb2urb(status); } ctldesc->ucd_trans_buflen = actlen; ip->irp_iostat.isb_info = actlen; + + mtx_unlock(&Giant); + return (USBD_STATUS_SUCCESS); }
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200812200547.mBK5lkvx056596>