OSDN Git Service

Revert "usb: host: fotg210: Use dma_pool_zalloc"
authorKelly Devilliv <kelly.devilliv@gmail.com>
Sun, 27 Jun 2021 12:57:45 +0000 (20:57 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 21 Jul 2021 08:03:42 +0000 (10:03 +0200)
This reverts commit cb6a0db8fdc12433ed4281331de0c3923dc2807b for the
same reason as commit 43b78f1155c868208a413082179251f5fba78153 in the
ehci-hcd driver.

Alan writes:
    What you can't see just from reading the patch is that in both
    cases (ehci->itd_pool and ehci->sitd_pool) there are two
    allocation paths -- the two branches of an "if" statement -- and
    only one of the paths calls dma_pool_[z]alloc.  However, the
    memset is needed for both paths, and so it can't be eliminated.
    Given that it must be present, there's no advantage to calling
    dma_pool_zalloc rather than dma_pool_alloc.

Signed-off-by: Kelly Devilliv <kelly.devilliv@gmail.com>
Link: https://lore.kernel.org/r/20210627125747.127646-2-kelly.devilliv@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/host/fotg210-hcd.c

index 05fb8d9..7858e93 100644 (file)
@@ -1858,9 +1858,11 @@ static struct fotg210_qh *fotg210_qh_alloc(struct fotg210_hcd *fotg210,
        qh = kzalloc(sizeof(*qh), GFP_ATOMIC);
        if (!qh)
                goto done;
-       qh->hw = dma_pool_zalloc(fotg210->qh_pool, flags, &dma);
+       qh->hw = (struct fotg210_qh_hw *)
+               dma_pool_alloc(fotg210->qh_pool, flags, &dma);
        if (!qh->hw)
                goto fail;
+       memset(qh->hw, 0, sizeof(*qh->hw));
        qh->qh_dma = dma;
        INIT_LIST_HEAD(&qh->qtd_list);
 
@@ -4112,7 +4114,7 @@ static int itd_urb_transaction(struct fotg210_iso_stream *stream,
                } else {
 alloc_itd:
                        spin_unlock_irqrestore(&fotg210->lock, flags);
-                       itd = dma_pool_zalloc(fotg210->itd_pool, mem_flags,
+                       itd = dma_pool_alloc(fotg210->itd_pool, mem_flags,
                                        &itd_dma);
                        spin_lock_irqsave(&fotg210->lock, flags);
                        if (!itd) {
@@ -4122,6 +4124,7 @@ alloc_itd:
                        }
                }
 
+               memset(itd, 0, sizeof(*itd));
                itd->itd_dma = itd_dma;
                list_add(&itd->itd_list, &sched->td_list);
        }