On 2015/08/29 13:23, [email protected] wrote:
> panic: free: size too large 18446744073708503040 > 32 (0xffff80000052eb40)
> type
> memdesc
> Stopped at Debugger+09: leave
> RUN ...
> ddb{0}> trace
> Debuggger() at Debugger+0x9
> panic() at panic+0xfe
> free() at free+0xc9
> mem_ioctl() at mem_ioctl+0x149
> VOP_IOCTL() at VOP_IOCTL+0x44
> vn_ioctl() at vn_ioctl+0x77
> sys_ioctl() at sys_ioctl+0x18b
> syscall() at syscall+0x358
> --- syscall (number 54) ---
> This must be due to a commit from between 3PM UTC on Aug 27 (kernel
> built from then boots fine) and 5PM UTC on Aug 28 (kernel panics).
> I can try to bisect the precise commit sometime tomorrow.
sys/arch/amd64/amd64/mem.c r1.26
I think this will fix it.
Index: mem.c
===================================================================
RCS file: /cvs/src/sys/arch/amd64/amd64/mem.c,v
retrieving revision 1.26
diff -u -p -r1.26 mem.c
--- mem.c 28 Aug 2015 00:03:53 -0000 1.26
+++ mem.c 29 Aug 2015 11:35:55 -0000
@@ -299,7 +299,7 @@ mem_ioctl(dev_t dev, u_long cmd, caddr_t
md->mr_owner[sizeof(md->mr_owner) - 1] = 0;
if (error == 0)
error = mem_range_attr_set(md, &mo->mo_arg[0]);
- free(md, M_MEMDESC, nd * sizeof(struct mem_range_desc));
+ free(md, M_MEMDESC, sizeof(struct mem_range_desc));
break;
}
return (error);