From: Al Viro <viro@zeniv.linux.org.uk>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org,
linux-arch@vger.kernel.org
Subject: Re: [git pull] vfs.git misc bits
Date: Sat, 25 Feb 2023 18:11:35 +0000 [thread overview]
Message-ID: <Y/pPV0q43R+drVtV@ZenIV> (raw)
In-Reply-To: <CAHk-=wgQz8VDDxdaj3rk861Ucjzk72hJoCjZvfaeo8jCyVc_2w@mail.gmail.com>
On Sat, Feb 25, 2023 at 09:04:57AM -0800, Linus Torvalds wrote:
> On Fri, Feb 24, 2023 at 8:57 PM Al Viro <viro@zeniv.linux.org.uk> wrote:
> >
> > Let's have it sit around for at least a few days, OK? I mean, I'm pretty
> > certain that these are fixes, but they hadn't been in any public tree -
> > only posted to linux-arch. At least #fixes gets picked by linux-next...
>
> Ack, sounds good.
... and Intel build-bot had immediately caught a breakage in microblaze.
Fixed and pushed out; I've checked all architectures affected by
this series, and that was the only build breakage. However, I still have
no way to test it (or anything, for that matter) on microblaze - I've no
userland images for it. Status right now:
alpha: bug confirmed, patch fixes it.
hexagon, m68k, riscv: acked by maintainer (with explicit tested-by for m68k and riscv)
microblaze, openrisc, nios2: builds, no way for me to test.
sparc32, sparc64, itanic: builds, preparing to test (itanic - once I resurrect
the sodding space heater I hadn't tried to boot for a couple of years; no
idea whether it works).
parisc: builds, but maintainers say that reproducer doesn't confirm the bug
in mainline. I've parisc32 box, will try to resurrect and see what's going
on. No way to test parisc64 here - no hardware and qemu/pa-risc doesn't handle
64bit system emulation.
Incidentally, while digging through the arch code around #PF, something's
weird on csky. Not this bug (it's handled correctly there), but...
looks like vm_get_page_prot(0) returns something that would *not*
pass pte_present(). Which should make life wonderful for e.g. PROT_READ|PROT_WRITE
mmap() + memcpy to it + PROT_NONE mprotect() + PROT_READ|PROT_WRITE mprotect().
Unless I'm seriously misunderstanding something, we have 3 mutually exclusive
cases:
absent PTE - no further information in it. No page at the corresponding
address range, access will fault and work from scratch; pte_none() is true for those.
swap PTE - page had been swapped out, access will fault, the information in
the entry encodes the location in swap. is_swap_pte() is true for those.
normal page - page is there, access might or might not fault due to permissions,
PTE contains the page frame number. pte_present() is true for those.
PROT_NONE should not yield something that looks like a swap entry. And on csky we
have
#define PAGE_NONE __pgprot(_PAGE_PROT_NONE)
#define pte_none(pte) (!(pte_val(pte) & ~_PAGE_GLOBAL))
#define pte_present(pte) (pte_val(pte) & _PAGE_PRESENT)
and
arch/csky/abiv1/inc/abi/pgtable-bits.h:26:#define _PAGE_PROT_NONE _PAGE_READ
arch/csky/abiv1/inc/abi/pgtable-bits.h:8:#define _PAGE_READ (1<<1)
arch/csky/abiv1/inc/abi/pgtable-bits.h:14:#define _PAGE_GLOBAL (1<<6)
arch/csky/abiv1/inc/abi/pgtable-bits.h:7:#define _PAGE_PRESENT (1<<0)
arch/csky/abiv2/inc/abi/pgtable-bits.h:26:#define _PAGE_PROT_NONE _PAGE_WRITE
arch/csky/abiv2/inc/abi/pgtable-bits.h:9:#define _PAGE_WRITE (1<<9)
arch/csky/abiv2/inc/abi/pgtable-bits.h:14:#define _PAGE_GLOBAL (1<<0)
arch/csky/abiv2/inc/abi/pgtable-bits.h:10:#define _PAGE_PRESENT (1<<10)
IOW, on both ABI variants we have PAGE_NONE looking like a malformed swap entry.
And is_swap_pte() is simply !pte_none() && !pte_present()...
next prev parent reply other threads:[~2023-02-25 18:11 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-02-24 3:40 [git pull] vfs.git misc bits Al Viro
2023-02-25 3:33 ` Linus Torvalds
2023-02-25 3:45 ` Al Viro
2023-02-25 4:57 ` Al Viro
2023-02-25 17:04 ` Linus Torvalds
2023-02-25 18:11 ` Al Viro [this message]
[not found] ` <3805D9F9-FB5D-4A8A-BE4B-845DDC508441@gmail.com>
2023-02-25 22:02 ` Al Viro
2023-02-25 3:40 ` pr-tracker-bot
2023-02-25 3:40 ` Linus Torvalds
-- strict thread matches above, loose matches on Subject: below --
2017-09-14 23:03 Al Viro
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=Y/pPV0q43R+drVtV@ZenIV \
--to=viro@zeniv.linux.org.uk \
--cc=linux-arch@vger.kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=torvalds@linux-foundation.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 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.