On Mon, 4 Jan 2016, Geyslan G. Bem wrote: > This patch fixes a coding style issue reported by checkpatch related to > many leading tabs, removing a 'do while' loop and making use of goto tag instead. This is highly questionable. It's a big amount of code churn, nearly impossible to verify visually, just to remove one level of indentation. It also introduces an unnecessary backwards "goto", which seems like a bad idea. Alan Stern > Others changes in this patch are: > - Some multiline statements are reduced (718, 729, 780, 786, 790). > - A constant is moved to right on line 770. > > Signed-off-by: Geyslan G. Bem <geyslan@xxxxxxxxx> > --- > > Notes: > Tested by compilation only. > > drivers/usb/host/ehci-dbg.c | 180 ++++++++++++++++++++++---------------------- > 1 file changed, 88 insertions(+), 92 deletions(-) > > diff --git a/drivers/usb/host/ehci-dbg.c b/drivers/usb/host/ehci-dbg.c > index 2268756..278333d 100644 > --- a/drivers/usb/host/ehci-dbg.c > +++ b/drivers/usb/host/ehci-dbg.c > @@ -698,6 +698,8 @@ static ssize_t fill_periodic_buffer(struct debug_buffer *buf) > */ > spin_lock_irqsave(&ehci->lock, flags); > for (i = 0; i < ehci->periodic_size; i++) { > + struct ehci_qh_hw *hw; > + > p = ehci->pshadow[i]; > if (likely(!p.ptr)) > continue; > @@ -707,104 +709,98 @@ static ssize_t fill_periodic_buffer(struct debug_buffer *buf) > size -= temp; > next += temp; > > - do { > - struct ehci_qh_hw *hw; > - > - switch (hc32_to_cpu(ehci, tag)) { > - case Q_TYPE_QH: > - hw = p.qh->hw; > - temp = scnprintf(next, size, " qh%d-%04x/%p", > - p.qh->ps.period, > - hc32_to_cpup(ehci, > - &hw->hw_info2) > - /* uframe masks */ > - & (QH_CMASK | QH_SMASK), > - p.qh); > - size -= temp; > - next += temp; > - /* don't repeat what follows this qh */ > - for (temp = 0; temp < seen_count; temp++) { > - if (seen[temp].ptr != p.ptr) > +do_loop: > + switch (hc32_to_cpu(ehci, tag)) { > + case Q_TYPE_QH: > + hw = p.qh->hw; > + temp = scnprintf(next, size, " qh%d-%04x/%p", > + p.qh->ps.period, > + hc32_to_cpup(ehci, &hw->hw_info2) > + /* uframe masks */ > + & (QH_CMASK | QH_SMASK), > + p.qh); > + size -= temp; > + next += temp; > + /* don't repeat what follows this qh */ > + for (temp = 0; temp < seen_count; temp++) { > + if (seen[temp].ptr != p.ptr) > + continue; > + if (p.qh->qh_next.ptr) { > + temp = scnprintf(next, size, " ..."); > + size -= temp; > + next += temp; > + } > + break; > + } > + /* show more info the first time around */ > + if (temp == seen_count) { > + u32 scratch = hc32_to_cpup(ehci, > + &hw->hw_info1); > + struct ehci_qtd *qtd; > + char *type = ""; > + > + /* count tds, get ep direction */ > + temp = 0; > + list_for_each_entry(qtd, > + &p.qh->qtd_list, > + qtd_list) { > + temp++; > + switch ((hc32_to_cpu(ehci, > + qtd->hw_token) >> 8) > + & 0x03) { > + case 0: > + type = "out"; > + continue; > + case 1: > + type = "in"; > continue; > - if (p.qh->qh_next.ptr) { > - temp = scnprintf(next, size, > - " ..."); > - size -= temp; > - next += temp; > } > - break; > } > - /* show more info the first time around */ > - if (temp == seen_count) { > - u32 scratch = hc32_to_cpup(ehci, > - &hw->hw_info1); > - struct ehci_qtd *qtd; > - char *type = ""; > - > - /* count tds, get ep direction */ > - temp = 0; > - list_for_each_entry(qtd, > - &p.qh->qtd_list, > - qtd_list) { > - temp++; > - switch ((hc32_to_cpu(ehci, > - qtd->hw_token) >> 8) > - & 0x03) { > - case 0: > - type = "out"; > - continue; > - case 1: > - type = "in"; > - continue; > - } > - } > > - temp = scnprintf(next, size, > - " (%c%d ep%d%s " > - "[%d/%d] q%d p%d)", > - speed_char (scratch), > - scratch & 0x007f, > - (scratch >> 8) & 0x000f, type, > - p.qh->ps.usecs, > - p.qh->ps.c_usecs, > - temp, > - 0x7ff & (scratch >> 16)); > - > - if (seen_count < DBG_SCHED_LIMIT) > - seen[seen_count++].qh = p.qh; > - } else { > - temp = 0; > - } > - tag = Q_NEXT_TYPE(ehci, hw->hw_next); > - p = p.qh->qh_next; > - break; > - case Q_TYPE_FSTN: > - temp = scnprintf(next, size, > - " fstn-%8x/%p", p.fstn->hw_prev, > - p.fstn); > - tag = Q_NEXT_TYPE(ehci, p.fstn->hw_next); > - p = p.fstn->fstn_next; > - break; > - case Q_TYPE_ITD: > - temp = scnprintf(next, size, > - " itd/%p", p.itd); > - tag = Q_NEXT_TYPE(ehci, p.itd->hw_next); > - p = p.itd->itd_next; > - break; > - case Q_TYPE_SITD: > temp = scnprintf(next, size, > - " sitd%d-%04x/%p", > - p.sitd->stream->ps.period, > - hc32_to_cpup(ehci, &p.sitd->hw_uframe) > - & 0x0000ffff, > - p.sitd); > - tag = Q_NEXT_TYPE(ehci, p.sitd->hw_next); > - p = p.sitd->sitd_next; > - break; > + " (%c%d ep%d%s " > + "[%d/%d] q%d p%d)", > + speed_char (scratch), > + scratch & 0x007f, > + (scratch >> 8) & 0x000f, type, > + p.qh->ps.usecs, > + p.qh->ps.c_usecs, > + temp, > + (scratch >> 16) & 0x7ff); > + > + if (seen_count < DBG_SCHED_LIMIT) > + seen[seen_count++].qh = p.qh; > + } else { > + temp = 0; > } > - size -= temp; > - next += temp; > - } while (p.ptr); > + tag = Q_NEXT_TYPE(ehci, hw->hw_next); > + p = p.qh->qh_next; > + break; > + case Q_TYPE_FSTN: > + temp = scnprintf(next, size, " fstn-%8x/%p", > + p.fstn->hw_prev, p.fstn); > + tag = Q_NEXT_TYPE(ehci, p.fstn->hw_next); > + p = p.fstn->fstn_next; > + break; > + case Q_TYPE_ITD: > + temp = scnprintf(next, size, " itd/%p", p.itd); > + tag = Q_NEXT_TYPE(ehci, p.itd->hw_next); > + p = p.itd->itd_next; > + break; > + case Q_TYPE_SITD: > + temp = scnprintf(next, size, " sitd%d-%04x/%p", > + p.sitd->stream->ps.period, > + hc32_to_cpup(ehci, &p.sitd->hw_uframe) > + & 0x0000ffff, > + p.sitd); > + tag = Q_NEXT_TYPE(ehci, p.sitd->hw_next); > + p = p.sitd->sitd_next; > + break; > + } > + size -= temp; > + next += temp; > + if (p.ptr) > + goto do_loop; > > temp = scnprintf(next, size, "\n"); > size -= temp; > -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html