From: Paul Mundt Date: Thu, 4 Feb 2010 06:58:28 +0000 (+0000) Subject: usb: r8a66597-hcd: Fix up spinlock recursion in root hub polling. X-Git-Tag: v2.6.33-rc8~43^2~4 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2c940db250c1610d95ea5331dc819b8bd4db96ae;p=pandora-kernel.git usb: r8a66597-hcd: Fix up spinlock recursion in root hub polling. The current root hub polling code exhibits a spinlock recursion on the private controller lock. r8a66597_root_hub_control() is called from r8a66597_timer() which grabs the lock and disables IRQs. The following chain emerges: r8a66597_timer() <-- lock taken r8a66597_root_hub_control() r8a66597_check_syssts() usb_hcd_poll_rh_status() <-- acquires the same lock /* insert death here */ The entire chain requires IRQs to be disabled, so we just unlock and relock around the call to usb_hcd_poll_rh_status() while leaving the IRQ state unchanged. Signed-off-by: Paul Mundt Acked-by: Yoshihiro Shimoda --- Reading git-diff-tree failed