diff mbox series

riscv: sifive_test: Allow 16-bit writes to memory region

Message ID 20200901055822.2721209-1-natechancellor@gmail.com (mailing list archive)
State New, archived
Headers show
Series riscv: sifive_test: Allow 16-bit writes to memory region | expand

Commit Message

Nathan Chancellor Sept. 1, 2020, 5:58 a.m. UTC
When shutting down the machine running a mainline Linux kernel, the
following error happens:

$ build/riscv64-softmmu/qemu-system-riscv64 -bios default -M virt \
    -display none -initrd rootfs.cpio -kernel Image -m 512m \
    -nodefaults -serial mon:stdio
...
Requesting system poweroff
[    4.999630] reboot: Power down
sbi_trap_error: hart0: trap handler failed (error -2)
sbi_trap_error: hart0: mcause=0x0000000000000007 mtval=0x0000000000100000
sbi_trap_error: hart0: mepc=0x000000008000d4cc mstatus=0x0000000000001822
sbi_trap_error: hart0: ra=0x000000008000999e sp=0x0000000080015c78
sbi_trap_error: hart0: gp=0xffffffe000e76610 tp=0xffffffe0081b89c0
sbi_trap_error: hart0: s0=0x0000000080015c88 s1=0x0000000000000040
sbi_trap_error: hart0: a0=0x0000000000000000 a1=0x0000000080004024
sbi_trap_error: hart0: a2=0x0000000080004024 a3=0x0000000080004024
sbi_trap_error: hart0: a4=0x0000000000100000 a5=0x0000000000005555
sbi_trap_error: hart0: a6=0x0000000000004024 a7=0x0000000080011158
sbi_trap_error: hart0: s2=0x0000000000000000 s3=0x0000000080016000
sbi_trap_error: hart0: s4=0x0000000000000000 s5=0x0000000000000000
sbi_trap_error: hart0: s6=0x0000000000000001 s7=0x0000000000000000
sbi_trap_error: hart0: s8=0x0000000000000000 s9=0x0000000000000000
sbi_trap_error: hart0: s10=0x0000000000000000 s11=0x0000000000000008
sbi_trap_error: hart0: t0=0x0000000000000000 t1=0x0000000000000000
sbi_trap_error: hart0: t2=0x0000000000000000 t3=0x0000000000000000
sbi_trap_error: hart0: t4=0x0000000000000000 t5=0x0000000000000000
sbi_trap_error: hart0: t6=0x0000000000000000

The kernel does a 16-bit write when powering off the machine, which
was allowed before commit 5d971f9e67 ("memory: Revert "memory: accept
mismatching sizes in memory_region_access_valid""). Make min_access_size
match reality so that the machine can shut down properly now.

Cc: qemu-stable@nongnu.org
Fixes: 88a07990fa ("SiFive RISC-V Test Finisher")
Fixes: 5d971f9e67 ("memory: Revert "memory: accept mismatching sizes in memory_region_access_valid"")
Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
---

Please let me know if the tags are wrong or inappropriate, this is my
first QEMU patch.

 hw/riscv/sifive_test.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)


base-commit: 2f4c51c0f384d7888a04b4815861e6d5fd244d75

Comments

Michael S. Tsirkin Sept. 1, 2020, 11:08 a.m. UTC | #1
On Mon, Aug 31, 2020 at 10:58:23PM -0700, Nathan Chancellor wrote:
> When shutting down the machine running a mainline Linux kernel, the
> following error happens:
> 
> $ build/riscv64-softmmu/qemu-system-riscv64 -bios default -M virt \
>     -display none -initrd rootfs.cpio -kernel Image -m 512m \
>     -nodefaults -serial mon:stdio
> ...
> Requesting system poweroff
> [    4.999630] reboot: Power down
> sbi_trap_error: hart0: trap handler failed (error -2)
> sbi_trap_error: hart0: mcause=0x0000000000000007 mtval=0x0000000000100000
> sbi_trap_error: hart0: mepc=0x000000008000d4cc mstatus=0x0000000000001822
> sbi_trap_error: hart0: ra=0x000000008000999e sp=0x0000000080015c78
> sbi_trap_error: hart0: gp=0xffffffe000e76610 tp=0xffffffe0081b89c0
> sbi_trap_error: hart0: s0=0x0000000080015c88 s1=0x0000000000000040
> sbi_trap_error: hart0: a0=0x0000000000000000 a1=0x0000000080004024
> sbi_trap_error: hart0: a2=0x0000000080004024 a3=0x0000000080004024
> sbi_trap_error: hart0: a4=0x0000000000100000 a5=0x0000000000005555
> sbi_trap_error: hart0: a6=0x0000000000004024 a7=0x0000000080011158
> sbi_trap_error: hart0: s2=0x0000000000000000 s3=0x0000000080016000
> sbi_trap_error: hart0: s4=0x0000000000000000 s5=0x0000000000000000
> sbi_trap_error: hart0: s6=0x0000000000000001 s7=0x0000000000000000
> sbi_trap_error: hart0: s8=0x0000000000000000 s9=0x0000000000000000
> sbi_trap_error: hart0: s10=0x0000000000000000 s11=0x0000000000000008
> sbi_trap_error: hart0: t0=0x0000000000000000 t1=0x0000000000000000
> sbi_trap_error: hart0: t2=0x0000000000000000 t3=0x0000000000000000
> sbi_trap_error: hart0: t4=0x0000000000000000 t5=0x0000000000000000
> sbi_trap_error: hart0: t6=0x0000000000000000
> 
> The kernel does a 16-bit write when powering off the machine, which
> was allowed before commit 5d971f9e67 ("memory: Revert "memory: accept
> mismatching sizes in memory_region_access_valid""). Make min_access_size
> match reality so that the machine can shut down properly now.
> 
> Cc: qemu-stable@nongnu.org
> Fixes: 88a07990fa ("SiFive RISC-V Test Finisher")
> Fixes: 5d971f9e67 ("memory: Revert "memory: accept mismatching sizes in memory_region_access_valid"")
> Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
> ---
> 
> Please let me know if the tags are wrong or inappropriate, this is my
> first QEMU patch.
> 
>  hw/riscv/sifive_test.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/hw/riscv/sifive_test.c b/hw/riscv/sifive_test.c
> index 0c78fb2c93..8c70dd69df 100644
> --- a/hw/riscv/sifive_test.c
> +++ b/hw/riscv/sifive_test.c
> @@ -59,7 +59,7 @@ static const MemoryRegionOps sifive_test_ops = {
>      .write = sifive_test_write,
>      .endianness = DEVICE_NATIVE_ENDIAN,


Apropos, why is this native endian?
The write handler seems to ignore target endian-ness,
looks like a bug ...

>      .valid = {
> -        .min_access_size = 4,
> +        .min_access_size = 2,
>          .max_access_size = 4
>      }
>  };
> 
> base-commit: 2f4c51c0f384d7888a04b4815861e6d5fd244d75
> -- 
> 2.28.0
Michael S. Tsirkin Sept. 1, 2020, 11:49 a.m. UTC | #2
On Tue, Sep 01, 2020 at 07:08:34AM -0400, Michael S. Tsirkin wrote:
> On Mon, Aug 31, 2020 at 10:58:23PM -0700, Nathan Chancellor wrote:
> > When shutting down the machine running a mainline Linux kernel, the
> > following error happens:
> > 
> > $ build/riscv64-softmmu/qemu-system-riscv64 -bios default -M virt \
> >     -display none -initrd rootfs.cpio -kernel Image -m 512m \
> >     -nodefaults -serial mon:stdio
> > ...
> > Requesting system poweroff
> > [    4.999630] reboot: Power down
> > sbi_trap_error: hart0: trap handler failed (error -2)
> > sbi_trap_error: hart0: mcause=0x0000000000000007 mtval=0x0000000000100000
> > sbi_trap_error: hart0: mepc=0x000000008000d4cc mstatus=0x0000000000001822
> > sbi_trap_error: hart0: ra=0x000000008000999e sp=0x0000000080015c78
> > sbi_trap_error: hart0: gp=0xffffffe000e76610 tp=0xffffffe0081b89c0
> > sbi_trap_error: hart0: s0=0x0000000080015c88 s1=0x0000000000000040
> > sbi_trap_error: hart0: a0=0x0000000000000000 a1=0x0000000080004024
> > sbi_trap_error: hart0: a2=0x0000000080004024 a3=0x0000000080004024
> > sbi_trap_error: hart0: a4=0x0000000000100000 a5=0x0000000000005555
> > sbi_trap_error: hart0: a6=0x0000000000004024 a7=0x0000000080011158
> > sbi_trap_error: hart0: s2=0x0000000000000000 s3=0x0000000080016000
> > sbi_trap_error: hart0: s4=0x0000000000000000 s5=0x0000000000000000
> > sbi_trap_error: hart0: s6=0x0000000000000001 s7=0x0000000000000000
> > sbi_trap_error: hart0: s8=0x0000000000000000 s9=0x0000000000000000
> > sbi_trap_error: hart0: s10=0x0000000000000000 s11=0x0000000000000008
> > sbi_trap_error: hart0: t0=0x0000000000000000 t1=0x0000000000000000
> > sbi_trap_error: hart0: t2=0x0000000000000000 t3=0x0000000000000000
> > sbi_trap_error: hart0: t4=0x0000000000000000 t5=0x0000000000000000
> > sbi_trap_error: hart0: t6=0x0000000000000000
> > 
> > The kernel does a 16-bit write when powering off the machine, which
> > was allowed before commit 5d971f9e67 ("memory: Revert "memory: accept
> > mismatching sizes in memory_region_access_valid""). Make min_access_size
> > match reality so that the machine can shut down properly now.
> > 
> > Cc: qemu-stable@nongnu.org
> > Fixes: 88a07990fa ("SiFive RISC-V Test Finisher")
> > Fixes: 5d971f9e67 ("memory: Revert "memory: accept mismatching sizes in memory_region_access_valid"")
> > Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
> > ---
> > 
> > Please let me know if the tags are wrong or inappropriate, this is my
> > first QEMU patch.
> > 
> >  hw/riscv/sifive_test.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/hw/riscv/sifive_test.c b/hw/riscv/sifive_test.c
> > index 0c78fb2c93..8c70dd69df 100644
> > --- a/hw/riscv/sifive_test.c
> > +++ b/hw/riscv/sifive_test.c
> > @@ -59,7 +59,7 @@ static const MemoryRegionOps sifive_test_ops = {
> >      .write = sifive_test_write,
> >      .endianness = DEVICE_NATIVE_ENDIAN,
> 
> 
> Apropos, why is this native endian?
> The write handler seems to ignore target endian-ness,
> looks like a bug ...


patch itself looks fine

Acked-by: Michael S. Tsirkin <mst@redhat.com>

> >      .valid = {
> > -        .min_access_size = 4,
> > +        .min_access_size = 2,
> >          .max_access_size = 4
> >      }
> >  };
> > 
> > base-commit: 2f4c51c0f384d7888a04b4815861e6d5fd244d75
> > -- 
> > 2.28.0
Alistair Francis Sept. 1, 2020, 11:17 p.m. UTC | #3
On Mon, Aug 31, 2020 at 10:59 PM Nathan Chancellor
<natechancellor@gmail.com> wrote:
>
> When shutting down the machine running a mainline Linux kernel, the
> following error happens:
>
> $ build/riscv64-softmmu/qemu-system-riscv64 -bios default -M virt \
>     -display none -initrd rootfs.cpio -kernel Image -m 512m \
>     -nodefaults -serial mon:stdio
> ...
> Requesting system poweroff
> [    4.999630] reboot: Power down
> sbi_trap_error: hart0: trap handler failed (error -2)
> sbi_trap_error: hart0: mcause=0x0000000000000007 mtval=0x0000000000100000
> sbi_trap_error: hart0: mepc=0x000000008000d4cc mstatus=0x0000000000001822
> sbi_trap_error: hart0: ra=0x000000008000999e sp=0x0000000080015c78
> sbi_trap_error: hart0: gp=0xffffffe000e76610 tp=0xffffffe0081b89c0
> sbi_trap_error: hart0: s0=0x0000000080015c88 s1=0x0000000000000040
> sbi_trap_error: hart0: a0=0x0000000000000000 a1=0x0000000080004024
> sbi_trap_error: hart0: a2=0x0000000080004024 a3=0x0000000080004024
> sbi_trap_error: hart0: a4=0x0000000000100000 a5=0x0000000000005555
> sbi_trap_error: hart0: a6=0x0000000000004024 a7=0x0000000080011158
> sbi_trap_error: hart0: s2=0x0000000000000000 s3=0x0000000080016000
> sbi_trap_error: hart0: s4=0x0000000000000000 s5=0x0000000000000000
> sbi_trap_error: hart0: s6=0x0000000000000001 s7=0x0000000000000000
> sbi_trap_error: hart0: s8=0x0000000000000000 s9=0x0000000000000000
> sbi_trap_error: hart0: s10=0x0000000000000000 s11=0x0000000000000008
> sbi_trap_error: hart0: t0=0x0000000000000000 t1=0x0000000000000000
> sbi_trap_error: hart0: t2=0x0000000000000000 t3=0x0000000000000000
> sbi_trap_error: hart0: t4=0x0000000000000000 t5=0x0000000000000000
> sbi_trap_error: hart0: t6=0x0000000000000000
>
> The kernel does a 16-bit write when powering off the machine, which
> was allowed before commit 5d971f9e67 ("memory: Revert "memory: accept
> mismatching sizes in memory_region_access_valid""). Make min_access_size
> match reality so that the machine can shut down properly now.
>
> Cc: qemu-stable@nongnu.org
> Fixes: 88a07990fa ("SiFive RISC-V Test Finisher")
> Fixes: 5d971f9e67 ("memory: Revert "memory: accept mismatching sizes in memory_region_access_valid"")
> Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>

Reviewed-by: Alistair Francis <alistair.francis@wdc.com>

Alistair

> ---
>
> Please let me know if the tags are wrong or inappropriate, this is my
> first QEMU patch.
>
>  hw/riscv/sifive_test.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/hw/riscv/sifive_test.c b/hw/riscv/sifive_test.c
> index 0c78fb2c93..8c70dd69df 100644
> --- a/hw/riscv/sifive_test.c
> +++ b/hw/riscv/sifive_test.c
> @@ -59,7 +59,7 @@ static const MemoryRegionOps sifive_test_ops = {
>      .write = sifive_test_write,
>      .endianness = DEVICE_NATIVE_ENDIAN,
>      .valid = {
> -        .min_access_size = 4,
> +        .min_access_size = 2,
>          .max_access_size = 4
>      }
>  };
>
> base-commit: 2f4c51c0f384d7888a04b4815861e6d5fd244d75
> --
> 2.28.0
>
>
Alistair Francis Sept. 1, 2020, 11:59 p.m. UTC | #4
On Mon, Aug 31, 2020 at 10:59 PM Nathan Chancellor
<natechancellor@gmail.com> wrote:
>
> When shutting down the machine running a mainline Linux kernel, the
> following error happens:
>
> $ build/riscv64-softmmu/qemu-system-riscv64 -bios default -M virt \
>     -display none -initrd rootfs.cpio -kernel Image -m 512m \
>     -nodefaults -serial mon:stdio
> ...
> Requesting system poweroff
> [    4.999630] reboot: Power down
> sbi_trap_error: hart0: trap handler failed (error -2)
> sbi_trap_error: hart0: mcause=0x0000000000000007 mtval=0x0000000000100000
> sbi_trap_error: hart0: mepc=0x000000008000d4cc mstatus=0x0000000000001822
> sbi_trap_error: hart0: ra=0x000000008000999e sp=0x0000000080015c78
> sbi_trap_error: hart0: gp=0xffffffe000e76610 tp=0xffffffe0081b89c0
> sbi_trap_error: hart0: s0=0x0000000080015c88 s1=0x0000000000000040
> sbi_trap_error: hart0: a0=0x0000000000000000 a1=0x0000000080004024
> sbi_trap_error: hart0: a2=0x0000000080004024 a3=0x0000000080004024
> sbi_trap_error: hart0: a4=0x0000000000100000 a5=0x0000000000005555
> sbi_trap_error: hart0: a6=0x0000000000004024 a7=0x0000000080011158
> sbi_trap_error: hart0: s2=0x0000000000000000 s3=0x0000000080016000
> sbi_trap_error: hart0: s4=0x0000000000000000 s5=0x0000000000000000
> sbi_trap_error: hart0: s6=0x0000000000000001 s7=0x0000000000000000
> sbi_trap_error: hart0: s8=0x0000000000000000 s9=0x0000000000000000
> sbi_trap_error: hart0: s10=0x0000000000000000 s11=0x0000000000000008
> sbi_trap_error: hart0: t0=0x0000000000000000 t1=0x0000000000000000
> sbi_trap_error: hart0: t2=0x0000000000000000 t3=0x0000000000000000
> sbi_trap_error: hart0: t4=0x0000000000000000 t5=0x0000000000000000
> sbi_trap_error: hart0: t6=0x0000000000000000
>
> The kernel does a 16-bit write when powering off the machine, which
> was allowed before commit 5d971f9e67 ("memory: Revert "memory: accept
> mismatching sizes in memory_region_access_valid""). Make min_access_size
> match reality so that the machine can shut down properly now.
>
> Cc: qemu-stable@nongnu.org
> Fixes: 88a07990fa ("SiFive RISC-V Test Finisher")
> Fixes: 5d971f9e67 ("memory: Revert "memory: accept mismatching sizes in memory_region_access_valid"")
> Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>

Thanks!

Applied to riscv-to-apply.next

Alistair

> ---
>
> Please let me know if the tags are wrong or inappropriate, this is my
> first QEMU patch.
>
>  hw/riscv/sifive_test.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/hw/riscv/sifive_test.c b/hw/riscv/sifive_test.c
> index 0c78fb2c93..8c70dd69df 100644
> --- a/hw/riscv/sifive_test.c
> +++ b/hw/riscv/sifive_test.c
> @@ -59,7 +59,7 @@ static const MemoryRegionOps sifive_test_ops = {
>      .write = sifive_test_write,
>      .endianness = DEVICE_NATIVE_ENDIAN,
>      .valid = {
> -        .min_access_size = 4,
> +        .min_access_size = 2,
>          .max_access_size = 4
>      }
>  };
>
> base-commit: 2f4c51c0f384d7888a04b4815861e6d5fd244d75
> --
> 2.28.0
>
>
Michael Roth Sept. 3, 2020, 9:05 p.m. UTC | #5
Quoting Alistair Francis (2020-09-01 18:59:29)
> On Mon, Aug 31, 2020 at 10:59 PM Nathan Chancellor
> <natechancellor@gmail.com> wrote:
> >
> > When shutting down the machine running a mainline Linux kernel, the
> > following error happens:
> >
> > $ build/riscv64-softmmu/qemu-system-riscv64 -bios default -M virt \
> >     -display none -initrd rootfs.cpio -kernel Image -m 512m \
> >     -nodefaults -serial mon:stdio
> > ...
> > Requesting system poweroff
> > [    4.999630] reboot: Power down
> > sbi_trap_error: hart0: trap handler failed (error -2)
> > sbi_trap_error: hart0: mcause=0x0000000000000007 mtval=0x0000000000100000
> > sbi_trap_error: hart0: mepc=0x000000008000d4cc mstatus=0x0000000000001822
> > sbi_trap_error: hart0: ra=0x000000008000999e sp=0x0000000080015c78
> > sbi_trap_error: hart0: gp=0xffffffe000e76610 tp=0xffffffe0081b89c0
> > sbi_trap_error: hart0: s0=0x0000000080015c88 s1=0x0000000000000040
> > sbi_trap_error: hart0: a0=0x0000000000000000 a1=0x0000000080004024
> > sbi_trap_error: hart0: a2=0x0000000080004024 a3=0x0000000080004024
> > sbi_trap_error: hart0: a4=0x0000000000100000 a5=0x0000000000005555
> > sbi_trap_error: hart0: a6=0x0000000000004024 a7=0x0000000080011158
> > sbi_trap_error: hart0: s2=0x0000000000000000 s3=0x0000000080016000
> > sbi_trap_error: hart0: s4=0x0000000000000000 s5=0x0000000000000000
> > sbi_trap_error: hart0: s6=0x0000000000000001 s7=0x0000000000000000
> > sbi_trap_error: hart0: s8=0x0000000000000000 s9=0x0000000000000000
> > sbi_trap_error: hart0: s10=0x0000000000000000 s11=0x0000000000000008
> > sbi_trap_error: hart0: t0=0x0000000000000000 t1=0x0000000000000000
> > sbi_trap_error: hart0: t2=0x0000000000000000 t3=0x0000000000000000
> > sbi_trap_error: hart0: t4=0x0000000000000000 t5=0x0000000000000000
> > sbi_trap_error: hart0: t6=0x0000000000000000
> >
> > The kernel does a 16-bit write when powering off the machine, which
> > was allowed before commit 5d971f9e67 ("memory: Revert "memory: accept
> > mismatching sizes in memory_region_access_valid""). Make min_access_size
> > match reality so that the machine can shut down properly now.
> >
> > Cc: qemu-stable@nongnu.org
> > Fixes: 88a07990fa ("SiFive RISC-V Test Finisher")
> > Fixes: 5d971f9e67 ("memory: Revert "memory: accept mismatching sizes in memory_region_access_valid"")
> > Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
> 
> Thanks!
> 
> Applied to riscv-to-apply.next

FYI, I'm hoping to pull this patch into the upcoming 5.0.1 stable
release. The freeze is scheduled for 2020-09-20, I will apply this if it
hits master before then.

> 
> Alistair
> 
> > ---
> >
> > Please let me know if the tags are wrong or inappropriate, this is my
> > first QEMU patch.
> >
> >  hw/riscv/sifive_test.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/hw/riscv/sifive_test.c b/hw/riscv/sifive_test.c
> > index 0c78fb2c93..8c70dd69df 100644
> > --- a/hw/riscv/sifive_test.c
> > +++ b/hw/riscv/sifive_test.c
> > @@ -59,7 +59,7 @@ static const MemoryRegionOps sifive_test_ops = {
> >      .write = sifive_test_write,
> >      .endianness = DEVICE_NATIVE_ENDIAN,
> >      .valid = {
> > -        .min_access_size = 4,
> > +        .min_access_size = 2,
> >          .max_access_size = 4
> >      }
> >  };
> >
> > base-commit: 2f4c51c0f384d7888a04b4815861e6d5fd244d75
> > --
> > 2.28.0
> >
> >
>
Alistair Francis Sept. 10, 2020, 6:10 p.m. UTC | #6
On Thu, Sep 3, 2020 at 2:05 PM Michael Roth <mdroth@linux.vnet.ibm.com> wrote:
>
> Quoting Alistair Francis (2020-09-01 18:59:29)
> > On Mon, Aug 31, 2020 at 10:59 PM Nathan Chancellor
> > <natechancellor@gmail.com> wrote:
> > >
> > > When shutting down the machine running a mainline Linux kernel, the
> > > following error happens:
> > >
> > > $ build/riscv64-softmmu/qemu-system-riscv64 -bios default -M virt \
> > >     -display none -initrd rootfs.cpio -kernel Image -m 512m \
> > >     -nodefaults -serial mon:stdio
> > > ...
> > > Requesting system poweroff
> > > [    4.999630] reboot: Power down
> > > sbi_trap_error: hart0: trap handler failed (error -2)
> > > sbi_trap_error: hart0: mcause=0x0000000000000007 mtval=0x0000000000100000
> > > sbi_trap_error: hart0: mepc=0x000000008000d4cc mstatus=0x0000000000001822
> > > sbi_trap_error: hart0: ra=0x000000008000999e sp=0x0000000080015c78
> > > sbi_trap_error: hart0: gp=0xffffffe000e76610 tp=0xffffffe0081b89c0
> > > sbi_trap_error: hart0: s0=0x0000000080015c88 s1=0x0000000000000040
> > > sbi_trap_error: hart0: a0=0x0000000000000000 a1=0x0000000080004024
> > > sbi_trap_error: hart0: a2=0x0000000080004024 a3=0x0000000080004024
> > > sbi_trap_error: hart0: a4=0x0000000000100000 a5=0x0000000000005555
> > > sbi_trap_error: hart0: a6=0x0000000000004024 a7=0x0000000080011158
> > > sbi_trap_error: hart0: s2=0x0000000000000000 s3=0x0000000080016000
> > > sbi_trap_error: hart0: s4=0x0000000000000000 s5=0x0000000000000000
> > > sbi_trap_error: hart0: s6=0x0000000000000001 s7=0x0000000000000000
> > > sbi_trap_error: hart0: s8=0x0000000000000000 s9=0x0000000000000000
> > > sbi_trap_error: hart0: s10=0x0000000000000000 s11=0x0000000000000008
> > > sbi_trap_error: hart0: t0=0x0000000000000000 t1=0x0000000000000000
> > > sbi_trap_error: hart0: t2=0x0000000000000000 t3=0x0000000000000000
> > > sbi_trap_error: hart0: t4=0x0000000000000000 t5=0x0000000000000000
> > > sbi_trap_error: hart0: t6=0x0000000000000000
> > >
> > > The kernel does a 16-bit write when powering off the machine, which
> > > was allowed before commit 5d971f9e67 ("memory: Revert "memory: accept
> > > mismatching sizes in memory_region_access_valid""). Make min_access_size
> > > match reality so that the machine can shut down properly now.
> > >
> > > Cc: qemu-stable@nongnu.org
> > > Fixes: 88a07990fa ("SiFive RISC-V Test Finisher")
> > > Fixes: 5d971f9e67 ("memory: Revert "memory: accept mismatching sizes in memory_region_access_valid"")
> > > Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
> >
> > Thanks!
> >
> > Applied to riscv-to-apply.next
>
> FYI, I'm hoping to pull this patch into the upcoming 5.0.1 stable
> release. The freeze is scheduled for 2020-09-20, I will apply this if it
> hits master before then.

I just sent a PR with this patch. Is this still on track to make it into 5.0.1?

Alistair

>
> >
> > Alistair
> >
> > > ---
> > >
> > > Please let me know if the tags are wrong or inappropriate, this is my
> > > first QEMU patch.
> > >
> > >  hw/riscv/sifive_test.c | 2 +-
> > >  1 file changed, 1 insertion(+), 1 deletion(-)
> > >
> > > diff --git a/hw/riscv/sifive_test.c b/hw/riscv/sifive_test.c
> > > index 0c78fb2c93..8c70dd69df 100644
> > > --- a/hw/riscv/sifive_test.c
> > > +++ b/hw/riscv/sifive_test.c
> > > @@ -59,7 +59,7 @@ static const MemoryRegionOps sifive_test_ops = {
> > >      .write = sifive_test_write,
> > >      .endianness = DEVICE_NATIVE_ENDIAN,
> > >      .valid = {
> > > -        .min_access_size = 4,
> > > +        .min_access_size = 2,
> > >          .max_access_size = 4
> > >      }
> > >  };
> > >
> > > base-commit: 2f4c51c0f384d7888a04b4815861e6d5fd244d75
> > > --
> > > 2.28.0
> > >
> > >
> >
Michael Roth Sept. 11, 2020, 12:26 p.m. UTC | #7
Quoting Alistair Francis (2020-09-10 13:10:43)
> On Thu, Sep 3, 2020 at 2:05 PM Michael Roth <mdroth@linux.vnet.ibm.com> wrote:
> >
> > Quoting Alistair Francis (2020-09-01 18:59:29)
> > > On Mon, Aug 31, 2020 at 10:59 PM Nathan Chancellor
> > > <natechancellor@gmail.com> wrote:
> > > >
> > > > When shutting down the machine running a mainline Linux kernel, the
> > > > following error happens:
> > > >
> > > > $ build/riscv64-softmmu/qemu-system-riscv64 -bios default -M virt \
> > > >     -display none -initrd rootfs.cpio -kernel Image -m 512m \
> > > >     -nodefaults -serial mon:stdio
> > > > ...
> > > > Requesting system poweroff
> > > > [    4.999630] reboot: Power down
> > > > sbi_trap_error: hart0: trap handler failed (error -2)
> > > > sbi_trap_error: hart0: mcause=0x0000000000000007 mtval=0x0000000000100000
> > > > sbi_trap_error: hart0: mepc=0x000000008000d4cc mstatus=0x0000000000001822
> > > > sbi_trap_error: hart0: ra=0x000000008000999e sp=0x0000000080015c78
> > > > sbi_trap_error: hart0: gp=0xffffffe000e76610 tp=0xffffffe0081b89c0
> > > > sbi_trap_error: hart0: s0=0x0000000080015c88 s1=0x0000000000000040
> > > > sbi_trap_error: hart0: a0=0x0000000000000000 a1=0x0000000080004024
> > > > sbi_trap_error: hart0: a2=0x0000000080004024 a3=0x0000000080004024
> > > > sbi_trap_error: hart0: a4=0x0000000000100000 a5=0x0000000000005555
> > > > sbi_trap_error: hart0: a6=0x0000000000004024 a7=0x0000000080011158
> > > > sbi_trap_error: hart0: s2=0x0000000000000000 s3=0x0000000080016000
> > > > sbi_trap_error: hart0: s4=0x0000000000000000 s5=0x0000000000000000
> > > > sbi_trap_error: hart0: s6=0x0000000000000001 s7=0x0000000000000000
> > > > sbi_trap_error: hart0: s8=0x0000000000000000 s9=0x0000000000000000
> > > > sbi_trap_error: hart0: s10=0x0000000000000000 s11=0x0000000000000008
> > > > sbi_trap_error: hart0: t0=0x0000000000000000 t1=0x0000000000000000
> > > > sbi_trap_error: hart0: t2=0x0000000000000000 t3=0x0000000000000000
> > > > sbi_trap_error: hart0: t4=0x0000000000000000 t5=0x0000000000000000
> > > > sbi_trap_error: hart0: t6=0x0000000000000000
> > > >
> > > > The kernel does a 16-bit write when powering off the machine, which
> > > > was allowed before commit 5d971f9e67 ("memory: Revert "memory: accept
> > > > mismatching sizes in memory_region_access_valid""). Make min_access_size
> > > > match reality so that the machine can shut down properly now.
> > > >
> > > > Cc: qemu-stable@nongnu.org
> > > > Fixes: 88a07990fa ("SiFive RISC-V Test Finisher")
> > > > Fixes: 5d971f9e67 ("memory: Revert "memory: accept mismatching sizes in memory_region_access_valid"")
> > > > Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
> > >
> > > Thanks!
> > >
> > > Applied to riscv-to-apply.next
> >
> > FYI, I'm hoping to pull this patch into the upcoming 5.0.1 stable
> > release. The freeze is scheduled for 2020-09-20, I will apply this if it
> > hits master before then.
> 
> I just sent a PR with this patch. Is this still on track to make it into 5.0.1?

Since it's not likely to invalidate any testing on my end outside of the
ones built into QEMU I can probably still slip it in if it hits master
by Monday, or maybe just grab it from your tree.

> 
> Alistair
> 
> >
> > >
> > > Alistair
> > >
> > > > ---
> > > >
> > > > Please let me know if the tags are wrong or inappropriate, this is my
> > > > first QEMU patch.
> > > >
> > > >  hw/riscv/sifive_test.c | 2 +-
> > > >  1 file changed, 1 insertion(+), 1 deletion(-)
> > > >
> > > > diff --git a/hw/riscv/sifive_test.c b/hw/riscv/sifive_test.c
> > > > index 0c78fb2c93..8c70dd69df 100644
> > > > --- a/hw/riscv/sifive_test.c
> > > > +++ b/hw/riscv/sifive_test.c
> > > > @@ -59,7 +59,7 @@ static const MemoryRegionOps sifive_test_ops = {
> > > >      .write = sifive_test_write,
> > > >      .endianness = DEVICE_NATIVE_ENDIAN,
> > > >      .valid = {
> > > > -        .min_access_size = 4,
> > > > +        .min_access_size = 2,
> > > >          .max_access_size = 4
> > > >      }
> > > >  };
> > > >
> > > > base-commit: 2f4c51c0f384d7888a04b4815861e6d5fd244d75
> > > > --
> > > > 2.28.0
> > > >
> > > >
> > >
Alistair Francis Sept. 14, 2020, 4:07 p.m. UTC | #8
On Fri, Sep 11, 2020 at 5:26 AM Michael Roth <mdroth@linux.vnet.ibm.com> wrote:
>
> Quoting Alistair Francis (2020-09-10 13:10:43)
> > On Thu, Sep 3, 2020 at 2:05 PM Michael Roth <mdroth@linux.vnet.ibm.com> wrote:
> > >
> > > Quoting Alistair Francis (2020-09-01 18:59:29)
> > > > On Mon, Aug 31, 2020 at 10:59 PM Nathan Chancellor
> > > > <natechancellor@gmail.com> wrote:
> > > > >
> > > > > When shutting down the machine running a mainline Linux kernel, the
> > > > > following error happens:
> > > > >
> > > > > $ build/riscv64-softmmu/qemu-system-riscv64 -bios default -M virt \
> > > > >     -display none -initrd rootfs.cpio -kernel Image -m 512m \
> > > > >     -nodefaults -serial mon:stdio
> > > > > ...
> > > > > Requesting system poweroff
> > > > > [    4.999630] reboot: Power down
> > > > > sbi_trap_error: hart0: trap handler failed (error -2)
> > > > > sbi_trap_error: hart0: mcause=0x0000000000000007 mtval=0x0000000000100000
> > > > > sbi_trap_error: hart0: mepc=0x000000008000d4cc mstatus=0x0000000000001822
> > > > > sbi_trap_error: hart0: ra=0x000000008000999e sp=0x0000000080015c78
> > > > > sbi_trap_error: hart0: gp=0xffffffe000e76610 tp=0xffffffe0081b89c0
> > > > > sbi_trap_error: hart0: s0=0x0000000080015c88 s1=0x0000000000000040
> > > > > sbi_trap_error: hart0: a0=0x0000000000000000 a1=0x0000000080004024
> > > > > sbi_trap_error: hart0: a2=0x0000000080004024 a3=0x0000000080004024
> > > > > sbi_trap_error: hart0: a4=0x0000000000100000 a5=0x0000000000005555
> > > > > sbi_trap_error: hart0: a6=0x0000000000004024 a7=0x0000000080011158
> > > > > sbi_trap_error: hart0: s2=0x0000000000000000 s3=0x0000000080016000
> > > > > sbi_trap_error: hart0: s4=0x0000000000000000 s5=0x0000000000000000
> > > > > sbi_trap_error: hart0: s6=0x0000000000000001 s7=0x0000000000000000
> > > > > sbi_trap_error: hart0: s8=0x0000000000000000 s9=0x0000000000000000
> > > > > sbi_trap_error: hart0: s10=0x0000000000000000 s11=0x0000000000000008
> > > > > sbi_trap_error: hart0: t0=0x0000000000000000 t1=0x0000000000000000
> > > > > sbi_trap_error: hart0: t2=0x0000000000000000 t3=0x0000000000000000
> > > > > sbi_trap_error: hart0: t4=0x0000000000000000 t5=0x0000000000000000
> > > > > sbi_trap_error: hart0: t6=0x0000000000000000
> > > > >
> > > > > The kernel does a 16-bit write when powering off the machine, which
> > > > > was allowed before commit 5d971f9e67 ("memory: Revert "memory: accept
> > > > > mismatching sizes in memory_region_access_valid""). Make min_access_size
> > > > > match reality so that the machine can shut down properly now.
> > > > >
> > > > > Cc: qemu-stable@nongnu.org
> > > > > Fixes: 88a07990fa ("SiFive RISC-V Test Finisher")
> > > > > Fixes: 5d971f9e67 ("memory: Revert "memory: accept mismatching sizes in memory_region_access_valid"")
> > > > > Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
> > > >
> > > > Thanks!
> > > >
> > > > Applied to riscv-to-apply.next
> > >
> > > FYI, I'm hoping to pull this patch into the upcoming 5.0.1 stable
> > > release. The freeze is scheduled for 2020-09-20, I will apply this if it
> > > hits master before then.
> >
> > I just sent a PR with this patch. Is this still on track to make it into 5.0.1?
>
> Since it's not likely to invalidate any testing on my end outside of the
> ones built into QEMU I can probably still slip it in if it hits master
> by Monday, or maybe just grab it from your tree.

This is in master now, I hope that's enough time to make it in.

Let me know if you want me to do anything else.

Alistair

>
> >
> > Alistair
> >
> > >
> > > >
> > > > Alistair
> > > >
> > > > > ---
> > > > >
> > > > > Please let me know if the tags are wrong or inappropriate, this is my
> > > > > first QEMU patch.
> > > > >
> > > > >  hw/riscv/sifive_test.c | 2 +-
> > > > >  1 file changed, 1 insertion(+), 1 deletion(-)
> > > > >
> > > > > diff --git a/hw/riscv/sifive_test.c b/hw/riscv/sifive_test.c
> > > > > index 0c78fb2c93..8c70dd69df 100644
> > > > > --- a/hw/riscv/sifive_test.c
> > > > > +++ b/hw/riscv/sifive_test.c
> > > > > @@ -59,7 +59,7 @@ static const MemoryRegionOps sifive_test_ops = {
> > > > >      .write = sifive_test_write,
> > > > >      .endianness = DEVICE_NATIVE_ENDIAN,
> > > > >      .valid = {
> > > > > -        .min_access_size = 4,
> > > > > +        .min_access_size = 2,
> > > > >          .max_access_size = 4
> > > > >      }
> > > > >  };
> > > > >
> > > > > base-commit: 2f4c51c0f384d7888a04b4815861e6d5fd244d75
> > > > > --
> > > > > 2.28.0
> > > > >
> > > > >
> > > >
Michael Roth Sept. 14, 2020, 9:09 p.m. UTC | #9
Quoting Alistair Francis (2020-09-14 11:07:26)
> On Fri, Sep 11, 2020 at 5:26 AM Michael Roth <mdroth@linux.vnet.ibm.com> wrote:
> >
> > Quoting Alistair Francis (2020-09-10 13:10:43)
> > > On Thu, Sep 3, 2020 at 2:05 PM Michael Roth <mdroth@linux.vnet.ibm.com> wrote:
> > > >
> > > > Quoting Alistair Francis (2020-09-01 18:59:29)
> > > > > On Mon, Aug 31, 2020 at 10:59 PM Nathan Chancellor
> > > > > <natechancellor@gmail.com> wrote:
> > > > > >
> > > > > > When shutting down the machine running a mainline Linux kernel, the
> > > > > > following error happens:
> > > > > >
> > > > > > $ build/riscv64-softmmu/qemu-system-riscv64 -bios default -M virt \
> > > > > >     -display none -initrd rootfs.cpio -kernel Image -m 512m \
> > > > > >     -nodefaults -serial mon:stdio
> > > > > > ...
> > > > > > Requesting system poweroff
> > > > > > [    4.999630] reboot: Power down
> > > > > > sbi_trap_error: hart0: trap handler failed (error -2)
> > > > > > sbi_trap_error: hart0: mcause=0x0000000000000007 mtval=0x0000000000100000
> > > > > > sbi_trap_error: hart0: mepc=0x000000008000d4cc mstatus=0x0000000000001822
> > > > > > sbi_trap_error: hart0: ra=0x000000008000999e sp=0x0000000080015c78
> > > > > > sbi_trap_error: hart0: gp=0xffffffe000e76610 tp=0xffffffe0081b89c0
> > > > > > sbi_trap_error: hart0: s0=0x0000000080015c88 s1=0x0000000000000040
> > > > > > sbi_trap_error: hart0: a0=0x0000000000000000 a1=0x0000000080004024
> > > > > > sbi_trap_error: hart0: a2=0x0000000080004024 a3=0x0000000080004024
> > > > > > sbi_trap_error: hart0: a4=0x0000000000100000 a5=0x0000000000005555
> > > > > > sbi_trap_error: hart0: a6=0x0000000000004024 a7=0x0000000080011158
> > > > > > sbi_trap_error: hart0: s2=0x0000000000000000 s3=0x0000000080016000
> > > > > > sbi_trap_error: hart0: s4=0x0000000000000000 s5=0x0000000000000000
> > > > > > sbi_trap_error: hart0: s6=0x0000000000000001 s7=0x0000000000000000
> > > > > > sbi_trap_error: hart0: s8=0x0000000000000000 s9=0x0000000000000000
> > > > > > sbi_trap_error: hart0: s10=0x0000000000000000 s11=0x0000000000000008
> > > > > > sbi_trap_error: hart0: t0=0x0000000000000000 t1=0x0000000000000000
> > > > > > sbi_trap_error: hart0: t2=0x0000000000000000 t3=0x0000000000000000
> > > > > > sbi_trap_error: hart0: t4=0x0000000000000000 t5=0x0000000000000000
> > > > > > sbi_trap_error: hart0: t6=0x0000000000000000
> > > > > >
> > > > > > The kernel does a 16-bit write when powering off the machine, which
> > > > > > was allowed before commit 5d971f9e67 ("memory: Revert "memory: accept
> > > > > > mismatching sizes in memory_region_access_valid""). Make min_access_size
> > > > > > match reality so that the machine can shut down properly now.
> > > > > >
> > > > > > Cc: qemu-stable@nongnu.org
> > > > > > Fixes: 88a07990fa ("SiFive RISC-V Test Finisher")
> > > > > > Fixes: 5d971f9e67 ("memory: Revert "memory: accept mismatching sizes in memory_region_access_valid"")
> > > > > > Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
> > > > >
> > > > > Thanks!
> > > > >
> > > > > Applied to riscv-to-apply.next
> > > >
> > > > FYI, I'm hoping to pull this patch into the upcoming 5.0.1 stable
> > > > release. The freeze is scheduled for 2020-09-20, I will apply this if it
> > > > hits master before then.
> > >
> > > I just sent a PR with this patch. Is this still on track to make it into 5.0.1?
> >
> > Since it's not likely to invalidate any testing on my end outside of the
> > ones built into QEMU I can probably still slip it in if it hits master
> > by Monday, or maybe just grab it from your tree.
> 
> This is in master now, I hope that's enough time to make it in.

Yes I pulled it in yesterday:

  https://github.com/mdroth/qemu/commits/stable-5.0-staging

> 
> Let me know if you want me to do anything else.

Thanks!

> 
> Alistair
> 
> >
> > >
> > > Alistair
> > >
> > > >
> > > > >
> > > > > Alistair
> > > > >
> > > > > > ---
> > > > > >
> > > > > > Please let me know if the tags are wrong or inappropriate, this is my
> > > > > > first QEMU patch.
> > > > > >
> > > > > >  hw/riscv/sifive_test.c | 2 +-
> > > > > >  1 file changed, 1 insertion(+), 1 deletion(-)
> > > > > >
> > > > > > diff --git a/hw/riscv/sifive_test.c b/hw/riscv/sifive_test.c
> > > > > > index 0c78fb2c93..8c70dd69df 100644
> > > > > > --- a/hw/riscv/sifive_test.c
> > > > > > +++ b/hw/riscv/sifive_test.c
> > > > > > @@ -59,7 +59,7 @@ static const MemoryRegionOps sifive_test_ops = {
> > > > > >      .write = sifive_test_write,
> > > > > >      .endianness = DEVICE_NATIVE_ENDIAN,
> > > > > >      .valid = {
> > > > > > -        .min_access_size = 4,
> > > > > > +        .min_access_size = 2,
> > > > > >          .max_access_size = 4
> > > > > >      }
> > > > > >  };
> > > > > >
> > > > > > base-commit: 2f4c51c0f384d7888a04b4815861e6d5fd244d75
> > > > > > --
> > > > > > 2.28.0
> > > > > >
> > > > > >
> > > > >
diff mbox series

Patch

diff --git a/hw/riscv/sifive_test.c b/hw/riscv/sifive_test.c
index 0c78fb2c93..8c70dd69df 100644
--- a/hw/riscv/sifive_test.c
+++ b/hw/riscv/sifive_test.c
@@ -59,7 +59,7 @@  static const MemoryRegionOps sifive_test_ops = {
     .write = sifive_test_write,
     .endianness = DEVICE_NATIVE_ENDIAN,
     .valid = {
-        .min_access_size = 4,
+        .min_access_size = 2,
         .max_access_size = 4
     }
 };