Andrew - Please disregard this patch, I have now re-sent it as part of a series in [0] in order to enforce ordering. Thanks! [0]: https://lore.kernel.org/linux-mm/cover.1747338438.git.lorenzo.stoakes@xxxxxxxxxx/ On Wed, May 14, 2025 at 05:35:30PM +0100, Lorenzo Stoakes wrote: > The enum type prot_type declared in arch/s390/kvm/gaccess.c declares an > unfortunate identifier within it - PROT_NONE. > > This clashes with the protection bit define from the uapi for mmap() > declared in include/uapi/asm-generic/mman-common.h, which is indeed what > those casually reading this code would assume this to refer to. > > This means that any changes which subsequently alter headers in any way > which results in the uapi header being imported here will cause build > errors. > > Resolve the issue by renaming PROT_NONE to PROT_TYPE_DUMMY. > > Signed-off-by: Lorenzo Stoakes <lorenzo.stoakes@xxxxxxxxxx> > Suggested-by: Ignacio Moreno Gonzalez <Ignacio.MorenoGonzalez@xxxxxxxx> > Fixes: b3cefd6bf16e ("KVM: s390: Pass initialized arg even if unused") > Cc: stable@xxxxxxxxxxxxxxx > Reported-by: kernel test robot <lkp@xxxxxxxxx> > Closes: https://lore.kernel.org/oe-kbuild-all/202505140943.IgHDa9s7-lkp@xxxxxxxxx/ > --- > > Andrew - sorry to be a pain - this needs to land before > https://lore.kernel.org/all/20250508-madvise-nohugepage-noop-without-thp-v1-1-e7ceffb197f3@xxxxxxxx/ > > I can resend this as a series with it if that makes it easier for you? Let > me know if there's anything I can do to make it easier to get the ordering right here. > > Thanks! > > arch/s390/kvm/gaccess.c | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > > diff --git a/arch/s390/kvm/gaccess.c b/arch/s390/kvm/gaccess.c > index f6fded15633a..4e5654ad1604 100644 > --- a/arch/s390/kvm/gaccess.c > +++ b/arch/s390/kvm/gaccess.c > @@ -318,7 +318,7 @@ enum prot_type { > PROT_TYPE_DAT = 3, > PROT_TYPE_IEP = 4, > /* Dummy value for passing an initialized value when code != PGM_PROTECTION */ > - PROT_NONE, > + PROT_TYPE_DUMMY, > }; > > static int trans_exc_ending(struct kvm_vcpu *vcpu, int code, unsigned long gva, u8 ar, > @@ -334,7 +334,7 @@ static int trans_exc_ending(struct kvm_vcpu *vcpu, int code, unsigned long gva, > switch (code) { > case PGM_PROTECTION: > switch (prot) { > - case PROT_NONE: > + case PROT_TYPE_DUMMY: > /* We should never get here, acts like termination */ > WARN_ON_ONCE(1); > break; > @@ -804,7 +804,7 @@ static int guest_range_to_gpas(struct kvm_vcpu *vcpu, unsigned long ga, u8 ar, > gpa = kvm_s390_real_to_abs(vcpu, ga); > if (!kvm_is_gpa_in_memslot(vcpu->kvm, gpa)) { > rc = PGM_ADDRESSING; > - prot = PROT_NONE; > + prot = PROT_TYPE_DUMMY; > } > } > if (rc) > @@ -962,7 +962,7 @@ int access_guest_with_key(struct kvm_vcpu *vcpu, unsigned long ga, u8 ar, > if (rc == PGM_PROTECTION) > prot = PROT_TYPE_KEYC; > else > - prot = PROT_NONE; > + prot = PROT_TYPE_DUMMY; > rc = trans_exc_ending(vcpu, rc, ga, ar, mode, prot, terminate); > } > out_unlock: > -- > 2.49.0