From: "Arkadi E. Shishlov" <arkadi@it.lv>
To: Kanoj Sarcar <kanoj@google.engr.sgi.com>
Cc: linux-mm@kvack.org
Subject: Re: IO mappings; verify_area() on SMP
Date: Tue, 9 Nov 1999 11:26:28 +0200 [thread overview]
Message-ID: <19991109112628.A559@it.lv> (raw)
In-Reply-To: <199911081925.LAA28960@google.engr.sgi.com>; from Kanoj Sarcar on Mon, Nov 08, 1999 at 11:25:11AM -0800
Thank you for fast response. Now I know, how to deal with memory io.
On Mon, Nov 08, 1999 at 11:25:11AM -0800, Kanoj Sarcar wrote:
> >
> > Second question is about verify_area() safety. Many drivers contain
> > following sequence:
> >
> > if ((ret = verify_area(VERIFY_WRITE, buffer, count)))
> > return r;
> > ...
> > copy_to_user(buffer, driver_data_buf, count);
> >
> > Even protected by cli()/sti() pairs, why multithreaded program on
> > SMP machine can't unmap this verified buffer between calls to
> > verify_area() and copy_to_user()? Of course it can't be true, but
> > maybe somebody can write two-three words about reason that prevent
> > this situation.
>
> In most cases, the address spaces' mmap_sem is held, which prevents
> unmap's from happening until the caller of verify_area/copy_to_user
> releases it. This is if copy_to_user takes a page fault. If there
> is no page fault, the caller probably holds the kernel_lock
> monitor, which excludes anyone else from doing a lot of things
> inside the kernel, including unmaps.
Hmm... Your explanation is somewhat different from Andi Kleen wrote.
I don't see use of mmap_sem in conjunction with drivers (only char/mem).
If I mistaken - sorry, I will dig into kernel and investigate this.
arkadi.
--
Just arms curvature radius.
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://humbolt.geo.uu.nl/Linux-MM/
next prev parent reply other threads:[~1999-11-09 9:26 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
1999-11-08 11:43 IO mappings; verify_area() on SMP Arkadi E. Shishlov
1999-11-08 19:25 ` Kanoj Sarcar
1999-11-09 9:26 ` Arkadi E. Shishlov [this message]
1999-11-08 20:50 ` Andi Kleen
1999-11-09 9:27 ` Arkadi E. Shishlov
1999-11-09 10:40 ` Andi Kleen
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=19991109112628.A559@it.lv \
--to=arkadi@it.lv \
--cc=kanoj@google.engr.sgi.com \
--cc=linux-mm@kvack.org \
/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