Commit 2bc0d109 authored by Pete Zaitcev's avatar Pete Zaitcev Committed by Greg Kroah-Hartman

usbmon: add bus number to text API

Due to a simple oversight when bus zero was added, the text API fails to
deliver the bus number in 'E' messages (which are equivalent of 'C'
messages, only for error case). This makes it harder, for instance,
use a search-and-highlight in a text editor. So fix it.

Also, Alan Stern requested adding timestamps to 'E' messages. This is
purely cosmetic, but makes it easier to read the trace. This is done
for both text and binary APIs.
Signed-off-by: default avatarPete Zaitcev <zaitcev@redhat.com>
Cc: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 7ed069c1
...@@ -460,8 +460,8 @@ static void mon_bin_event(struct mon_reader_bin *rp, struct urb *urb, ...@@ -460,8 +460,8 @@ static void mon_bin_event(struct mon_reader_bin *rp, struct urb *urb,
char ev_type, int status) char ev_type, int status)
{ {
const struct usb_endpoint_descriptor *epd = &urb->ep->desc; const struct usb_endpoint_descriptor *epd = &urb->ep->desc;
unsigned long flags;
struct timeval ts; struct timeval ts;
unsigned long flags;
unsigned int urb_length; unsigned int urb_length;
unsigned int offset; unsigned int offset;
unsigned int length; unsigned int length;
...@@ -600,10 +600,13 @@ static void mon_bin_complete(void *data, struct urb *urb, int status) ...@@ -600,10 +600,13 @@ static void mon_bin_complete(void *data, struct urb *urb, int status)
static void mon_bin_error(void *data, struct urb *urb, int error) static void mon_bin_error(void *data, struct urb *urb, int error)
{ {
struct mon_reader_bin *rp = data; struct mon_reader_bin *rp = data;
struct timeval ts;
unsigned long flags; unsigned long flags;
unsigned int offset; unsigned int offset;
struct mon_bin_hdr *ep; struct mon_bin_hdr *ep;
do_gettimeofday(&ts);
spin_lock_irqsave(&rp->b_lock, flags); spin_lock_irqsave(&rp->b_lock, flags);
offset = mon_buff_area_alloc(rp, PKT_SIZE); offset = mon_buff_area_alloc(rp, PKT_SIZE);
...@@ -623,6 +626,8 @@ static void mon_bin_error(void *data, struct urb *urb, int error) ...@@ -623,6 +626,8 @@ static void mon_bin_error(void *data, struct urb *urb, int error)
ep->devnum = urb->dev->devnum; ep->devnum = urb->dev->devnum;
ep->busnum = urb->dev->bus->busnum; ep->busnum = urb->dev->bus->busnum;
ep->id = (unsigned long) urb; ep->id = (unsigned long) urb;
ep->ts_sec = ts.tv_sec;
ep->ts_usec = ts.tv_usec;
ep->status = error; ep->status = error;
ep->flag_setup = '-'; ep->flag_setup = '-';
......
...@@ -273,12 +273,12 @@ static void mon_text_error(void *data, struct urb *urb, int error) ...@@ -273,12 +273,12 @@ static void mon_text_error(void *data, struct urb *urb, int error)
ep->type = 'E'; ep->type = 'E';
ep->id = (unsigned long) urb; ep->id = (unsigned long) urb;
ep->busnum = 0; ep->busnum = urb->dev->bus->busnum;
ep->devnum = urb->dev->devnum; ep->devnum = urb->dev->devnum;
ep->epnum = usb_endpoint_num(&urb->ep->desc); ep->epnum = usb_endpoint_num(&urb->ep->desc);
ep->xfertype = usb_endpoint_type(&urb->ep->desc); ep->xfertype = usb_endpoint_type(&urb->ep->desc);
ep->is_in = usb_urb_dir_in(urb); ep->is_in = usb_urb_dir_in(urb);
ep->tstamp = 0; ep->tstamp = mon_get_timestamp();
ep->length = 0; ep->length = 0;
ep->status = error; ep->status = error;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment