linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Andrea Arcangeli <andrea@suse.de>
To: Jens Axboe <axboe@suse.de>
Cc: Linux Kernel <linux-kernel@vger.kernel.org>,
	linux-mm@kvack.org,
	"ZINKEVICIUS,MATT (HP-Loveland,ex1)" <matt_zinkevicius@hp.com>
Subject: Re: patch: highmem zero-bounce
Date: Wed, 27 Jun 2001 19:06:26 +0200	[thread overview]
Message-ID: <20010627190626.E24623@athlon.random> (raw)
In-Reply-To: <20010627184908.E17905@suse.de>; from axboe@suse.de on Wed, Jun 27, 2001 at 06:49:08PM +0200

On Wed, Jun 27, 2001 at 06:49:08PM +0200, Jens Axboe wrote:
> On Wed, Jun 27 2001, Jens Axboe wrote:
> > > I can see one mm corruption race condition in the patch, you missed
> > > nested irq in the for kmap_irq_bh (PIO).  You must _always_
> > > __cli/__save_flags before accessing the KMAP_IRQ_BH slot, in case the
> > > remapping is required (so _only_ when the page is in the highmem zone).
				^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> > > Otherwise memory corruption will happen when the race triggers (for
> > > example two ide disks in PIO mode doing I/O at the same time connected
> > > to different irq sources).
> > 
> > Ah yes, my bad. This requires some moving around, I'll post an updated
> > patch later tonight. Thanks!
> 
> A prelim and untested fix just whipped up

Thanks!

I'd prefer if the __cli;__save_flags is embedded in the bh_kmap_irq in
the slow path case where the remap is really required. We can avoid the
cli for all the memory below 1G. This way it should also be harder to
forget to cli ;). During PIO the irq should be enabled otherwise it
means either the driver or the hardware is silly.

Plus adding a _fat_ warning in the bh_kmap_irq that nobody should
re-enable interupt in the middle.

Andrea
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/

  reply	other threads:[~2001-06-27 17:06 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-06-26 16:22 Jens Axboe
2001-06-27  9:41 ` Andrea Arcangeli
2001-06-27 16:27   ` Jens Axboe
2001-06-27 16:49     ` Jens Axboe
2001-06-27 17:06       ` Andrea Arcangeli [this message]
2001-06-27 17:12         ` Jens Axboe
2001-07-06 13:41           ` Andrea Arcangeli
2001-07-06 13:45             ` Jens Axboe
2001-07-06 13:58               ` Andrea Arcangeli

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=20010627190626.E24623@athlon.random \
    --to=andrea@suse.de \
    --cc=axboe@suse.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=matt_zinkevicius@hp.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox