mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [HELP] Failed check_irq_holder() -> ???
@ 2002-03-01  1:12 Jean Tourrilhes
  0 siblings, 0 replies; only message in thread
From: Jean Tourrilhes @ 2002-03-01  1:12 UTC (permalink / raw)
  To: Dag Brattli, Linux kernel mailing list, Alan Cox

	Hi,

	Trying to validate IrDA with 2.5.6-pre1 (I guess, that's my
job). I got some socket OOPS in a place where everything was smooth
before.
	It seems that check_irq_holder() in include/asm/smplock.h is
failing and generate the Oops. Basically, it complain when
interruptible_sleep_on() is called with interrupts disabled (fair
enough).

	The offending code in net/irda/af_irda.c look like this :
--------------------------------------
	cli();	/* To avoid races on the sleep */
	
	/* A Connect Ack with Choke or timeout or failed routing will go to
	 * closed.  */
	while (sk->state == TCP_SYN_SENT) {
		interruptible_sleep_on(sk->sleep);
		if (signal_pending(current)) {
			sti();
			return -ERESTARTSYS;
		}
	}
	
	if (sk->state != TCP_ESTABLISHED) {
		sti();
		sock->state = SS_UNCONNECTED;
		return sock_error(sk);	/* Always set at this point */
	}
	
	sock->state = SS_CONNECTED;
	
	sti();
--------------------------------------

	Wow ! This is far beyond my usual level of evil !
	My guess is that this was a cut'n'paste of some TCP code (or
else), and while this other code was fixed/cleaned up, IrDA kept the
old version.
	So, if anybody remember having seen that and could tell me how
it was fixed, that would make my day...

	Thanks...

	Jean

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2002-03-01  1:17 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-03-01  1:12 [HELP] Failed check_irq_holder() -> ??? Jean Tourrilhes

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®