Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 16 Aug 2007 22:23:24 GMT
From:      Jesper Brix Rosenkilde <jbr@FreeBSD.org>
To:        Perforce Change Reviews <perforce@FreeBSD.org>
Subject:   PERFORCE change 125242 for review
Message-ID:  <200708162223.l7GMNO8K033300@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=125242

Change 125242 by jbr@jbr_bob on 2007/08/16 22:22:42

	Clean up

Affected files ...

.. //depot/projects/soc2007/jbr-syscall/src/sys/kern/kern_exec.c#15 edit
.. //depot/projects/soc2007/jbr-syscall/src/sys/sys/proc.h#5 edit
.. //depot/projects/soc2007/jbr-syscall/src/sys/vm/vm_map.c#10 edit
.. //depot/projects/soc2007/jbr-syscall/src/sys/vm/vm_map.h#6 edit

Differences ...

==== //depot/projects/soc2007/jbr-syscall/src/sys/kern/kern_exec.c#15 (text+ko) ====

@@ -789,9 +789,6 @@
 	if (imgp->firstpage != NULL)
 		exec_unmap_first_page(imgp);
 
-	if (p->p_kernsysshm != NULL)
-		exec_unmap_sysshm(imgp);
-
 	if (imgp->vp != NULL) {
 		NDFREE(ndp, NDF_ONLY_PNBUF);
 		vput(imgp->vp);
@@ -914,16 +911,11 @@
      struct image_params *imgp;
 {
 	int error;
-	struct proc *p = imgp->proc;
 	vm_map_t map = &imgp->proc->p_vmspace->vm_map;
 	vm_offset_t *addr = &imgp->proc->p_usrsysshm;
-	struct sf_buf *kern_buf = p->p_kernsysshm;;
 	int test = 42;
 
-	if (p->p_kernsysshm != NULL)
-		exec_unmap_sysshm(imgp);
-
-	error = vm_map_sysshm(map, addr, kern_buf, 42);
+	error = vm_map_sysshm(map, addr, 42);
 
 	copyout((caddr_t) &test, (caddr_t) *addr, sizeof(int)); 
 

==== //depot/projects/soc2007/jbr-syscall/src/sys/sys/proc.h#5 (text+ko) ====

@@ -577,7 +577,6 @@
 	struct label	*p_label;	/* (*) Proc (not subject) MAC label. */
 	struct p_sched	*p_sched;	/* (*) Scheduler-specific data. */
 	vm_offset_t	p_usrsysshm;
-	struct sf_buf 	*p_kernsysshm;
 	STAILQ_HEAD(, ktr_request)	p_ktr;	/* (o) KTR event queue. */
 	LIST_HEAD(, mqueue_notifier)	p_mqnotifier; /* (c) mqueue notifiers.*/
 };

==== //depot/projects/soc2007/jbr-syscall/src/sys/vm/vm_map.c#10 (text+ko) ====

@@ -2988,13 +2988,10 @@
  * process.
  */
 int
-vm_map_sysshm(vm_map_t map, vm_offset_t *usr_addr, struct sf_buf *kern_buf, 
-		vm_size_t size)
+vm_map_sysshm(vm_map_t map, vm_offset_t *usr_addr, vm_size_t size)
 {
-	vm_object_t object;
-	vm_page_t sysshm_page;
+	size = round_page(size);
 
-	size = round_page(size);
 	PROC_LOCK(curthread->td_proc);
 
 	*usr_addr = round_page((vm_offset_t)
@@ -3002,38 +2999,9 @@
 	    lim_cur(curthread->td_proc, RLIMIT_DATA);
 	PROC_UNLOCK(curthread->td_proc);
 	
-	object = vm_object_allocate(OBJT_DEFAULT, 1);
-	if (!object)
-		panic("vm_map_sysshm: cannot allocate object");
-	
-	VM_OBJECT_LOCK(object);
-	sysshm_page = vm_page_alloc(object, 0, VM_ALLOC_NORMAL);
-	if (!sysshm_page)
-		panic("vm_page_alloc: cannot allocate sysshm_page");
-
-	sysshm_page->valid = VM_PAGE_BITS_ALL;
-	VM_OBJECT_UNLOCK(object);
-
-	if (vm_map_findspace(map, *usr_addr, size, usr_addr))
-		return (1);
-
-	if (vm_map_insert(map, object, 0, *usr_addr, *usr_addr + size, 
-				VM_PROT_RW, VM_PROT_RW, 0))
-		panic("vm_map_sysshm: cannot insert object into vm_map.");
-
-	pmap_enter(map->pmap, *usr_addr, sysshm_page, VM_PROT_RW, TRUE);
-
-	VM_OBJECT_LOCK(object);
-	vm_page_lock_queues();
-	vm_page_wire(sysshm_page);
-	vm_page_activate(sysshm_page);
-	vm_page_unlock_queues();
-	vm_page_wakeup(sysshm_page);
-	VM_OBJECT_UNLOCK(object);
-
-	kern_buf = sf_buf_alloc(sysshm_page, SFB_NOWAIT);
-	if (!kern_buf)
-		return 1;
+	if (vm_map_find(map, NULL, *usr_addr, usr_addr, size, TRUE, VM_PROT_RW,
+				VM_PROT_RW, 0))
+		panic("vm_map_sysshm: cannot allocated sysshm.");
 
 	return (0);
 }

==== //depot/projects/soc2007/jbr-syscall/src/sys/vm/vm_map.h#6 (text+ko) ====

@@ -354,7 +354,7 @@
 void vm_map_simplify_entry (vm_map_t, vm_map_entry_t);
 void vm_init2 (void);
 int vm_map_stack (vm_map_t, vm_offset_t, vm_size_t, vm_prot_t, vm_prot_t, int);
-int vm_map_sysshm(vm_map_t, vm_offset_t *, struct sf_buf *, vm_size_t);
+int vm_map_sysshm(vm_map_t, vm_offset_t *, vm_size_t);
 int vm_map_growstack (struct proc *p, vm_offset_t addr);
 int vm_map_unwire(vm_map_t map, vm_offset_t start, vm_offset_t end,
     int flags);



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200708162223.l7GMNO8K033300>