Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 19 Mar 2009 14:51:30 GMT
From:      Hans Petter Selasky <hselasky@FreeBSD.org>
To:        Perforce Change Reviews <perforce@FreeBSD.org>
Subject:   PERFORCE change 159445 for review
Message-ID:  <200903191451.n2JEpUxc070315@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=159445

Change 159445 by hselasky@hselasky_laptop001 on 2009/03/19 14:50:30

	
	USB CORE:
	- Fix conditional compilation without ugen and strings.
	- Remove a redundant KASSERT.

Affected files ...

.. //depot/projects/usb/src/sys/dev/usb/usb_device.c#10 edit
.. //depot/projects/usb/src/sys/dev/usb/usb_device.h#9 edit

Differences ...

==== //depot/projects/usb/src/sys/dev/usb/usb_device.c#10 (text+ko) ====

@@ -738,7 +738,6 @@
 	 */
 	usb2_fifo_free_wrap(udev, iface_index, 0);
 #endif
-
 	err = usb2_fill_iface_data(udev, iface_index, alt_index);
 	if (err) {
 		goto done;
@@ -1378,8 +1377,6 @@
 	usb2_cv_init(udev->default_cv, "WCTRL");
 	usb2_cv_init(udev->default_cv + 1, "UGONE");
 
-	LIST_INIT(&udev->pd_list);
-
 	/* initialise our mutex */
 	mtx_init(udev->default_mtx, "USB device mutex", NULL, MTX_DEF);
 
@@ -1449,18 +1446,21 @@
 	/* set device index */
 	udev->device_index = device_index;
 
+#if USB_HAVE_STRINGS
 	/* Create ugen name */
 	snprintf(udev->ugen_name, sizeof(udev->ugen_name),
 	    USB_GENERIC_NAME "%u.%u", device_get_unit(bus->bdev),
 	    device_index);
+#endif
 #if USB_HAVE_UGEN
+	LIST_INIT(&udev->pd_list);
+
 	/* Create the control endpoint device */
 	udev->default_dev = usb2_make_dev(udev, 0, FREAD|FWRITE);
 
 	/* Create a link from /dev/ugenX.X to the default endpoint */
 	make_dev_alias(udev->default_dev, udev->ugen_name);
 #endif
-
 	if (udev->flags.usb2_mode == USB_MODE_HOST) {
 
 		err = usb2_req_set_address(udev, NULL, device_index);
@@ -1713,13 +1713,15 @@
 	usb2_bus_port_set_device(bus, parent_hub ?
 	    parent_hub->hub->ports + port_index : NULL, udev, device_index);
 
-	/* Link and announce the ugen device name */
 #if USB_HAVE_UGEN
+	/* Symlink the ugen device name */
 	udev->ugen_symlink = usb2_alloc_symlink(udev->ugen_name);
 #endif
+#if USB_HAVE_STRINGS
+	/* Announce device */
 	printf("%s: <%s> at %s\n", udev->ugen_name, udev->manufacturer,
 	    device_get_nameunit(udev->bus->bdev));
-
+#endif
 	usb2_notify_addq("+", udev);
 done:
 	if (err) {
@@ -1824,7 +1826,6 @@
 
 	while ((pd = LIST_FIRST(&udev->pd_list)) != NULL) {
 		KASSERT(pd->cdev->si_drv1 == pd, ("privdata corrupt"));
-		KASSERT(pd->ep_addr > 0, ("freeing EP0"));
 
 		destroy_dev_sched_cb(pd->cdev, usb2_cdev_cleanup, pd);
 		pd->cdev = NULL;
@@ -1856,13 +1857,13 @@
 	printf("%s: <%s> at %s (disconnected)\n", udev->ugen_name,
 	    udev->manufacturer, device_get_nameunit(bus->bdev));
 
+#if USB_HAVE_UGEN
 	/* Destroy UGEN symlink, if any */
 	if (udev->ugen_symlink) {
-#if USB_HAVE_UGEN
 		usb2_free_symlink(udev->ugen_symlink);
-#endif
 		udev->ugen_symlink = NULL;
 	}
+#endif
 	/*
 	 * Unregister our device first which will prevent any further
 	 * references:
@@ -1873,7 +1874,6 @@
 
 #if USB_HAVE_UGEN
 	/* wait for all pending references to go away: */
-
 	mtx_lock(&usb2_ref_lock);
 	udev->refcount--;
 	while (udev->refcount != 0) {

==== //depot/projects/usb/src/sys/dev/usb/usb_device.h#9 (text+ko) ====

@@ -27,7 +27,7 @@
 #ifndef _USB2_DEVICE_H_
 #define	_USB2_DEVICE_H_
 
-struct usb2_symlink;
+struct usb2_symlink;		/* UGEN */
 struct usb_device;		/* linux compat */
 
 #define	USB_DEFAULT_XFER_MAX 2
@@ -121,13 +121,11 @@
 	struct usb2_xfer *default_xfer[USB_DEFAULT_XFER_MAX];
 	struct usb2_temp_data *usb2_template_ptr;
 	struct usb2_pipe *pipe_curr;	/* current clear stall pipe */
+#if USB_HAVE_UGEN
 	struct usb2_fifo *fifo[USB_FIFO_MAX];
-
-	char ugen_name[20];			/* name of ugenX.X device */
 	struct usb2_symlink *ugen_symlink;	/* our generic symlink */
-
 	LIST_HEAD(,usb2_fs_privdata) pd_list;
-
+#endif
 	usb2_ticks_t plugtime;		/* copy of "ticks" */
 
 	uint16_t refcount;
@@ -156,9 +154,12 @@
 	struct usb2_endpoint_descriptor default_ep_desc;	/* for pipe 0 */
 	struct usb2_device_descriptor ddesc;	/* device descriptor */
 
+#if USB_HAVE_STRINGS
+	char	ugen_name[20];		/* name of ugenX.X device */
 	char	serial[64];		/* serial number */
 	char	manufacturer[64];	/* manufacturer string */
 	char	product[64];		/* product string */
+#endif
 };
 
 /* globals */



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200903191451.n2JEpUxc070315>