Re: [PATCH] linux-user/mmap.c: fix integer underflow in target_mremap

2020-05-18 Thread Jonathan Marler
Been a few more days. Not sure how often I should be pinging. If this is too much to ping every few days let me know. On Fri, May 15, 2020 at 7:36 AM Jonathan Marler wrote: > Been a couple weeks, checking to see if anyone has looked at this. > > On Sat, May 2, 2020 at 5:43 PM Jonath

Re: [PATCH] linux-user/mmap.c: fix integer underflow in target_mremap

2020-05-15 Thread Jonathan Marler
Been a couple weeks, checking to see if anyone has looked at this. On Sat, May 2, 2020 at 5:43 PM Jonathan Marler wrote: > FYI, I applied this patch to the qemu build that zig uses to run > non-native tests ( > https://github.com/ziglang/qemu-static/blob/master/patch/mremap-under

[Bug 1876373] Re: segfault mremap 4096

2020-05-02 Thread Jonathan Marler
FYI, first patch in the previous comment was wrong. This new patch is the correct one: https://lists.gnu.org/archive/html/qemu- devel/2020-05/msg00183.html -- You received this bug notification because you are a member of qemu- devel-ml, which is subscribed to QEMU. https://bugs.launchpad.net/bu

Re: [PATCH] linux-user/mmap.c: fix integer underflow in target_mremap

2020-05-02 Thread Jonathan Marler
at 10:12 AM Jonathan Marler wrote: > Fixes: https://bugs.launchpad.net/bugs/1876373 > > This code path in mmap occurs when a page size is decreased with mremap. > When a section of pages is shrunk, qemu calls mmap_reserve on the pages > that were released. However, it has the

[PATCH] linux-user/mmap.c: fix integer underflow in target_mremap

2020-05-02 Thread Jonathan Marler
from the smaller new_size. Instead, it should be subtracting the smaller new_size from the larger old_size. You can also see in the previous line of the change that this mmap_reserve call only occurs when old_size > new_size. Signed-off-by: Jonathan Marler --- linux-user/mmap.c | 2 +- 1 f

Re: [PATCH] linux-user/mmap.c: fix integer underflow in target_mremap

2020-05-02 Thread Jonathan Marler
g > > Thanks, > Laurent > > Le 02/05/2020 à 09:49, Jonathan Marler a écrit : > > Signed-off-by: Jonathan Marler > > --- > > linux-user/mmap.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/linux-user/mmap.c b/linux-u

[Bug 1876373] Re: segfault mremap 4096

2020-05-01 Thread Jonathan Marler
I've submitted a patch, this is my first qemu patch so sorry if I didn't format it correctly: https://lists.gnu.org/archive/html/qemu- trivial/2020-05/msg0.html -- You received this bug notification because you are a member of qemu- devel-ml, which is subscribed to QEMU. https://bugs.launchpa

[Bug 1876373] Re: segfault mremap 4096

2020-05-01 Thread Jonathan Marler
Thanks to @LemonBoy for finding this: It looks like this issue my be caused by this chunk of code in linux- user/mmap.c if (prot == 0) { host_addr = mremap(g2h(old_addr), old_size, new_size, flags); if (host_addr != MAP_FAILED && reserved_va && old_size > new_size)

[Bug 1876373] [NEW] segfault mremap 4096

2020-05-01 Thread Jonathan Marler
Public bug reported: a qemu-hosted process segfaults when the program calls mremap to shrink the size of a buffer to 4096 that was allocated with mmap. See below for a C program to reproduce this issue. I was able to compile this program for both i386 and 32-bit arm, and use qemu-i386 and qemu-ar

[Qemu-devel] [Bug 1790975] Re: Default arm virt machine broken

2018-09-07 Thread Jonathan Marler
LPAE is actually disabled in my kernel config. Knowing the cause now, I can see that qemu would not be able to detect this problem. This error should have been detected in the linux kernel with an indication that the ECAM window was using a 40-bit address but LPAE was not enabled. ** Changed in:

[Qemu-devel] [Bug 1790975] Re: Default arm virt machine broken

2018-09-06 Thread Jonathan Marler
** Summary changed: - arm virt ecam pcie conflict + Default arm virt machine broken ** Description changed: This occurs on qemu_v3.0.0 but not on qemu_v2.12.2 (built from qemu_v3.0.0 tag on github) Symptom: You'll see something like this in the kernel output: [1.285210] OF: PCI

[Qemu-devel] [Bug 1790975] Re: arm virt ecam pcie conflict

2018-09-06 Thread Jonathan Marler
I tried to triage this a bit today. I'm running a 32-bit linux kernel and I think that's the problem. The ECAM address base is at 0x401000, but it gets truncated to 0x1000 because it's only a 32-bit kernel, but since it's truncated, it conflicts with VIRT_PCIE_MMIO (see hw/arm/virt.c) who

[Qemu-devel] [Bug 1790975] Re: arm virt ecam pcie conflict

2018-09-05 Thread Jonathan Marler
Oh, I forgot, I should have also posted the relevant DTS contents: pcie@1000 { interrupt-map-mask = <0x1800 0x0 0x0 0x7>; interrupt-map = <0x0 0x0 0x0 0x1 0x8001 0x0 0x0 0x0 0x3 0x4 0x0 0x0 0x0 0x2 0x8001 0x0 0x0 0x0 0x4 0x4 0x0 0x0 0x0 0x3 0x8001 0x0 0

[Qemu-devel] [Bug 1790975] [NEW] arm virt ecam pcie conflict

2018-09-05 Thread Jonathan Marler
Public bug reported: This occurs on qemu_v3.0.0 but not on qemu_v2.12.2 (built from qemu_v3.0.0 tag on github) Symptom: You'll see something like this in the kernel output: [1.285210] OF: PCI: host bridge /pcie@1000 ranges: [1.286246] OF: PCI:IO 0x3eff..0x3eff -> 0x00

[Qemu-devel] [Bug 1776486] [NEW] detect error when kernel and initrd images exceed ram size

2018-06-12 Thread Jonathan Marler
Public bug reported: I was unable to figure out why my VM wasn't booting when I added a "-initrd" image. I would launch qemu and get no output, and no error message, it would just spin. Turns out my initrd image was around 270 MB but I wasn't giving an explicit ram size to qemu. I was told the

[Qemu-devel] [PATCH] handle all fdt_get_phandle_errors

2018-05-04 Thread Jonathan Marler
Signed-off-by: Jonathan Marler --- device_tree.c | 8 ++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/device_tree.c b/device_tree.c index 52c3358..2b75905 100644 --- a/device_tree.c +++ b/device_tree.c @@ -379,8 +379,12 @@ uint32_t qemu_fdt_get_phandle(void *fdt, const