USB: ehci-dbg: fix reading less content of periodic file
authorMing Lei <tom.leiming@gmail.com>
Thu, 18 Sep 2008 15:06:38 +0000 (23:06 +0800)
committerGreg Kroah-Hartman <gregkh@suse.de>
Fri, 17 Oct 2008 21:40:57 +0000 (14:40 -0700)
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>
drivers/usb/host/ehci-dbg.c

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