According to the author..

"I've been having a problem running the patches [committed to current]
installed with the COMPAT_LINUX_THREADS option along
with the VM_STACK patches I did.  I'm not sure what
the problem is, since it seemed to work before.

In any event, the attached patch fixes the problem for
me.  While I've had no report of problems from anyone
else, possibly it would be wise to commit the patch
until the problem is found.

Also, there was some left-over junk in the linux_misc.c
file from some earlier work I did.  The attached patch
cleans that up too."

Submitted by: "Richard Seaman, Jr." <dick@tar.com>
This commit is contained in:
Julian Elischer 1998-12-24 21:21:20 +00:00
parent d2555c56aa
commit 1b88e5d756
2 changed files with 8 additions and 18 deletions

View File

@ -25,7 +25,7 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* $Id: linux_misc.c,v 1.47 1998/12/10 13:47:18 jkh Exp $
* $Id: linux_misc.c,v 1.48 1998/12/19 02:55:33 julian Exp $
*/
#include <sys/param.h>
@ -583,12 +583,7 @@ linux_clone(struct proc *p, struct linux_clone_args *args)
{
int error, ff = RFPROC;
struct proc *p2;
int growable;
int initstacksize;
int maxstacksize;
int exit_signal;
vm_map_entry_t entry;
vm_map_t map;
vm_offset_t start;
struct rfork_args rf_args;
@ -630,7 +625,7 @@ linux_clone(struct proc *p, struct linux_clone_args *args)
p2 = pfind(p->p_retval[0]);
if (p2 == 0)
return ESRCH;
p2->p_sigparent = exit_signal;
p2->p_md.md_regs->tf_esp = (unsigned int)args->stack;
@ -693,14 +688,14 @@ linux_mmap(struct proc *p, struct linux_mmap_args *args)
bsd_args.len = linux_args.len;
#else
#if !defined(USE_VM_STACK) && !defined(USE_VM_STACK_FOR_EXEC)
/*#if !defined(USE_VM_STACK) && !defined(USE_VM_STACK_FOR_EXEC)*/
/* Linux Threads will map into the proc stack space, unless
we prevent it. This causes problems if we're not using
our VM_STACK options.
*/
if ((unsigned int)linux_args.addr + linux_args.len > (USRSTACK - MAXSSIZ))
return (EINVAL);
#endif
/*#endif*/
if (linux_args.flags & LINUX_MAP_GROWSDOWN) {

View File

@ -25,7 +25,7 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* $Id: linux_misc.c,v 1.47 1998/12/10 13:47:18 jkh Exp $
* $Id: linux_misc.c,v 1.48 1998/12/19 02:55:33 julian Exp $
*/
#include <sys/param.h>
@ -583,12 +583,7 @@ linux_clone(struct proc *p, struct linux_clone_args *args)
{
int error, ff = RFPROC;
struct proc *p2;
int growable;
int initstacksize;
int maxstacksize;
int exit_signal;
vm_map_entry_t entry;
vm_map_t map;
vm_offset_t start;
struct rfork_args rf_args;
@ -630,7 +625,7 @@ linux_clone(struct proc *p, struct linux_clone_args *args)
p2 = pfind(p->p_retval[0]);
if (p2 == 0)
return ESRCH;
p2->p_sigparent = exit_signal;
p2->p_md.md_regs->tf_esp = (unsigned int)args->stack;
@ -693,14 +688,14 @@ linux_mmap(struct proc *p, struct linux_mmap_args *args)
bsd_args.len = linux_args.len;
#else
#if !defined(USE_VM_STACK) && !defined(USE_VM_STACK_FOR_EXEC)
/*#if !defined(USE_VM_STACK) && !defined(USE_VM_STACK_FOR_EXEC)*/
/* Linux Threads will map into the proc stack space, unless
we prevent it. This causes problems if we're not using
our VM_STACK options.
*/
if ((unsigned int)linux_args.addr + linux_args.len > (USRSTACK - MAXSSIZ))
return (EINVAL);
#endif
/*#endif*/
if (linux_args.flags & LINUX_MAP_GROWSDOWN) {