Commit 3d01f0fe authored by Karsten Wiese's avatar Karsten Wiese Committed by Greg Kroah-Hartman

USB: minor ehci xITD simplifications

Remove two (or one) conditional tests in per-urb isochronous
transfer setup code paths.
Signed-off-by: default avatarKarsten Wiese <fzu@wemgehoertderstaat.de>
Signed-off-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent fadec78b
...@@ -1181,21 +1181,18 @@ itd_urb_transaction ( ...@@ -1181,21 +1181,18 @@ itd_urb_transaction (
struct ehci_itd, itd_list); struct ehci_itd, itd_list);
list_del (&itd->itd_list); list_del (&itd->itd_list);
itd_dma = itd->itd_dma; itd_dma = itd->itd_dma;
} else } else {
itd = NULL;
if (!itd) {
spin_unlock_irqrestore (&ehci->lock, flags); spin_unlock_irqrestore (&ehci->lock, flags);
itd = dma_pool_alloc (ehci->itd_pool, mem_flags, itd = dma_pool_alloc (ehci->itd_pool, mem_flags,
&itd_dma); &itd_dma);
spin_lock_irqsave (&ehci->lock, flags); spin_lock_irqsave (&ehci->lock, flags);
} if (!itd) {
iso_sched_free(stream, sched);
if (unlikely (NULL == itd)) { spin_unlock_irqrestore(&ehci->lock, flags);
iso_sched_free (stream, sched);
spin_unlock_irqrestore (&ehci->lock, flags);
return -ENOMEM; return -ENOMEM;
} }
}
memset (itd, 0, sizeof *itd); memset (itd, 0, sizeof *itd);
itd->itd_dma = itd_dma; itd->itd_dma = itd_dma;
list_add (&itd->itd_list, &sched->td_list); list_add (&itd->itd_list, &sched->td_list);
...@@ -1814,21 +1811,18 @@ sitd_urb_transaction ( ...@@ -1814,21 +1811,18 @@ sitd_urb_transaction (
struct ehci_sitd, sitd_list); struct ehci_sitd, sitd_list);
list_del (&sitd->sitd_list); list_del (&sitd->sitd_list);
sitd_dma = sitd->sitd_dma; sitd_dma = sitd->sitd_dma;
} else } else {
sitd = NULL;
if (!sitd) {
spin_unlock_irqrestore (&ehci->lock, flags); spin_unlock_irqrestore (&ehci->lock, flags);
sitd = dma_pool_alloc (ehci->sitd_pool, mem_flags, sitd = dma_pool_alloc (ehci->sitd_pool, mem_flags,
&sitd_dma); &sitd_dma);
spin_lock_irqsave (&ehci->lock, flags); spin_lock_irqsave (&ehci->lock, flags);
}
if (!sitd) { if (!sitd) {
iso_sched_free (stream, iso_sched); iso_sched_free(stream, iso_sched);
spin_unlock_irqrestore (&ehci->lock, flags); spin_unlock_irqrestore(&ehci->lock, flags);
return -ENOMEM; return -ENOMEM;
} }
}
memset (sitd, 0, sizeof *sitd); memset (sitd, 0, sizeof *sitd);
sitd->sitd_dma = sitd_dma; sitd->sitd_dma = sitd_dma;
list_add (&sitd->sitd_list, &iso_sched->td_list); list_add (&sitd->sitd_list, &iso_sched->td_list);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment