Re: A question about PROT_NONE on Sun4c 32-bit Sparc

From: Keith M. Wesolowski
Date: Thu Jul 01 2004 - 23:12:41 EST


On Fri, Jul 02, 2004 at 02:03:49AM +0100, Jamie Lokier wrote:

> I would like to know if the Sun4 and Sun4c ports have the same bug.
> I'm guessing not, but it's not clear to me from the code.

No, this code is ok.

> #define _SUN4C_PAGE_VALID 0x80000000
> #define _SUN4C_PAGE_SILENT_READ 0x80000000 /* synonym */
> ...
> #define _SUN4C_PAGE_READ 0x00800000 /* implemented in software */
> ...
> #define SUN4C_PAGE_NONE __pgprot(_SUN4C_PAGE_PRESENT)

> SUN4C_PAGE_NONE corresponds to PROT_NONE mmap memory protection.
> The question is whether PROT_NONE pages are readable by the _kernel_.
> I.e. whether write() would successfully read from those pages.

No, they are not. The _SUN4C_PAGE_SILENT_READ is the bit that allows
reading the page without trapping. If it's not set, you trap, and
do_sun4c_fault tests _SUN4C_PAGE_READ with no special case for
user/kernel. Since PROT_NONE doesn't include that bit, it's an oops.

> (By the way, as the sun4 files don't contain a definition of
> _SUN4_PAGE_FILE or pgoff_to_pte, but the sun4c one do, I guess the
> sun4 sub-architecture doesn't build in 2.6 but sun4c does?)

Correct, although I recently fixed this in my tree. It now builds but
nobody has tested it in ages and I believe it doesn't work.

--
Keith M Wesolowski
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/