diff options
author | Denys Dmytriyenko <denis@denix.org> | 2009-03-17 14:32:59 -0400 |
---|---|---|
committer | Denys Dmytriyenko <denis@denix.org> | 2009-03-17 14:32:59 -0400 |
commit | 709c4d66e0b107ca606941b988bad717c0b45d9b (patch) | |
tree | 37ee08b1eb308f3b2b6426d5793545c38396b838 /recipes/linux/linux-omap-2.6.27/musb-fix-ISO-in-unlink.diff | |
parent | fa6cd5a3b993f16c27de4ff82b42684516d433ba (diff) |
rename packages/ to recipes/ per earlier agreement
See links below for more details:
http://thread.gmane.org/gmane.comp.handhelds.openembedded/21326
http://thread.gmane.org/gmane.comp.handhelds.openembedded/21816
Signed-off-by: Denys Dmytriyenko <denis@denix.org>
Acked-by: Mike Westerhof <mwester@dls.net>
Acked-by: Philip Balister <philip@balister.org>
Acked-by: Khem Raj <raj.khem@gmail.com>
Acked-by: Marcin Juszkiewicz <hrw@openembedded.org>
Acked-by: Koen Kooi <koen@openembedded.org>
Acked-by: Frans Meulenbroeks <fransmeulenbroeks@gmail.com>
Diffstat (limited to 'recipes/linux/linux-omap-2.6.27/musb-fix-ISO-in-unlink.diff')
-rw-r--r-- | recipes/linux/linux-omap-2.6.27/musb-fix-ISO-in-unlink.diff | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/recipes/linux/linux-omap-2.6.27/musb-fix-ISO-in-unlink.diff b/recipes/linux/linux-omap-2.6.27/musb-fix-ISO-in-unlink.diff new file mode 100644 index 0000000000..c93a5b06c8 --- /dev/null +++ b/recipes/linux/linux-omap-2.6.27/musb-fix-ISO-in-unlink.diff @@ -0,0 +1,69 @@ +From: Ajay Kumar Gupta <ajay.gupta@ti.com> +To: linux-omap@vger.kernel.org +Cc: linux-usb@vger.kernel.org, felipe.balbi@nokia.com, + stern@rowland.harvard.edu, Ajay Kumar Gupta <ajay.gupta@ti.com> +Subject: [PATCH v3] OMAP:MUSB: Corrects urb unlink function path +Date: Mon, 25 Aug 2008 10:52:16 +0530 + +Fixes kernel panic while ISO IN transfer is aborted.Replaced +usb_hcd_unlink_urb_from_ep() from musb_giveback() to __musb_giveback() +to make sure urb is unlinked before giveback when __musb_giveback() is +called from musb_urb_dequeue(). + +Acquired musb->lock() before usb_hcd_unlink_urb_from_ep() within in +enqueue path. + +Signed-off-by: Ajay Kumar Gupta <ajay.gupta@ti.com> +--- + drivers/usb/musb/musb_host.c | 7 +++++-- + 1 files changed, 5 insertions(+), 2 deletions(-) + +diff --git a/drivers/usb/musb/musb_host.c b/drivers/usb/musb/musb_host.c +index 08e421f..4279311 100644 +--- a/drivers/usb/musb/musb_host.c ++++ b/drivers/usb/musb/musb_host.c +@@ -291,6 +291,7 @@ __acquires(musb->lock) + urb->actual_length, urb->transfer_buffer_length + ); + ++ usb_hcd_unlink_urb_from_ep(musb_to_hcd(musb), urb); + spin_unlock(&musb->lock); + usb_hcd_giveback_urb(musb_to_hcd(musb), urb, status); + spin_lock(&musb->lock); +@@ -353,8 +354,6 @@ musb_giveback(struct musb_qh *qh, struct urb *urb, int status) + break; + } + +- usb_hcd_unlink_urb_from_ep(musb_to_hcd(musb), urb); +- + qh->is_ready = 0; + __musb_giveback(musb, urb, status); + qh->is_ready = ready; +@@ -1787,7 +1786,9 @@ static int musb_urb_enqueue( + */ + qh = kzalloc(sizeof *qh, mem_flags); + if (!qh) { ++ spin_lock_irqsave(&musb->lock, flags); + usb_hcd_unlink_urb_from_ep(hcd, urb); ++ spin_unlock_irqrestore(&musb->lock, flags); + return -ENOMEM; + } + +@@ -1899,7 +1900,9 @@ static int musb_urb_enqueue( + + done: + if (ret != 0) { ++ spin_lock_irqsave(&musb->lock, flags); + usb_hcd_unlink_urb_from_ep(hcd, urb); ++ spin_unlock_irqrestore(&musb->lock, flags); + kfree(qh); + } + return ret; +-- +1.5.6 + +-- +To unsubscribe from this list: send the line "unsubscribe linux-omap" in +the body of a message to majordomo@vger.kernel.org +More majordomo info at http://vger.kernel.org/majordomo-info.html + |