From baf607d47ef71615015720c89dfefc0265a4c576 Mon Sep 17 00:00:00 2001 From: Karsten Wiese Date: Tue, 19 Feb 2008 12:31:49 -0800 Subject: [PATCH] --- yaml --- r: 93295 b: refs/heads/master c: 3d01f0fe6b66dd34511eaf35e06764b8997187bc h: refs/heads/master i: 93293: 56bef28fc101c5c682f7dd470339c9b735edd5b7 93291: a8b59d82adf4d4c2780fd47e47e05cbe0b0588af 93287: 368049cfd42b2cee7716a39b13f1d5f1cc74e55d 93279: 67420f5e1d9941eb862dc1e0294e200b916f7915 v: v3 --- [refs] | 2 +- trunk/drivers/usb/host/ehci-sched.c | 30 ++++++++++++----------------- 2 files changed, 13 insertions(+), 19 deletions(-) diff --git a/[refs] b/[refs] index 86c52cf4a258..8e62c9844a94 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: fadec78bd93ede132c34ab94dce0e65a5ae56054 +refs/heads/master: 3d01f0fe6b66dd34511eaf35e06764b8997187bc diff --git a/trunk/drivers/usb/host/ehci-sched.c b/trunk/drivers/usb/host/ehci-sched.c index 38c606c13db1..e3cfe0a03552 100644 --- a/trunk/drivers/usb/host/ehci-sched.c +++ b/trunk/drivers/usb/host/ehci-sched.c @@ -1181,21 +1181,18 @@ itd_urb_transaction ( struct ehci_itd, itd_list); list_del (&itd->itd_list); itd_dma = itd->itd_dma; - } else - itd = NULL; - - if (!itd) { + } else { spin_unlock_irqrestore (&ehci->lock, flags); itd = dma_pool_alloc (ehci->itd_pool, mem_flags, &itd_dma); spin_lock_irqsave (&ehci->lock, flags); + if (!itd) { + iso_sched_free(stream, sched); + spin_unlock_irqrestore(&ehci->lock, flags); + return -ENOMEM; + } } - if (unlikely (NULL == itd)) { - iso_sched_free (stream, sched); - spin_unlock_irqrestore (&ehci->lock, flags); - return -ENOMEM; - } memset (itd, 0, sizeof *itd); itd->itd_dma = itd_dma; list_add (&itd->itd_list, &sched->td_list); @@ -1814,21 +1811,18 @@ sitd_urb_transaction ( struct ehci_sitd, sitd_list); list_del (&sitd->sitd_list); sitd_dma = sitd->sitd_dma; - } else - sitd = NULL; - - if (!sitd) { + } else { spin_unlock_irqrestore (&ehci->lock, flags); sitd = dma_pool_alloc (ehci->sitd_pool, mem_flags, &sitd_dma); spin_lock_irqsave (&ehci->lock, flags); + if (!sitd) { + iso_sched_free(stream, iso_sched); + spin_unlock_irqrestore(&ehci->lock, flags); + return -ENOMEM; + } } - if (!sitd) { - iso_sched_free (stream, iso_sched); - spin_unlock_irqrestore (&ehci->lock, flags); - return -ENOMEM; - } memset (sitd, 0, sizeof *sitd); sitd->sitd_dma = sitd_dma; list_add (&sitd->sitd_list, &iso_sched->td_list);