On Sun, 22 Jun 2008, Dmitry Torokhov wrote: > On Sun, Jun 22, 2008 at 12:38:47PM -0300, Henrique de Moraes Holschuh wrote: > > SW_RFKILL_ALL is the "emergency power-off all radios" input event. It must > > be handled, and must always do the same thing as far as the rfkill system > > is concerned: all transmitters are to go *immediately* offline. > > > > For safety, do NOT allow userspace to override EV_SW SW_RFKILL_ALL OFF. As > > long as rfkill-input is loaded, that event will *always* be processed, and > > it will *always* force all rfkill switches to disable all wireless > > transmitters, regardless of user_claim attribute or anything else. > > > > Signed-off-by: Henrique de Moraes Holschuh <hmh@xxxxxxxxxx> > > Acked-by: Ivo van Doorn <IvDoorn@xxxxxxxxx> > > Cc: Dmitry Torokhov <dtor@xxxxxxx> > > rfkill_event() is called with handle->dev.event_lock spinlock held and > therefore can not sleep. rfkill_epo() takes rfkill mutex and may sleep > so it can't be used in the interrupt context. That is the reason why > we had tasks for switching rf switches in the first place. Will fix to schedule an immediate call to _epo in task context, that should fix the locking issue. Thanks for noticing that one! -- "One disk to rule them all, One disk to find them. One disk to bring them all and in the darkness grind them. In the Land of Redmond where the shadows lie." -- The Silicon Valley Tarot Henrique Holschuh -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html