Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 3 May 2002 11:15:54 -0700 (PDT)
From:      Julian Elischer <julian@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 10747 for review
Message-ID:  <200205031815.g43IFsE38744@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://people.freebsd.org/~peter/p4db/chv.cgi?CH=10747

Change 10747 by julian@julian_jules1 on 2002/05/03 11:15:43

	An MFC 
	BUT!
	ALso includes a rewritten but probably bogus fork1()
	(diff reduction version)
	this is probably bogus because:
	1/ I have not tried compile it.
	2/ it tries calling the thread single threading stuff without having
	locked the proc.
	3/ generally all the locking needs checking

Affected files ...

... //depot/projects/kse/sys/dev/aac/aac.c#21 integrate
... //depot/projects/kse/sys/dev/aac/aac_cam.c#2 integrate
... //depot/projects/kse/sys/dev/drm/drm_fops.h#2 integrate
... //depot/projects/kse/sys/dev/em/if_em.c#6 integrate
... //depot/projects/kse/sys/dev/my/if_my.c#3 integrate
... //depot/projects/kse/sys/dev/usb/usbdi.c#8 integrate
... //depot/projects/kse/sys/fs/deadfs/dead_vnops.c#3 integrate
... //depot/projects/kse/sys/fs/devfs/devfs_vfsops.c#6 integrate
... //depot/projects/kse/sys/fs/fdescfs/fdesc_vfsops.c#7 integrate
... //depot/projects/kse/sys/fs/fifofs/fifo_vnops.c#11 integrate
... //depot/projects/kse/sys/fs/pseudofs/pseudofs.c#10 integrate
... //depot/projects/kse/sys/fs/pseudofs/pseudofs.h#11 integrate
... //depot/projects/kse/sys/fs/pseudofs/pseudofs_vnops.c#13 integrate
... //depot/projects/kse/sys/fs/udf/udf_vnops.c#2 integrate
... //depot/projects/kse/sys/i386/acpica/genwakecode.pl#2 delete
... //depot/projects/kse/sys/i386/conf/Makefile#3 integrate
... //depot/projects/kse/sys/i386/conf/NOTES#32 integrate
... //depot/projects/kse/sys/i386/conf/makeLINT.pl#2 delete
... //depot/projects/kse/sys/i386/conf/makeLINT.sed#1 branch
... //depot/projects/kse/sys/i386/conf/makeLINT.sh#1 branch
... //depot/projects/kse/sys/ia64/ia64/machdep.c#31 integrate
... //depot/projects/kse/sys/ia64/ia64/pmap.c#23 integrate
... //depot/projects/kse/sys/ia64/include/ansi.h#10 integrate
... //depot/projects/kse/sys/kern/init_main.c#39 integrate
... //depot/projects/kse/sys/kern/kern_descrip.c#28 integrate
... //depot/projects/kse/sys/kern/kern_exec.c#25 integrate
... //depot/projects/kse/sys/kern/kern_exit.c#42 integrate
... //depot/projects/kse/sys/kern/kern_fork.c#63 integrate
... //depot/projects/kse/sys/kern/kern_malloc.c#10 integrate
... //depot/projects/kse/sys/kern/kern_proc.c#58 integrate
... //depot/projects/kse/sys/kern/kern_prot.c#25 integrate
... //depot/projects/kse/sys/kern/kern_sig.c#46 integrate
... //depot/projects/kse/sys/kern/kern_tc.c#8 integrate
... //depot/projects/kse/sys/kern/makeobjops.pl#3 delete
... //depot/projects/kse/sys/kern/sys_generic.c#23 integrate
... //depot/projects/kse/sys/kern/vfs_aio.c#25 integrate
... //depot/projects/kse/sys/netatm/atm_cm.c#4 integrate
... //depot/projects/kse/sys/netatm/atm_cm.h#3 integrate
... //depot/projects/kse/sys/netatm/atm_subr.c#7 integrate
... //depot/projects/kse/sys/pci/if_dc.c#15 integrate
... //depot/projects/kse/sys/sys/malloc.h#7 integrate
... //depot/projects/kse/sys/sys/socketvar.h#17 integrate
... //depot/projects/kse/sys/sys/timetc.h#6 integrate
... //depot/projects/kse/sys/sys/user.h#17 integrate
... //depot/projects/kse/sys/ufs/ffs/ffs_vnops.c#5 integrate
... //depot/projects/kse/sys/ufs/ufs/extattr.h#5 integrate
... //depot/projects/kse/sys/ufs/ufs/ufs_extattr.c#11 integrate
... //depot/projects/kse/sys/ufs/ufs/ufs_vnops.c#12 integrate
... //depot/projects/kse/sys/vm/uma.h#4 integrate
... //depot/projects/kse/sys/vm/uma_core.c#4 integrate
... //depot/projects/kse/sys/vm/uma_dbg.c#2 integrate
... //depot/projects/kse/sys/vm/uma_dbg.h#2 integrate
... //depot/projects/kse/sys/vm/vm_map.c#15 integrate
... //depot/projects/kse/sys/vm/vm_map.h#9 integrate

Differences ...

==== //depot/projects/kse/sys/dev/aac/aac.c#21 (text+ko) ====

@@ -26,7 +26,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- *	$FreeBSD: src/sys/dev/aac/aac.c,v 1.38 2002/04/27 01:31:13 scottl Exp $
+ *	$FreeBSD: src/sys/dev/aac/aac.c,v 1.39 2002/05/03 00:07:50 scottl Exp $
  */
 
 /*
@@ -355,17 +355,17 @@
 	mi = (struct aac_mntinfo *)&fib->data[0];
 
 	/* loop over possible containers */
