forked from luck/tmp_suning_uos_patched
Revert "usb: host: ehci: Use dma_pool_zalloc()"
This reverts commit 22072e83eb
as it is
broken.
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.
Reported-by: Erick Cafferata <erick@cafferata.me>
Cc: Alan Stern <stern@rowland.harvard.edu>
Cc: Souptick Joarder <jrdr.linux@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
1a2f474d32
commit
43b78f1155
|
@ -73,9 +73,10 @@ static struct ehci_qh *ehci_qh_alloc (struct ehci_hcd *ehci, gfp_t flags)
|
|||
if (!qh)
|
||||
goto done;
|
||||
qh->hw = (struct ehci_qh_hw *)
|
||||
dma_pool_zalloc(ehci->qh_pool, flags, &dma);
|
||||
dma_pool_alloc(ehci->qh_pool, flags, &dma);
|
||||
if (!qh->hw)
|
||||
goto fail;
|
||||
memset(qh->hw, 0, sizeof *qh->hw);
|
||||
qh->qh_dma = dma;
|
||||
// INIT_LIST_HEAD (&qh->qh_list);
|
||||
INIT_LIST_HEAD (&qh->qtd_list);
|
||||
|
|
|
@ -1287,7 +1287,7 @@ itd_urb_transaction(
|
|||
} else {
|
||||
alloc_itd:
|
||||
spin_unlock_irqrestore(&ehci->lock, flags);
|
||||
itd = dma_pool_zalloc(ehci->itd_pool, mem_flags,
|
||||
itd = dma_pool_alloc(ehci->itd_pool, mem_flags,
|
||||
&itd_dma);
|
||||
spin_lock_irqsave(&ehci->lock, flags);
|
||||
if (!itd) {
|
||||
|
@ -1297,6 +1297,7 @@ itd_urb_transaction(
|
|||
}
|
||||
}
|
||||
|
||||
memset(itd, 0, sizeof(*itd));
|
||||
itd->itd_dma = itd_dma;
|
||||
itd->frame = NO_FRAME;
|
||||
list_add(&itd->itd_list, &sched->td_list);
|
||||
|
@ -2080,7 +2081,7 @@ sitd_urb_transaction(
|
|||
} else {
|
||||
alloc_sitd:
|
||||
spin_unlock_irqrestore(&ehci->lock, flags);
|
||||
sitd = dma_pool_zalloc(ehci->sitd_pool, mem_flags,
|
||||
sitd = dma_pool_alloc(ehci->sitd_pool, mem_flags,
|
||||
&sitd_dma);
|
||||
spin_lock_irqsave(&ehci->lock, flags);
|
||||
if (!sitd) {
|
||||
|
@ -2090,6 +2091,7 @@ sitd_urb_transaction(
|
|||
}
|
||||
}
|
||||
|
||||
memset(sitd, 0, sizeof(*sitd));
|
||||
sitd->sitd_dma = sitd_dma;
|
||||
sitd->frame = NO_FRAME;
|
||||
list_add(&sitd->sitd_list, &iso_sched->td_list);
|
||||
|
|
Loading…
Reference in New Issue
Block a user