public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* Q serial.c
@ 2001-06-22  6:49 kees
  2001-06-22 13:51 ` Stuart MacDonald
  0 siblings, 1 reply; 4+ messages in thread
From: kees @ 2001-06-22  6:49 UTC (permalink / raw)
  To: linux-kernel

Hi
What may happen on a SMP machine if a serial port has been closed and the
closing stage is at shutdown() in serial.c in the call to free_IRQ  and
BEFORE the IRQ is really shutdown, a new character arrives which causes an
IRQ? Is it possible that the OTHER cpu  takes this interrupt and causes a
crash?

Kees


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Q serial.c
  2001-06-22  6:49 Q serial.c kees
@ 2001-06-22 13:51 ` Stuart MacDonald
  2001-06-22 15:23   ` Jonathan Lundell
  0 siblings, 1 reply; 4+ messages in thread
From: Stuart MacDonald @ 2001-06-22 13:51 UTC (permalink / raw)
  To: kees, linux-kernel

From: "kees" <kees@schoen.nl>
> What may happen on a SMP machine if a serial port has been closed and the
> closing stage is at shutdown() in serial.c in the call to free_IRQ  and
> BEFORE the IRQ is really shutdown, a new character arrives which causes an
> IRQ? Is it possible that the OTHER cpu  takes this interrupt and causes a
> crash?

I'm looking at serial-5.05/serial.c. You'll notice at the
beginning of shutdown the saveflags(); cli(); calls.
This disables interrupts. The uart will not be able to
generate IRQs even if new characters arrive.

..Stu



^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Q serial.c
  2001-06-22 13:51 ` Stuart MacDonald
@ 2001-06-22 15:23   ` Jonathan Lundell
  2001-06-22 15:32     ` Stuart MacDonald
  0 siblings, 1 reply; 4+ messages in thread
From: Jonathan Lundell @ 2001-06-22 15:23 UTC (permalink / raw)
  To: Stuart MacDonald, kees, linux-kernel

At 9:51 AM -0400 2001-06-22, Stuart MacDonald wrote:
>From: "kees" <kees@schoen.nl>
>>  What may happen on a SMP machine if a serial port has been closed and the
>>  closing stage is at shutdown() in serial.c in the call to free_IRQ  and
>>  BEFORE the IRQ is really shutdown, a new character arrives which causes an
>>  IRQ? Is it possible that the OTHER cpu  takes this interrupt and causes a
>>  crash?
>
>I'm looking at serial-5.05/serial.c. You'll notice at the
>beginning of shutdown the saveflags(); cli(); calls.
>This disables interrupts. The uart will not be able to
>generate IRQs even if new characters arrive.

The other CPU servicing the interrupt, was the question. cli() 
doesn't affect that. This could presumably happen if shutdown() gets 
run on a non-interrupt-servicing CPU, or if interrupts are 
dynamically routed (eg round-robin).

Where can I find the 5.05 driver?
-- 
/Jonathan Lundell.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Q serial.c
  2001-06-22 15:23   ` Jonathan Lundell
@ 2001-06-22 15:32     ` Stuart MacDonald
  0 siblings, 0 replies; 4+ messages in thread
From: Stuart MacDonald @ 2001-06-22 15:32 UTC (permalink / raw)
  To: kees, linux-kernel, Jonathan Lundell, tytso

From: "Jonathan Lundell" <jlundell@pobox.com>
> The other CPU servicing the interrupt, was the question. cli()
> doesn't affect that. This could presumably happen if shutdown() gets
> run on a non-interrupt-servicing CPU, or if interrupts are
> dynamically routed (eg round-robin).

Ah. Missed that.

Hm. Does appear to be a problem. Ted?

> Where can I find the 5.05 driver?

http://serial.sourceforge.net  I'm not sure which version is currently
in 2.4.latest, but it should be nearly 5.05.

..Stu



^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2001-06-22 15:29 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2001-06-22  6:49 Q serial.c kees
2001-06-22 13:51 ` Stuart MacDonald
2001-06-22 15:23   ` Jonathan Lundell
2001-06-22 15:32     ` Stuart MacDonald

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