-	mi->Command = VM_NameServe;
-	mi->MntType = FT_FILESYS;
 	do {
 		/* request information on this container */
+		bzero(mi, sizeof(struct aac_mntinfo));
+		mi->Command = VM_NameServe;
+		mi->MntType = FT_FILESYS;
 		mi->MntCount = i;
 		if (aac_sync_fib(sc, ContainerCommand, 0, fib,
 				 sizeof(struct aac_mntinfo))) {
 			debug(2, "error probing container %d", i);
 			continue;
 		}
-		/* check response size */
 
 		mir = (struct aac_mntinforesp *)&fib->data[0];
 		aac_add_container(sc, mir, 0);
@@ -550,6 +550,7 @@
 	aac_alloc_sync_fib(sc, &fib, AAC_SYNC_LOCK_FORCE);
 	cc = (struct aac_close_command *)&fib->data[0];
 
+	bzero(cc, sizeof(struct aac_close_command));
 	cc->Command = VM_CloseAll;
 	cc->ContainerId = 0xffffffff;
 	if (aac_sync_fib(sc, ContainerCommand, 0, fib,
@@ -2373,8 +2374,6 @@
 			 */
 			aac_alloc_sync_fib(sc, &fib, 0);
 			mi = (struct aac_mntinfo *)&fib->data[0];
-			mi->Command = VM_NameServe;
-			mi->MntType = FT_FILESYS;
 			do {
 				/*
 				 * Ask the controller for its containers one at
@@ -2383,6 +2382,9 @@
 				 * midway through this enumaration?
 				 * XXX This should be done async.
 				 */
+				bzero(mi, sizeof(struct aac_mntinfo));
+				mi->Command = VM_NameServe;
+				mi->MntType = FT_FILESYS;
 				mi->MntCount = i;
 				rsize = sizeof(mir);
 				if (aac_sync_fib(sc, ContainerCommand, 0, fib,
@@ -2717,6 +2719,7 @@
 
 	aac_alloc_sync_fib(sc, &fib, 0);
 	c_cmd = (struct aac_ctcfg *)&fib->data[0];
+	bzero(c_cmd, sizeof(struct aac_ctcfg));
 
 	c_cmd->Command = VM_ContainerConfig;
 	c_cmd->cmd = CT_GET_SCSI_METHOD;
@@ -2742,6 +2745,8 @@
 	sc->scsi_method_id = c_resp->param;
 
 	vmi = (struct aac_vmioctl *)&fib->data[0];
+	bzero(vmi, sizeof(struct aac_vmioctl));
+
 	vmi->Command = VM_Ioctl;
 	vmi->ObjType = FT_DRIVE;
 	vmi->MethId = sc->scsi_method_id;

==== //depot/projects/kse/sys/dev/aac/aac_cam.c#2 (text+ko) ====

@@ -23,7 +23,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- *	$FreeBSD: src/sys/dev/aac/aac_cam.c,v 1.2 2002/04/30 22:50:26 scottl Exp $
+ *	$FreeBSD: src/sys/dev/aac/aac_cam.c,v 1.3 2002/05/03 00:07:50 scottl Exp $
  */
 
 /*
@@ -500,6 +500,8 @@
 	aac_alloc_sync_fib(sc, &fib, 0);
 
 	vmi = (struct aac_vmioctl *)&fib->data[0];
+	bzero(vmi, sizeof(struct aac_vmioctl));
+
 	vmi->Command = VM_Ioctl;
 	vmi->ObjType = FT_DRIVE;
 	vmi->MethId = sc->scsi_method_id;
@@ -544,6 +546,7 @@
 
 	aac_alloc_sync_fib(sc, &fib, 0);
 	vmi = (struct aac_vmioctl *)&fib->data[0];
+	bzero(vmi, sizeof(struct aac_vmioctl));
 
 	vmi->Command = VM_Ioctl;
 	vmi->ObjType = FT_DRIVE;

==== //depot/projects/kse/sys/dev/drm/drm_fops.h#2 (text+ko) ====

@@ -29,7 +29,7 @@
  *    Daryll Strauss <daryll@valinux.com>
  *    Gareth Hughes <gareth@valinux.com>
  *
- * $FreeBSD: src/sys/dev/drm/drm_fops.h,v 1.3 2002/04/29 18:18:42 anholt Exp $
+ * $FreeBSD: src/sys/dev/drm/drm_fops.h,v 1.4 2002/05/03 07:45:26 tanimura Exp $
  */
 
 #define __NO_VERSION__
@@ -315,7 +315,7 @@
 	DRM_DEBUG("dev->buf_sigio=%p\n", dev->buf_sigio);
 	if (dev->buf_sigio) {
 		DRM_DEBUG("dev->buf_sigio->sio_pgid=%d\n", dev->buf_sigio->sio_pgid);
-		pgsigio(dev->buf_sigio, SIGIO, 0);
+		pgsigio(&dev->buf_sigio, SIGIO, 0);
 	}
 	DRM_DEBUG("waking\n");
 	wakeup(&dev->buf_rp);

==== //depot/projects/kse/sys/dev/em/if_em.c#6 (text+ko) ====

@@ -33,7 +33,7 @@
 
 ***************************************************************************/
 
-/*$FreeBSD: src/sys/dev/em/if_em.c,v 1.6 2002/04/28 20:34:19 phk Exp $*/
+/*$FreeBSD: src/sys/dev/em/if_em.c,v 1.7 2002/05/02 22:21:01 pdeuskar Exp $*/
 
 #include <dev/em/if_em.h>
 
@@ -532,8 +532,8 @@
        * Advance the Transmit Descriptor Tail (Tdt), this tells the E1000
        * that this frame is available to transmit.
        */
-      E1000_WRITE_REG(&adapter->shared, TDT, (((u_int32_t) adapter->next_avail_tx_desc -
-                             (u_int32_t) adapter->first_tx_desc) >> 4));
+      E1000_WRITE_REG(&adapter->shared, TDT, (((uintptr_t) adapter->next_avail_tx_desc -
+                             (uintptr_t) adapter->first_tx_desc) >> 4));
    } /* end of while loop */
 
    splx(s);
@@ -1716,8 +1716,8 @@
    /* Setup the HW Rx Head and Tail Descriptor Pointers */
    E1000_WRITE_REG(&adapter->shared, RDH, 0);
    E1000_WRITE_REG(&adapter->shared, RDT,
-               (((u_int32_t) adapter->last_rx_desc -
-                 (u_int32_t) adapter->first_rx_desc) >> 4));
+               (((uintptr_t) adapter->last_rx_desc -
+                 (uintptr_t) adapter->first_rx_desc) >> 4));
    
    /* Setup the Receive Control Register */
    reg_rctl = E1000_RCTL_EN | E1000_RCTL_BAM | E1000_RCTL_LBM_NO |

==== //depot/projects/kse/sys/dev/my/if_my.c#3 (text+ko) ====

@@ -25,7 +25,7 @@
  *
  * Written by: yen_cw@myson.com.tw  available at: http://www.myson.com.tw/
  *
- * $FreeBSD: src/sys/dev/my/if_my.c,v 1.7 2002/04/30 16:43:51 julian Exp $
+ * $FreeBSD: src/sys/dev/my/if_my.c,v 1.8 2002/05/02 15:58:04 julian Exp $
  *
  * Myson fast ethernet PCI NIC driver
  */
@@ -1181,6 +1181,7 @@
 	if (m_new == NULL) {
 		printf("my%d: no memory for rx list -- packet dropped!\n",
 		       sc->my_unit);
+		MY_UNLOCK(sc);
 		return (ENOBUFS);
 	}
 	MCLGET(m_new, M_DONTWAIT);
@@ -1188,6 +1189,7 @@
 		printf("my%d: no memory for rx list -- packet dropped!\n",
 		       sc->my_unit);
 		m_freem(m_new);
+		MY_UNLOCK(sc);
 		return (ENOBUFS);
 	}
 	c->my_mbuf = m_new;
@@ -1296,8 +1298,10 @@
 	ifp = &sc->arpcom.ac_if;
 	/* Clear the timeout timer. */
 	ifp->if_timer = 0;
-	if (sc->my_cdata.my_tx_head == NULL)
+	if (sc->my_cdata.my_tx_head == NULL) {
+		MY_UNLOCK(sc);
 		return;
+	}
 	/*
 	 * Go through our tx list and free mbufs for those frames that have
 	 * been transmitted.
@@ -1450,6 +1454,7 @@
 	MGETHDR(m_new, M_DONTWAIT, MT_DATA);
 	if (m_new == NULL) {
 		printf("my%d: no memory for tx list", sc->my_unit);
+		MY_UNLOCK(sc);
 		return (1);
 	}
 	if (m_head->m_pkthdr.len > MHLEN) {
@@ -1457,6 +1462,7 @@
 		if (!(m_new->m_flags & M_EXT)) {
 			m_freem(m_new);
 			printf("my%d: no memory for tx list", sc->my_unit);
+			MY_UNLOCK(sc);
 			return (1);
 		}
 	}
@@ -1871,3 +1877,5 @@
 	my_stop(sc);
 	return;
 }
+
+

==== //depot/projects/kse/sys/dev/usb/usbdi.c#8 (text+ko) ====

@@ -1,5 +1,5 @@
-/*	$NetBSD: usbdi.c,v 1.93 2001/12/24 21:36:15 augustss Exp $	*/
-/*	$FreeBSD: src/sys/dev/usb/usbdi.c,v 1.71 2002/04/07 13:16:18 joe Exp $	*/
+/*	$NetBSD: usbdi.c,v 1.94 2001/12/30 20:26:59 augustss Exp $	*/
+/*	$FreeBSD: src/sys/dev/usb/usbdi.c,v 1.72 2002/05/02 22:47:37 joe Exp $	*/
 
 /*
  * Copyright (c) 1998 The NetBSD Foundation, Inc.
@@ -1086,6 +1086,9 @@
 		dev->bus->use_polling++;
 	else
 		dev->bus->use_polling--;
+	/* When polling we need to make sure there is nothing pending to do. */
+	if (dev->bus->use_polling)
+		dev->bus->methods->soft_intr(dev->bus);
 }
 
 

==== //depot/projects/kse/sys/fs/deadfs/dead_vnops.c#3 (text+ko) ====

@@ -31,7 +31,7 @@
  * SUCH DAMAGE.
  *
  *	@(#)dead_vnops.c	8.1 (Berkeley) 6/10/93
- * $FreeBSD: src/sys/fs/deadfs/dead_vnops.c,v 1.32 2002/03/19 22:19:57 alfred Exp $
+ * $FreeBSD: src/sys/fs/deadfs/dead_vnops.c,v 1.33 2002/05/02 19:13:44 phk Exp $
  */
 
 #include <sys/param.h>
@@ -46,7 +46,6 @@
 /*
  * Prototypes for dead operations on vnodes.
  */
-static int	dead_badop(void);
 static int	dead_bmap(struct vop_bmap_args *);
 static int	dead_ioctl(struct vop_ioctl_args *);
 static int	dead_lock(struct vop_lock_args *);
@@ -63,15 +62,15 @@
 	{ &vop_access_desc,		(vop_t *) vop_ebadf },
 	{ &vop_advlock_desc,		(vop_t *) vop_ebadf },
 	{ &vop_bmap_desc,		(vop_t *) dead_bmap },
-	{ &vop_create_desc,		(vop_t *) dead_badop },
+	{ &vop_create_desc,		(vop_t *) vop_panic },
 	{ &vop_getattr_desc,		(vop_t *) vop_ebadf },
 	{ &vop_inactive_desc,		(vop_t *) vop_null },
 	{ &vop_ioctl_desc,		(vop_t *) dead_ioctl },
-	{ &vop_link_desc,		(vop_t *) dead_badop },
+	{ &vop_link_desc,		(vop_t *) vop_panic },
 	{ &vop_lock_desc,		(vop_t *) dead_lock },
 	{ &vop_lookup_desc,		(vop_t *) dead_lookup },
-	{ &vop_mkdir_desc,		(vop_t *) dead_badop },
-	{ &vop_mknod_desc,		(vop_t *) dead_badop },
+	{ &vop_mkdir_desc,		(vop_t *) vop_panic },
+	{ &vop_mknod_desc,		(vop_t *) vop_panic },
 	{ &vop_open_desc,		(vop_t *) dead_open },
 	{ &vop_pathconf_desc,		(vop_t *) vop_ebadf },	/* per pathconf(2) */
 	{ &vop_poll_desc,		(vop_t *) dead_poll },
@@ -80,11 +79,11 @@
 	{ &vop_readdir_desc,		(vop_t *) vop_ebadf },
 	{ &vop_readlink_desc,		(vop_t *) vop_ebadf },
 	{ &vop_reclaim_desc,		(vop_t *) vop_null },
-	{ &vop_remove_desc,		(vop_t *) dead_badop },
-	{ &vop_rename_desc,		(vop_t *) dead_badop },
-	{ &vop_rmdir_desc,		(vop_t *) dead_badop },
+	{ &vop_remove_desc,		(vop_t *) vop_panic },
+	{ &vop_rename_desc,		(vop_t *) vop_panic },
+	{ &vop_rmdir_desc,		(vop_t *) vop_panic },
 	{ &vop_setattr_desc,		(vop_t *) vop_ebadf },
-	{ &vop_symlink_desc,		(vop_t *) dead_badop },
+	{ &vop_symlink_desc,		(vop_t *) vop_panic },
 	{ &vop_write_desc,		(vop_t *) dead_write },
 	{ NULL, NULL }
 };
@@ -254,17 +253,6 @@
 }
 
 /*
- * Empty vnode bad operation
- */
-static int
-dead_badop()
-{
-
-	panic("dead_badop called");
-	/* NOTREACHED */
-}
-
-/*
  * We have to wait during times when the vnode is
  * in a state of change.
  */

==== //depot/projects/kse/sys/fs/devfs/devfs_vfsops.c#6 (text+ko) ====

@@ -31,7 +31,7 @@
  *	@(#)kernfs_vfsops.c	8.10 (Berkeley) 5/14/95
  * From: FreeBSD: src/sys/miscfs/kernfs/kernfs_vfsops.c 1.36
  *
- * $FreeBSD: src/sys/fs/devfs/devfs_vfsops.c,v 1.19 2002/03/19 22:19:57 alfred Exp $
+ * $FreeBSD: src/sys/fs/devfs/devfs_vfsops.c,v 1.20 2002/05/02 20:27:42 mux Exp $
  */
 
 #include "opt_devfs.h"
@@ -50,8 +50,8 @@
 
 MALLOC_DEFINE(M_DEVFS, "DEVFS", "DEVFS data");
 
-static int	devfs_mount(struct mount *mp, char *path, caddr_t data,
-				  struct nameidata *ndp, struct thread *td);
+static int	devfs_mount(struct mount *mp, struct nameidata *ndp,
+				  struct thread *td);
 static int	devfs_unmount(struct mount *mp, int mntflags,
 				  struct thread *td);
 static int	devfs_root(struct mount *mp, struct vnode **vpp);
@@ -62,10 +62,8 @@
  * Mount the filesystem
  */
 static int
-devfs_mount(mp, path, data, ndp, td)
+devfs_mount(mp, ndp, td)
 	struct mount *mp;
-	char *path;
-	caddr_t data;
 	struct nameidata *ndp;
 	struct thread *td;
 {
@@ -180,7 +178,7 @@
 }
 
 static struct vfsops devfs_vfsops = {
-	devfs_mount,
+	NULL,
 	vfs_stdstart,
 	devfs_unmount,
 	devfs_root,
@@ -194,6 +192,7 @@
 	vfs_stdinit,
 	vfs_stduninit,
 	vfs_stdextattrctl,
+	devfs_mount,
 };
 
 VFS_SET(devfs_vfsops, devfs, VFCF_SYNTHETIC);

==== //depot/projects/kse/sys/fs/fdescfs/fdesc_vfsops.c#7 (text+ko) ====

@@ -35,7 +35,7 @@
  *
  *	@(#)fdesc_vfsops.c	8.4 (Berkeley) 1/21/94
  *
- * $FreeBSD: src/sys/fs/fdescfs/fdesc_vfsops.c,v 1.34 2002/03/19 22:19:59 alfred Exp $
+ * $FreeBSD: src/sys/fs/fdescfs/fdesc_vfsops.c,v 1.35 2002/05/02 20:24:50 mux Exp $
  */
 
 /*
@@ -58,8 +58,8 @@
 
 static MALLOC_DEFINE(M_FDESCMNT, "FDESC mount", "FDESC mount structure");
 
-static int	fdesc_mount(struct mount *mp, char *path, caddr_t data,
-				 struct nameidata *ndp, struct thread *td);
+static int	fdesc_mount(struct mount *mp, struct nameidata *ndp,
+				 struct thread *td);
 static int	fdesc_unmount(struct mount *mp, int mntflags,
 				   struct thread *td);
 static int	fdesc_statfs(struct mount *mp, struct statfs *sbp,
@@ -69,10 +69,8 @@
  * Mount the per-process file descriptors (/dev/fd)
  */
 static int
-fdesc_mount(mp, path, data, ndp, td)
+fdesc_mount(mp, ndp, td)
 	struct mount *mp;
-	char *path;
-	caddr_t data;
 	struct nameidata *ndp;
 	struct thread *td;
 {
@@ -209,7 +207,7 @@
 }
 
 static struct vfsops fdesc_vfsops = {
-	fdesc_mount,
+	NULL,
 	vfs_stdstart,
 	fdesc_unmount,
 	fdesc_root,
@@ -223,6 +221,7 @@
 	fdesc_init,
 	vfs_stduninit,
 	vfs_stdextattrctl,
+	fdesc_mount,
 };
 
 VFS_SET(fdesc_vfsops, fdescfs, VFCF_SYNTHETIC);

==== //depot/projects/kse/sys/fs/fifofs/fifo_vnops.c#11 (text+ko) ====

@@ -31,7 +31,7 @@
  * SUCH DAMAGE.
  *
  *	@(#)fifo_vnops.c	8.10 (Berkeley) 5/27/95
- * $FreeBSD: src/sys/fs/fifofs/fifo_vnops.c,v 1.66 2002/04/30 01:54:51 tanimura Exp $
+ * $FreeBSD: src/sys/fs/fifofs/fifo_vnops.c,v 1.67 2002/05/02 19:13:19 phk Exp $
  */
 
 #include <sys/param.h>
@@ -66,7 +66,6 @@
 	long		fi_writers;
 };
 
-static int	fifo_badop(void);
 static int	fifo_print(struct vop_print_args *);
 static int	fifo_lookup(struct vop_lookup_args *);
 static int	fifo_open(struct vop_open_args *);
@@ -95,30 +94,30 @@
 	{ &vop_access_desc,		(vop_t *) vop_ebadf },
 	{ &vop_advlock_desc,		(vop_t *) fifo_advlock },
 	{ &vop_close_desc,		(vop_t *) fifo_close },
-	{ &vop_create_desc,		(vop_t *) fifo_badop },
+	{ &vop_create_desc,		(vop_t *) vop_panic },
 	{ &vop_getattr_desc,		(vop_t *) vop_ebadf },
 	{ &vop_getwritemount_desc, 	(vop_t *) vop_stdgetwritemount },
 	{ &vop_ioctl_desc,		(vop_t *) fifo_ioctl },
 	{ &vop_kqfilter_desc,		(vop_t *) fifo_kqfilter },
 	{ &vop_lease_desc,		(vop_t *) vop_null },
-	{ &vop_link_desc,		(vop_t *) fifo_badop },
+	{ &vop_link_desc,		(vop_t *) vop_panic },
 	{ &vop_lookup_desc,		(vop_t *) fifo_lookup },
-	{ &vop_mkdir_desc,		(vop_t *) fifo_badop },
-	{ &vop_mknod_desc,		(vop_t *) fifo_badop },
+	{ &vop_mkdir_desc,		(vop_t *) vop_panic },
+	{ &vop_mknod_desc,		(vop_t *) vop_panic },
 	{ &vop_open_desc,		(vop_t *) fifo_open },
 	{ &vop_pathconf_desc,		(vop_t *) fifo_pathconf },
 	{ &vop_poll_desc,		(vop_t *) fifo_poll },
 	{ &vop_print_desc,		(vop_t *) fifo_print },
 	{ &vop_read_desc,		(vop_t *) fifo_read },
-	{ &vop_readdir_desc,		(vop_t *) fifo_badop },
-	{ &vop_readlink_desc,		(vop_t *) fifo_badop },
-	{ &vop_reallocblks_desc,	(vop_t *) fifo_badop },
+	{ &vop_readdir_desc,		(vop_t *) vop_panic },
+	{ &vop_readlink_desc,		(vop_t *) vop_panic },
+	{ &vop_reallocblks_desc,	(vop_t *) vop_panic },
 	{ &vop_reclaim_desc,		(vop_t *) vop_null },
-	{ &vop_remove_desc,		(vop_t *) fifo_badop },
-	{ &vop_rename_desc,		(vop_t *) fifo_badop },
-	{ &vop_rmdir_desc,		(vop_t *) fifo_badop },
+	{ &vop_remove_desc,		(vop_t *) vop_panic },
+	{ &vop_rename_desc,		(vop_t *) vop_panic },
+	{ &vop_rmdir_desc,		(vop_t *) vop_panic },
 	{ &vop_setattr_desc,		(vop_t *) vop_ebadf },
-	{ &vop_symlink_desc,		(vop_t *) fifo_badop },
+	{ &vop_symlink_desc,		(vop_t *) vop_panic },
 	{ &vop_write_desc,		(vop_t *) fifo_write },
 	{ NULL, NULL }
 };
@@ -610,14 +609,3 @@
 
 	return (ap->a_flags & F_FLOCK ? EOPNOTSUPP : EINVAL);
 }
-
-/*
- * Fifo bad operation
- */
-static int
-fifo_badop()
-{
-
-	panic("fifo_badop called");
-	/* NOTREACHED */
-}

==== //depot/projects/kse/sys/fs/pseudofs/pseudofs.c#10 (text+ko) ====

@@ -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.
  *
- *	$FreeBSD: src/sys/fs/pseudofs/pseudofs.c,v 1.13 2002/04/04 21:03:19 jhb Exp $
+ *	$FreeBSD: src/sys/fs/pseudofs/pseudofs.c,v 1.14 2002/05/02 20:25:55 mux Exp $
  */
 
 #include <sys/param.h>
@@ -240,8 +240,8 @@
  * Mount a pseudofs instance
  */
 int
-pfs_mount(struct pfs_info *pi, struct mount *mp, char *path, caddr_t data,
-	  struct nameidata *ndp, struct thread *td)
+pfs_mount(struct pfs_info *pi, struct mount *mp, struct nameidata *ndp,
+	  struct thread *td)
 {
 	struct statfs *sbp;
   

==== //depot/projects/kse/sys/fs/pseudofs/pseudofs.h#11 (text+ko) ====

@@ -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.
  *
- *      $FreeBSD: src/sys/fs/pseudofs/pseudofs.h,v 1.17 2002/02/10 04:43:21 rwatson Exp $
+ *      $FreeBSD: src/sys/fs/pseudofs/pseudofs.h,v 1.18 2002/05/02 20:25:55 mux Exp $
  */
 
 #ifndef _PSEUDOFS_H_INCLUDED
@@ -197,8 +197,7 @@
 /*
  * VFS interface
  */
-int	 	 pfs_mount	(struct pfs_info *pi,
-				 struct mount *mp, char *path, caddr_t data,
+int	 	 pfs_mount	(struct pfs_info *pi, struct mount *mp,
 				 struct nameidata *ndp, struct thread *td);
 int	 	 pfs_unmount	(struct mount *mp, int mntflags,
 				 struct thread *td);
@@ -235,9 +234,9 @@
 };									\
 									\
 static int								\
-_##name##_mount(struct mount *mp, char *path, caddr_t data,		\
-	     struct nameidata *ndp, struct thread *td) {		\
-        return pfs_mount(&name##_info, mp, path, data, ndp, td);	\
+_##name##_mount(struct mount *mp, struct nameidata *ndp,		\
+	     struct thread *td) {					\
+        return pfs_mount(&name##_info, mp, ndp, td);			\
 }									\
 									\
 static int								\
@@ -251,7 +250,7 @@
 }									\
 									\
 static struct vfsops name##_vfsops = {					\
-	_##name##_mount,						\
+	NULL,								\
 	vfs_stdstart,							\
 	pfs_unmount,							\
 	pfs_root,							\
@@ -265,6 +264,7 @@
 	_##name##_init,							\
 	_##name##_uninit,						\
 	vfs_stdextattrctl,						\
+	_##name##_mount,						\
 };									\
 VFS_SET(name##_vfsops, name, VFCF_SYNTHETIC);				\
 MODULE_VERSION(name, version);						\

==== //depot/projects/kse/sys/fs/pseudofs/pseudofs_vnops.c#13 (text+ko) ====

@@ -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.
  *
- *	$FreeBSD: src/sys/fs/pseudofs/pseudofs_vnops.c,v 1.25 2002/04/14 04:12:44 jhb Exp $
+ *	$FreeBSD: src/sys/fs/pseudofs/pseudofs_vnops.c,v 1.26 2002/05/03 14:58:25 des Exp $
  */
 
 #include <sys/param.h>
@@ -780,14 +780,6 @@
 }
 
 /*
- * Dummy operations */
-static int pfs_badop(void *va)		{ return (EOPNOTSUPP); }
-#if 0
-static int pfs_erofs(void *va)		{ return (EROFS); }
-static int pfs_null(void *va)		{ return (0); }
-#endif
-
-/*
  * Vnode operations
  */
 vop_t **pfs_vnodeop_p;
@@ -795,26 +787,26 @@
 	{ &vop_default_desc,		(vop_t *)vop_defaultop	},
 	{ &vop_access_desc,		(vop_t *)pfs_access	},
 	{ &vop_close_desc,		(vop_t *)pfs_close	},
-	{ &vop_create_desc,		(vop_t *)pfs_badop	},
+	{ &vop_create_desc,		(vop_t *)vop_eopnotsupp	},
 	{ &vop_getattr_desc,		(vop_t *)pfs_getattr	},
 	{ &vop_getextattr_desc,		(vop_t *)pfs_getextattr	},
 	{ &vop_ioctl_desc,		(vop_t *)pfs_ioctl	},
-	{ &vop_link_desc,		(vop_t *)pfs_badop	},
+	{ &vop_link_desc,		(vop_t *)vop_eopnotsupp	},
 	{ &vop_lookup_desc,		(vop_t *)pfs_lookup	},
-	{ &vop_mkdir_desc,		(vop_t *)pfs_badop	},
-	{ &vop_mknod_desc,		(vop_t *)pfs_badop	},
+	{ &vop_mkdir_desc,		(vop_t *)vop_eopnotsupp	},
+	{ &vop_mknod_desc,		(vop_t *)vop_eopnotsupp	},
 	{ &vop_open_desc,		(vop_t *)pfs_open	},
 	{ &vop_read_desc,		(vop_t *)pfs_read	},
 	{ &vop_readdir_desc,		(vop_t *)pfs_readdir	},
 	{ &vop_readlink_desc,		(vop_t *)pfs_readlink	},
 	{ &vop_reclaim_desc,		(vop_t *)pfs_reclaim	},
-	{ &vop_remove_desc,		(vop_t *)pfs_badop	},
-	{ &vop_rename_desc,		(vop_t *)pfs_badop	},
-	{ &vop_rmdir_desc,		(vop_t *)pfs_badop	},
+	{ &vop_remove_desc,		(vop_t *)vop_eopnotsupp	},
+	{ &vop_rename_desc,		(vop_t *)vop_eopnotsupp	},
+	{ &vop_rmdir_desc,		(vop_t *)vop_eopnotsupp	},
 	{ &vop_setattr_desc,		(vop_t *)pfs_setattr	},
-	{ &vop_symlink_desc,		(vop_t *)pfs_badop	},
+	{ &vop_symlink_desc,		(vop_t *)vop_eopnotsupp	},
 	{ &vop_write_desc,		(vop_t *)pfs_write	},
-	/* XXX I've probably forgotten a few that need pfs_badop */
+	/* XXX I've probably forgotten a few that need vop_eopnotsupp */
 	{ NULL,				(vop_t *)NULL		}
 };
 

