]> git.hungrycats.org Git - linux/commitdiff
USB: OHCI: fix bugs in debug routines
authorAlan Stern <stern@rowland.harvard.edu>
Thu, 17 Jul 2014 20:32:26 +0000 (16:32 -0400)
committerJiri Slaby <jslaby@suse.cz>
Wed, 3 Sep 2014 19:31:05 +0000 (21:31 +0200)
commit 256dbcd80f1ccf8abf421c1d72ba79a4e29941dd upstream.

The debug routine fill_async_buffer() in ohci-hcd is buggy: It never
produces any output because it forgets to initialize the output buffer
size.  Also, the debug routine ohci_dump() has an unused argument.

This patch adds the correct initialization and removes the unused
argument.

Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
drivers/usb/host/ohci-dbg.c
drivers/usb/host/ohci-hcd.c

index 31b81f9eacdc90cff804bcb89d4ecefff9a3a16f..17e698f918f7445b846c691546eee5e5965801f1 100644 (file)
@@ -289,7 +289,7 @@ ohci_dump_roothub (
        }
 }
 
-static void ohci_dump (struct ohci_hcd *controller, int verbose)
+static void ohci_dump(struct ohci_hcd *controller)
 {
        ohci_dbg (controller, "OHCI controller state\n");
 
@@ -408,7 +408,7 @@ ohci_dump_ed (const struct ohci_hcd *ohci, const char *label,
 }
 
 #else
-static inline void ohci_dump (struct ohci_hcd *controller, int verbose) {}
+static inline void ohci_dump (struct ohci_hcd *controller) {}
 
 #undef OHCI_VERBOSE_DEBUG
 
@@ -531,15 +531,16 @@ show_list (struct ohci_hcd *ohci, char *buf, size_t count, struct ed *ed)
 static ssize_t fill_async_buffer(struct debug_buffer *buf)
 {
        struct ohci_hcd         *ohci;
-       size_t                  temp;
+       size_t                  temp, size;
        unsigned long           flags;
 
        ohci = buf->ohci;
+       size = PAGE_SIZE;
 
        /* display control and bulk lists together, for simplicity */
        spin_lock_irqsave (&ohci->lock, flags);
-       temp = show_list(ohci, buf->page, buf->count, ohci->ed_controltail);
-       temp += show_list(ohci, buf->page + temp, buf->count - temp,
+       temp = show_list(ohci, buf->page, size, ohci->ed_controltail);
+       temp += show_list(ohci, buf->page + temp, size - temp,
                          ohci->ed_bulktail);
        spin_unlock_irqrestore (&ohci->lock, flags);
 
index 604cad1bcf9cd984666aaf0b2b797b48ee6e3382..3770fcb55e28762220bda6fde76944609d91640f 100644 (file)
@@ -78,8 +78,8 @@ static const char     hcd_name [] = "ohci_hcd";
 #include "ohci.h"
 #include "pci-quirks.h"
 
-static void ohci_dump (struct ohci_hcd *ohci, int verbose);
-static void ohci_stop (struct usb_hcd *hcd);
+static void ohci_dump(struct ohci_hcd *ohci);
+static void ohci_stop(struct usb_hcd *hcd);
 
 #include "ohci-hub.c"
 #include "ohci-dbg.c"
@@ -754,7 +754,7 @@ retry:
                ohci->ed_to_check = NULL;
        }
 
-       ohci_dump (ohci, 1);
+       ohci_dump(ohci);
 
        return 0;
 }
@@ -835,7 +835,7 @@ static irqreturn_t ohci_irq (struct usb_hcd *hcd)
                        usb_hc_died(hcd);
                }
 
-               ohci_dump (ohci, 1);
+               ohci_dump(ohci);
                ohci_usb_reset (ohci);
        }
 
@@ -935,7 +935,7 @@ static void ohci_stop (struct usb_hcd *hcd)
 {
        struct ohci_hcd         *ohci = hcd_to_ohci (hcd);
 
-       ohci_dump (ohci, 1);
+       ohci_dump(ohci);
 
        if (quirk_nec(ohci))
                flush_work(&ohci->nec_work);