diff options
| author | Greg Kroah-Hartman <gregkh@suse.de> | 2010-07-02 14:21:42 -0700 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@suse.de> | 2010-07-02 14:21:42 -0700 |
| commit | f3a20b368ebed936771e3516c240a77eed6bb918 (patch) | |
| tree | a0555d279949ec8245b077a001a85919f8b78068 /usb.current/usb-isp1362-hcd-fix-double-lock.patch | |
| parent | c23087dad116bf3266e64605046361d985e7f493 (diff) | |
| download | patches-f3a20b368ebed936771e3516c240a77eed6bb918.tar.gz | |
patches merged with Linus now removed
Diffstat (limited to 'usb.current/usb-isp1362-hcd-fix-double-lock.patch')
| -rw-r--r-- | usb.current/usb-isp1362-hcd-fix-double-lock.patch | 66 |
1 files changed, 0 insertions, 66 deletions
diff --git a/usb.current/usb-isp1362-hcd-fix-double-lock.patch b/usb.current/usb-isp1362-hcd-fix-double-lock.patch deleted file mode 100644 index d8e8f0950af3c8..00000000000000 --- a/usb.current/usb-isp1362-hcd-fix-double-lock.patch +++ /dev/null @@ -1,66 +0,0 @@ -From jslaby@suse.cz Mon Jun 21 14:19:09 2010 -From: Jiri Slaby <jslaby@suse.cz> -Date: Mon, 21 Jun 2010 17:02:51 +0200 -Subject: USB: isp1362-hcd, fix double lock -To: gregkh@suse.de -Cc: linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org, jirislaby@gmail.com, Lothar Wassmann <LW@KARO-electronics.de>, Michael Hennerich <michael.hennerich@analog.com>, Bryan Wu <cooloney@kernel.org>, Mike Frysinger <vapier@gentoo.org> -Message-ID: <1277132571-14320-1-git-send-email-jslaby@suse.cz> - - -Stanse found that isp1362_sw_reset tries to take a isp1362_hcd->lock, -but it is already held in isp1362_hc_stop. Avoid that by introducing -__isp1362_sw_reset which doesn't take the lock and call it from -isp1362_hc_stop. isp1362_sw_reset is then as simple as lock -- -__isp1362_sw_reset -- unlock. - -Signed-off-by: Jiri Slaby <jslaby@suse.cz> -Cc: Lothar Wassmann <LW@KARO-electronics.de> -Cc: Michael Hennerich <michael.hennerich@analog.com> -Cc: Bryan Wu <cooloney@kernel.org> -Cc: Mike Frysinger <vapier@gentoo.org> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/usb/host/isp1362-hcd.c | 15 ++++++++++----- - 1 file changed, 10 insertions(+), 5 deletions(-) - ---- a/drivers/usb/host/isp1362-hcd.c -+++ b/drivers/usb/host/isp1362-hcd.c -@@ -2224,12 +2224,9 @@ static void remove_debug_file(struct isp - - /*-------------------------------------------------------------------------*/ - --static void isp1362_sw_reset(struct isp1362_hcd *isp1362_hcd) -+static void __isp1362_sw_reset(struct isp1362_hcd *isp1362_hcd) - { - int tmp = 20; -- unsigned long flags; -- -- spin_lock_irqsave(&isp1362_hcd->lock, flags); - - isp1362_write_reg16(isp1362_hcd, HCSWRES, HCSWRES_MAGIC); - isp1362_write_reg32(isp1362_hcd, HCCMDSTAT, OHCI_HCR); -@@ -2240,6 +2237,14 @@ static void isp1362_sw_reset(struct isp1 - } - if (!tmp) - pr_err("Software reset timeout\n"); -+} -+ -+static void isp1362_sw_reset(struct isp1362_hcd *isp1362_hcd) -+{ -+ unsigned long flags; -+ -+ spin_lock_irqsave(&isp1362_hcd->lock, flags); -+ __isp1362_sw_reset(isp1362_hcd); - spin_unlock_irqrestore(&isp1362_hcd->lock, flags); - } - -@@ -2418,7 +2423,7 @@ static void isp1362_hc_stop(struct usb_h - if (isp1362_hcd->board && isp1362_hcd->board->reset) - isp1362_hcd->board->reset(hcd->self.controller, 1); - else -- isp1362_sw_reset(isp1362_hcd); -+ __isp1362_sw_reset(isp1362_hcd); - - if (isp1362_hcd->board && isp1362_hcd->board->clock) - isp1362_hcd->board->clock(hcd->self.controller, 0); |