==== //depot/projects/kse/sys/fs/udf/udf_vnops.c#2 (text+ko) ====

@@ -23,7 +23,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/fs/udf/udf_vnops.c,v 1.3 2002/04/30 05:05:05 scottl Exp $
+ * $FreeBSD: src/sys/fs/udf/udf_vnops.c,v 1.5 2002/05/02 20:23:47 scottl Exp $
  */
 
 /* udf_vnops.c */
@@ -72,7 +72,6 @@
 	{ &vop_bmap_desc,		(vop_t *) udf_bmap },
 	{ &vop_cachedlookup_desc,	(vop_t *) udf_lookup },
 	{ &vop_getattr_desc,		(vop_t *) udf_getattr },
-	{ &vop_inactive_desc,		(vop_t *) vop_stdinactive },
 	{ &vop_ioctl_desc,		(vop_t *) udf_ioctl },
 	{ &vop_islocked_desc,		(vop_t *) vop_stdislocked },
 	{ &vop_lock_desc,		(vop_t *) vop_stdlock },
@@ -85,8 +84,6 @@
 	{ &vop_reclaim_desc,		(vop_t *) udf_reclaim },
 	{ &vop_strategy_desc,		(vop_t *) udf_strategy },
 	{ &vop_unlock_desc,		(vop_t *) vop_stdunlock },
