Date: Thu, 27 Feb 2003 10:56:22 -0800 From: Milo Hyson <milo@cyberlifelabs.com> To: Bruce Evans <bde@zeta.org.au> Cc: FreeBSD Emulation List <freebsd-emulation@FreeBSD.ORG> Subject: Re: Working on IBM JDK fix Message-ID: <3E5E5F56.90605@cyberlifelabs.com> References: <20030214033116.F4167-100000@gamplex.bde.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Bruce Evans wrote: > % /* allocate user ldt */ > % if (!pldt || largest_ld >= pldt->ldt_len) { > % struct proc_ldt *new_ldt = user_ldt_alloc(mdp, largest_ld); > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > > But we use `largest_ld' for the size of the table here. > > Try adding 1 here. No, that doesn't solve the problem. I'm still seeing the same traps. That's definitely a bug that should be fixed though. According to the Linux kernel references on modify_ldt(), function codes 0x01 and 0x11 are both used to write a single LDT entry. The only difference between them is that 0x11 allows control of the useable/available bit. Both return either 0 on success or -1 on error. They never return anything but those two values. Looking at the Linux kernel source confirms this. I'm wondering if the 8190 being returned by FreeBSD is confusing the JDK into thinking the call failed when in fact it succeeded. -- Milo Hyson CyberLife Labs To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-emulation" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3E5E5F56.90605>