From: Stephen H. <she...@os...> - 2004-02-18 18:04:19
|
On Tue, 17 Feb 2004 16:32:57 -0800 Jean Tourrilhes <jt...@bo...> wrote: > On Mon, Feb 16, 2004 at 03:07:56PM -0800, Stephen Hemminger wrote: > > The __irport_change_speed function has poorly managed locking code. > > I'll be charitable and assume it is left over from some earlier problem... > > > > Anyway, since the function is called under lock from all but one place; > > the simple fix is to just add the locking in that one path, and rip out > > the offending code. > > I've mixed reaction with respect to irport. In theory, I liked > the way the old smc-ircc driver was reusing the irport code (less > code, fix bugs in one place). In practice, it was ugly, and the > locking was probably the worse of it. The __irport_change_speed needed > to be called by the smc-ircc driver which was doing its own locking. > If we remove the constraint that irport should be "embedable" > in other drivers, then the way forward seems to convert it to the new > sir-dev architecture. That would allow to remove the old dongle stuff > which is also quite broken with respect to locking. > I don't believe that irport as a fully standalone driver (as > it is now) make sense, so there is not much point pushing in that > direction. > Your comments ? > > Jean How about applying this patch to exclude the drivers with known broken locking until someone fixes them. diff -Nru a/drivers/net/irda/Kconfig b/drivers/net/irda/Kconfig --- a/drivers/net/irda/Kconfig Wed Feb 18 09:56:50 2004 +++ b/drivers/net/irda/Kconfig Wed Feb 18 09:56:50 2004 @@ -138,7 +138,7 @@ config IRPORT_SIR tristate "IrPORT (IrDA serial driver)" - depends on IRDA + depends on IRDA && BROKEN_ON_SMP ---help--- Say Y here if you want to build support for the IrPORT IrDA device driver. To compile it as a module, choose M here: the module will be @@ -156,7 +156,7 @@ config DONGLE_OLD bool "Old Serial dongle support" - depends on IRTTY_OLD || IRPORT_SIR + depends on (IRTTY_OLD || IRPORT_SIR) && BROKEN_ON_SMP help Say Y here if you have an infrared device that connects to your computer's serial port. These devices are called dongles. Then say Y |