-	{ &vop_getpages_desc,		(vop_t *) vop_stdgetpages },
-	{ &vop_putpages_desc,		(vop_t *) vop_stdputpages },
 	{ NULL, NULL }
 };
 static struct vnodeopv_desc udf_vnodeop_opv_desc =
@@ -802,6 +799,7 @@
 {
 	struct udf_node *node;
 	uint32_t max_size;
+	daddr64_t lsector;
 	int error;
 
 	node = VTON(a->a_vp);
@@ -813,11 +811,14 @@
 	if (a->a_runb)
 		*a->a_runb = 0;
 
-	error = udf_bmap_internal(node, a->a_bn * node->udfmp->bsize, a->a_bnp,
+	error = udf_bmap_internal(node, a->a_bn * node->udfmp->bsize, &lsector,
 	    &max_size);
 	if (error > 0)
 		return (error);
 
+	/* Translate logical to physical sector number */
+	*a->a_bnp = lsector << (node->udfmp->bshift - DEV_BSHIFT);
+
 	/* Punt on read-ahead for now */
 	if (a->a_runp)
 		*a->a_runp = 0;

==== //depot/projects/kse/sys/i386/conf/Makefile#3 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/i386/conf/Makefile,v 1.3 2002/04/03 18:09:17 jhb Exp $
+# $FreeBSD: src/sys/i386/conf/Makefile,v 1.5 2002/05/02 16:34:47 des Exp $
 
 all:
 	@echo "make LINT only"
@@ -6,5 +6,5 @@
 clean:
 	rm LINT
 
-LINT: ../../conf/NOTES NOTES makeLINT.pl
-	cat ../../conf/NOTES NOTES | perl5 makeLINT.pl > LINT
+LINT: ../../conf/NOTES NOTES makeLINT.sed
+	cat ../../conf/NOTES NOTES | sed -E -n -f makeLINT.sed > LINT

==== //depot/projects/kse/sys/i386/conf/NOTES#32 (text+ko) ====

@@ -4,7 +4,7 @@
 # This file contains machine dependent kernel configuration notes.  For
 # machine independent notes, look in /sys/conf/NOTES.
 #
-# $FreeBSD: src/sys/i386/conf/NOTES,v 1.1017 2002/04/09 18:26:58 jhb Exp $
+# $FreeBSD: src/sys/i386/conf/NOTES,v 1.1019 2002/05/02 19:42:38 obrien Exp $
 #
 
 #

==== //depot/projects/kse/sys/ia64/ia64/machdep.c#31 (text+ko) ====

@@ -23,7 +23,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/ia64/ia64/machdep.c,v 1.101 2002/05/01 06:52:08 peter Exp $
+ * $FreeBSD: src/sys/ia64/ia64/machdep.c,v 1.102 2002/05/02 05:30:42 marcel Exp $
  */
 
 #include "opt_compat.h"
@@ -700,7 +700,6 @@
 	 * Initialize the virtual memory system.
 	 */
 	pmap_bootstrap();
-	pcpup->pc_current_pmap = kernel_pmap;
 
 	/*
 	 * Initialize debuggers, and break into them if appropriate.

==== //depot/projects/kse/sys/ia64/ia64/pmap.c#23 (text+ko) ====

@@ -43,7 +43,7 @@
  *	from:	@(#)pmap.c	7.7 (Berkeley)	5/12/91
  *	from:	i386 Id: pmap.c,v 1.193 1998/04/19 15:22:48 bde Exp
  *		with some ideas from NetBSD's alpha pmap
- * $FreeBSD: src/sys/ia64/ia64/pmap.c,v 1.58 2002/04/29 07:43:14 peter Exp $
+ * $FreeBSD: src/sys/ia64/ia64/pmap.c,v 1.59 2002/05/02 05:35:02 marcel Exp $
  */
 
 /*
@@ -810,19 +810,8 @@
 void
 pmap_pinit0(struct pmap *pmap)
 {
-	int i;
-
-	/*
-	 * kernel_pmap is the same as any other pmap.
-	 */
+	/* kernel_pmap is the same as any other pmap. */
 	pmap_pinit(pmap);
-	pmap->pm_flags = 0;
-	for (i = 0; i < 5; i++)
-		pmap->pm_rid[i] = 0;
-	pmap->pm_ptphint = NULL;
-	pmap->pm_active = 0;
-	TAILQ_INIT(&pmap->pm_pvlist);
-	bzero(&pmap->pm_stats, sizeof pmap->pm_stats);
 }
 
 /*

==== //depot/projects/kse/sys/ia64/include/ansi.h#10 (text+ko) ====

@@ -32,7 +32,7 @@
  *
  *	@(#)ansi.h	8.2 (Berkeley) 1/4/94
  *	From: NetBSD: ansi.h,v 1.9 1997/11/23 20:20:53 kleink Exp
- * $FreeBSD: src/sys/ia64/include/ansi.h,v 1.20 2002/04/10 15:58:12 mike Exp $
+ * $FreeBSD: src/sys/ia64/include/ansi.h,v 1.21 2002/05/02 09:04:29 dfr Exp $
  */
 
 #ifndef	_MACHINE_ANSI_H_
@@ -53,7 +53,7 @@
 #define	_BSD_MBSTATE_T_	__mbstate_t		/* mbstate_t */
 #define	_BSD_PTRDIFF_T_	long			/* ptr1 - ptr2 */
 #define	_BSD_RUNE_T_	_BSD_CT_RUNE_T_		/* rune_t (see below) */
-#define	_BSD_SEGSZ_T_	__int32_t		/* segment size (in pages) */
+#define	_BSD_SEGSZ_T_	__int64_t		/* segment size (in pages) */
 #define	_BSD_SIZE_T_	unsigned long		/* sizeof() */
 #define	_BSD_SOCKLEN_T_	__uint32_t
 #define	_BSD_SSIZE_T_	long			/* byte count or error */

==== //depot/projects/kse/sys/kern/init_main.c#39 (text+ko) ====

@@ -39,7 +39,7 @@
  * SUCH DAMAGE.
  *
  *	@(#)init_main.c	8.9 (Berkeley) 1/21/94
- * $FreeBSD: src/sys/kern/init_main.c,v 1.193 2002/04/19 13:35:53 rwatson Exp $
+ * $FreeBSD: src/sys/kern/init_main.c,v 1.194 2002/05/02 20:27:42 mux Exp $
  */
 
 #include "opt_init_path.h"
@@ -519,7 +519,8 @@
 		if (error == EEXIST)
 			error = 0;
 		if (error == 0)
-			error = vfs_mount(td, "devfs", "/dev", 0, 0);
+			error = kernel_vmount(0, "fstype", "devfs",
+			    "fspath", "/dev", NULL);
 		if (error != 0)
 			init_does_devfs = 1;
 	}

==== //depot/projects/kse/sys/kern/kern_descrip.c#28 (text+ko) ====

@@ -36,7 +36,7 @@
  * SUCH DAMAGE.
  *
  *	@(#)kern_descrip.c	8.6 (Berkeley) 4/19/94
- * $FreeBSD: src/sys/kern/kern_descrip.c,v 1.142 2002/05/01 20:44:44 alfred Exp $
+ * $FreeBSD: src/sys/kern/kern_descrip.c,v 1.144 2002/05/03 07:46:59 tanimura Exp $
  */
 
 #include "opt_compat.h"
@@ -571,6 +571,8 @@
 	struct proc *p;
 	struct pgrp *pg;
 
+	SIGIO_ASSERT(MA_OWNED);
+
 	sigio = SLIST_FIRST(sigiolst);
 	if (sigio == NULL)
 		return;
@@ -591,28 +593,26 @@
 	}
 
 	while ((sigio = SLIST_FIRST(sigiolst)) != NULL) {
-		SIGIO_LOCK();
 		*(sigio->sio_myref) = NULL;
-		SIGIO_UNLOCK();
 		if (pg != NULL) {
 			KASSERT(sigio->sio_pgid < 0, ("Proc sigio in pgrp sigio list"));
 			KASSERT(sigio->sio_pgrp == pg, ("Bogus pgrp in sigio list"));
 			SLIST_REMOVE(&pg->pg_sigiolst, sigio, sigio, sio_pgsigio);
 			PGRP_UNLOCK(pg);
+			SIGIO_UNLOCK();
 			crfree(sigio->sio_ucred);
-			mtx_lock(&Giant);
 			FREE(sigio, M_SIGIO);
-			mtx_unlock(&Giant);
+			SIGIO_LOCK();
 			PGRP_LOCK(pg);
 		} else /* if (p != NULL) */ {
 			KASSERT(sigio->sio_pgid > 0, ("Pgrp sigio in proc sigio list"));
 			KASSERT(sigio->sio_proc == p, ("Bogus proc in sigio list"));
 			SLIST_REMOVE(&p->p_sigiolst, sigio, sigio, sio_pgsigio);
 			PROC_UNLOCK(p);
+			SIGIO_UNLOCK();
 			crfree(sigio->sio_ucred);
-			mtx_lock(&Giant);
 			FREE(sigio, M_SIGIO);
-			mtx_unlock(&Giant);
+			SIGIO_LOCK();
 			PROC_LOCK(p);
 		}
 	}

==== //depot/projects/kse/sys/kern/kern_exec.c#25 (text+ko) ====

@@ -23,7 +23,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/kern/kern_exec.c,v 1.162 2002/04/19 00:45:26 nectar Exp $
+ * $FreeBSD: src/sys/kern/kern_exec.c,v 1.163 2002/05/02 15:00:14 jhb Exp $
  */
 
 #include <sys/param.h>
@@ -127,13 +127,15 @@
 {
 	struct proc *p = td->td_proc;
 	struct nameidata nd, *ndp;
-	struct ucred *newcred, *oldcred;
+	struct ucred *newcred = NULL, *oldcred;
 	register_t *stack_base;
 	int error, len, i;
 	struct image_params image_params, *imgp;
 	struct vattr attr;
 	int (*img_first)(struct image_params *);
-	struct pargs *pa;
+	struct pargs *oldargs, *newargs = NULL;
+	struct procsig *oldprocsig, *newprocsig;
+	struct vnode *tracevp = NULL, *textvp = NULL;
 
 	imgp = &image_params;
 
@@ -297,20 +299,34 @@
 		FILEDESC_UNLOCK(p->p_fd);
 
 	/*
+	 * Malloc things before we need locks.
+	 */
+	newcred = crget();
+	i = imgp->endargs - imgp->stringbase;
+	if (ps_arg_cache_limit >= i + sizeof(struct pargs))
+		newargs = pargs_alloc(i);
+
+	/* close files on exec */
+	fdcloseexec(td);
+
+	/*
 	 * For security and other reasons, signal handlers cannot
 	 * be shared after an exec. The new process gets a copy of the old
 	 * handlers. In execsigs(), the new process will have its signals
 	 * reset.
 	 */
+	PROC_LOCK(p);
+	mp_fixme("procsig needs a lock");
 	if (p->p_procsig->ps_refcnt > 1) {
-		struct procsig *newprocsig;
-
+		oldprocsig = p->p_procsig;
+		PROC_UNLOCK(p);
 		MALLOC(newprocsig, struct procsig *, sizeof(struct procsig),
-		       M_SUBPROC, M_WAITOK);
-		bcopy(p->p_procsig, newprocsig, sizeof(*newprocsig));
-		p->p_procsig->ps_refcnt--;

>>> TRUNCATED FOR MAIL (1000 lines) <<<

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe p4-projects" in the body of the message




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