Re: patch "Revert "USB/host: Cleanup unneccessary irq disable code"" added to usb tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, 13 Nov 2012 gregkh@xxxxxxxxxxxxxxxxxxx wrote:

> From e592c5d0b7db94b485b4a2342db041a1882b7f75 Mon Sep 17 00:00:00 2001
> From: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
> Date: Tue, 13 Nov 2012 10:52:52 -0800
> Subject: Revert "USB/host: Cleanup unneccessary irq disable code"
> 
> This reverts commit 73d4066055e0e2830533041f4b91df8e6e5976ff.
> 
> Martin Steigerwald reported that this change caused a hard lockup when
> using USB if threadirqs are enabled.  Thomas pointed out that this patch
> is incorrect, and can cause problems.  So revert it to get the
> previously working functionality back.

This reminds me -- it might be a good idea to start migrating the USB 
host controller drivers to use threaded interrupts.  The difficulty is 
that I'm not sure what would be required.

Right now the drivers use spin_lock_irqsave.  Not just for the obvious
reason that a USB device interrupt could arrive while the driver was
busy, but also because a request could arrive from any other driver,
submitted by that other driver's interrupt handler.  In addition, we
need to block timer callbacks while the driver is busy.

So what's the right way to approach this?  Or maybe there is no right 
way?  I get the feeling that the spin_lock_irqsave can't be replaced 
with anything else as long as there are any non-threaded interrupt 
handlers that might submit a USB request.  If that's so then the 
conversion wouldn't have any benefit.  Right?

Alan Stern

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux