Re: usbmon: tentative implementation for 'bus0' interface

Pete Zaitcev <[email protected]>
Newsgroups gmane.linux.usb.devel
Organization Red Hat, Inc.
Message-ID <[email protected]>
On Wed, 28 Feb 2007 10:03:11 +0100, Paolo Abeni <[email protected]> wrote:

> This patch create the bus0 to the usbmon interface. Bus0 provides events
> for all attached USB buses to any kind of reader (text, binary). 

Looks very good indeed, although I disagree with your coding style
as usual :-)

> A dummy mon_bus structure is created at usbmon initialization time. This
> is not attached to any real USB bus, but real mon readers can attach to it. 

> When any event is received from usbmon, the bus0 readers list is walked
> and attached readers are invoked. Then the event is processed as usual.

Very good idea.

> There are a couple of things that should be polished: 
> - mon_bus->u_bus can now be null and must be tested every time it's used.
> - at event reception two spinlock must be hold and released: one for
> bus0 and one for bus-n. Previously only one lock was needed. 

Well... if that's what it takes, so be it. I'll think a bit if we
can optimize bus0 out if there aren't any readers attached to it.

> +static void mon_submit_error(struct usb_bus *ubus, struct urb *urb, int error)
>  {
>  	struct mon_bus *mbus;
> +	mon_bus_submit_error(bus0, urb, error);
> +
> +	mbus = ubus->mon_bus;
> +	if (mbus == NULL)
> +		return;
> +	mon_bus_submit(mbus, urb);
> +}

This seems like an overzealous copy-paste.

> @@ -441,7 +441,7 @@ static void mon_bin_event(struct mon_rea
>  	/* We use the fact that usb_pipein() returns 0x80 */
>  	ep->epnum = usb_pipeendpoint(urb->pipe) | usb_pipein(urb->pipe);
>  	ep->devnum = usb_pipedevice(urb->pipe);
> -	ep->busnum = rp->r.m_bus->u_bus->busnum;
> +	ep->busnum = urb->dev->bus->busnum;
........
> @@ -18,6 +18,7 @@ struct mon_bus {
>  	struct list_head bus_link;
>  	spinlock_t lock;
>  	struct usb_bus *u_bus;
> +	int busnum;

These two ideas are not completely in agreement with each other.
I think I'll take the second one, a local copy of the bus number.

I'll regenerate the patch and resend it in the next few days.

Thanks a lot!
-- Pete

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
[email protected]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.