Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

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
Loading
Loading
Loading
Loading
+12 −18
Original line number Original line Diff line number Diff line
@@ -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) {

		if (unlikely (NULL == itd)) {
				iso_sched_free(stream, sched);
				iso_sched_free(stream, sched);
				spin_unlock_irqrestore(&ehci->lock, flags);
				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 (
					 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);