Browse Source

USB: ehci-dbg: fix reading less content of periodic file

This patch fix 2 problems about reading periodic file:

1. The "..." after a interrupt qh is missed because buffer pointer is
   not moved.

2. After setting p.ptr as NULL, its next qh or itd will be omited and
   can't be stored in debug buffer.

Signed-off-by: Ming Lei <tom.leiming@gmail.com>
Acked-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Ming Lei 16 years ago
parent
commit
3c4bb71f96
1 changed files with 5 additions and 3 deletions
  1. 5 3
      drivers/usb/host/ehci-dbg.c

+ 5 - 3
drivers/usb/host/ehci-dbg.c

@@ -569,14 +569,16 @@ static ssize_t fill_periodic_buffer(struct debug_buffer *buf)
 				for (temp = 0; temp < seen_count; temp++) {
 				for (temp = 0; temp < seen_count; temp++) {
 					if (seen [temp].ptr != p.ptr)
 					if (seen [temp].ptr != p.ptr)
 						continue;
 						continue;
-					if (p.qh->qh_next.ptr)
+					if (p.qh->qh_next.ptr) {
 						temp = scnprintf (next, size,
 						temp = scnprintf (next, size,
 							" ...");
 							" ...");
-					p.ptr = NULL;
+						size -= temp;
+						next += temp;
+					}
 					break;
 					break;
 				}
 				}
 				/* show more info the first time around */
 				/* show more info the first time around */
-				if (temp == seen_count && p.ptr) {
+				if (temp == seen_count) {
 					u32	scratch = hc32_to_cpup(ehci,
 					u32	scratch = hc32_to_cpup(ehci,
 							&p.qh->hw_info1);
 							&p.qh->hw_info1);
 					struct ehci_qtd	*qtd;
 					struct ehci_qtd	*qtd;