From: Lou Langholtz <ldl@chpc.utah.edu>
To: Takashi Oe <toe@unlserve.unl.edu>
Cc: linuxppc-dev@lists.linuxppc.org
Subject: Re: [Fwd: Bug: 2.2.12 still hangs PPC after some PPP activity]
Date: Wed, 29 Sep 1999 12:46:54 -0600 [thread overview]
Message-ID: <37F25E9D.282C83B0@chpc.utah.edu> (raw)
In-Reply-To: Pine.LNX.3.96LJ1.1b7.990929021435.16135B-100000@ofey.inetnebr.com
Takashi Oe wrote:
> On Wed, 29 Sep 1999, Lou Langholtz wrote:
>
> > What might happen if a driver does:
> >
> > save_flags(old_flags);
> > cli();
> > restore_flags(old_flags);
> > save_flags(new_flags);
> > cli();
> > restore_flags(new_flags);
> > /* can't we be interupted here? Assume yes, if so */
> > restore_flags(old_flags);
> >. . .
> I'm fairly certain it's a bug. Good spotting. The last restore_flags()
> shouldn't be there.
>
> --- macserial.c.ORIG Wed Sep 29 02:05:14 1999
> +++ macserial.c Wed Sep 29 02:05:31 1999
> @@ -1381,7 +1381,6 @@
> if (info->xmit_cnt && !tty->stopped && !info->tx_stopped
> && !info->tx_active)
> transmit_chars(info);
> - restore_flags(flags);
> return ret;
> }
>
> Takashi Oe
If this is true, then what about wherever else transmit_chars() is called. There's
numerous instances where because transmit_chars() itself goes into a save_flags();
cli(); ...; restore_flags() where we have these nested cli()... restore_flags().
For instance in rs_throttle() transmit_chars() is called while cli()'s already in
effect. If the real problem is the nesting of the locks introduced by
transmit_chars() then this would also seem to explain the TCP die-off phenomena.
Opinions?
** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/
next prev parent reply other threads:[~1999-09-29 18:46 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <37F1AD4B.585E99AB@chpc.utah.edu>
1999-09-29 7:11 ` [Fwd: Bug: 2.2.12 still hangs PPC after some PPP activity] Geert Uytterhoeven
1999-09-29 7:16 ` Takashi Oe
1999-09-29 7:40 ` Geert Uytterhoeven
1999-09-29 9:13 ` Benjamin Herrenschmidt
1999-09-30 0:46 ` Takashi Oe
1999-09-30 8:50 ` Benjamin Herrenschmidt
1999-09-30 16:21 ` Takashi Oe
1999-09-30 16:35 ` Benjamin Herrenschmidt
1999-10-06 5:33 ` update on macserial/DMA Takashi Oe
1999-10-06 8:35 ` Benjamin Herrenschmidt
1999-10-06 13:47 ` Takashi Oe
1999-10-06 16:25 ` Benjamin Herrenschmidt
1999-10-06 16:50 ` Benjamin Herrenschmidt
1999-10-08 7:13 ` Lou Langholtz
1999-10-09 17:57 ` Lou Langholtz
[not found] ` <Pine.LNX.3.96LJ1.1b7.991005234830.1210A-100000@ofey.inetne br.com>
1999-10-07 9:48 ` Franz Sirl
1999-10-07 15:37 ` phandel
1999-10-12 7:20 ` [Fwd: Bug: 2.2.12 still hangs PPC after some PPP activity] Lou Langholtz
1999-09-29 16:44 ` Lou Langholtz
1999-09-29 17:02 ` Benjamin Herrenschmidt
1999-09-29 18:08 ` Lou Langholtz
1999-09-29 18:46 ` Lou Langholtz [this message]
1999-09-29 20:00 ` Lou Langholtz
1999-09-30 1:14 ` Takashi Oe
1999-09-30 5:33 ` Geert Uytterhoeven
1999-10-01 13:26 ` Franz Sirl
1999-10-01 13:46 ` Alvin Brattli
[not found] ` <Pine.OSF.3.96.991001153658.16772E-100000@mitra.phys.uit.no >
1999-10-01 14:08 ` Franz Sirl
1999-10-01 16:14 ` Lou Langholtz
[not found] <37F1C0A3.B9F25580@chpc.utah.edu>
1999-09-29 7:39 ` Geert Uytterhoeven
1999-09-10 16:51 Lou Langholtz
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=37F25E9D.282C83B0@chpc.utah.edu \
--to=ldl@chpc.utah.edu \
--cc=linuxppc-dev@lists.linuxppc.org \
--cc=toe@unlserve.unl.edu \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.