Re: patch: highmem zero-bounce

From: Andrea Arcangeli (andrea@suse.de)
Date: Wed Jun 27 2001 - 12:06:26 EST


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 from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Sat Jun 30 2001 - 21:00:17 EST