PERFORCE change 114972 for review

John Baldwin jhb at FreeBSD.org
Sat Feb 24 15:02:54 UTC 2007


http://perforce.freebsd.org/chv.cgi?CH=114972

Change 114972 by jhb at jhb_zion on 2007/02/24 15:02:19

	IFC @114971.

Affected files ...

.. //depot/projects/smpng/sys/boot/i386/cdboot/cdboot.s#6 integrate
.. //depot/projects/smpng/sys/compat/linux/linux_emul.c#7 integrate
.. //depot/projects/smpng/sys/compat/linux/linux_misc.c#79 integrate
.. //depot/projects/smpng/sys/conf/files#198 integrate
.. //depot/projects/smpng/sys/dev/fdc/fdc.c#28 integrate
.. //depot/projects/smpng/sys/dev/isp/isp.c#54 integrate
.. //depot/projects/smpng/sys/dev/isp/isp_freebsd.h#38 integrate
.. //depot/projects/smpng/sys/dev/isp/isp_pci.c#51 integrate
.. //depot/projects/smpng/sys/dev/isp/isp_sbus.c#22 integrate
.. //depot/projects/smpng/sys/dev/isp/ispmbox.h#26 integrate
.. //depot/projects/smpng/sys/dev/isp/ispreg.h#10 integrate
.. //depot/projects/smpng/sys/dev/mpt/mpt.h#20 integrate
.. //depot/projects/smpng/sys/dev/mpt/mpt_pci.c#31 integrate
.. //depot/projects/smpng/sys/dev/pdq/if_fea.c#11 integrate
.. //depot/projects/smpng/sys/dev/ppc/ppc.c#15 integrate
.. //depot/projects/smpng/sys/dev/si/si_eisa.c#6 integrate
.. //depot/projects/smpng/sys/dev/wl/if_wl.c#30 integrate
.. //depot/projects/smpng/sys/geom/geom_dev.c#42 integrate
.. //depot/projects/smpng/sys/geom/geom_io.c#45 integrate
.. //depot/projects/smpng/sys/i386/linux/linux_machdep.c#43 integrate
.. //depot/projects/smpng/sys/i4b/capi/iavc/iavc_isa.c#12 integrate
.. //depot/projects/smpng/sys/i4b/capi/iavc/iavc_pci.c#13 integrate
.. //depot/projects/smpng/sys/i4b/layer1/ifpi/i4b_ifpi_pci.c#13 integrate
.. //depot/projects/smpng/sys/i4b/layer1/ifpi2/i4b_ifpi2_pci.c#15 integrate
.. //depot/projects/smpng/sys/i4b/layer1/ifpnp/i4b_ifpnp_avm.c#10 integrate
.. //depot/projects/smpng/sys/i4b/layer1/ihfc/i4b_ihfc_pnp.c#7 integrate
.. //depot/projects/smpng/sys/i4b/layer1/isic/i4b_avm_a1.c#6 integrate
.. //depot/projects/smpng/sys/i4b/layer1/isic/i4b_elsa_pcc16.c#7 integrate
.. //depot/projects/smpng/sys/i4b/layer1/isic/i4b_elsa_qs1p.c#10 integrate
.. //depot/projects/smpng/sys/i4b/layer1/isic/i4b_isic_pnp.c#9 integrate
.. //depot/projects/smpng/sys/i4b/layer1/isic/i4b_itk_ix1.c#7 integrate
.. //depot/projects/smpng/sys/i4b/layer1/isic/i4b_tel_s016.c#7 integrate
.. //depot/projects/smpng/sys/i4b/layer1/isic/i4b_tel_s0163.c#6 integrate
.. //depot/projects/smpng/sys/i4b/layer1/isic/i4b_tel_s08.c#7 integrate
.. //depot/projects/smpng/sys/i4b/layer1/isic/i4b_usr_sti.c#6 integrate
.. //depot/projects/smpng/sys/i4b/layer1/itjc/i4b_itjc_pci.c#17 integrate
.. //depot/projects/smpng/sys/i4b/layer1/iwic/i4b_iwic_pci.c#10 integrate
.. //depot/projects/smpng/sys/kern/subr_rman.c#32 integrate
.. //depot/projects/smpng/sys/modules/ip_mroute_mod/Makefile#8 integrate
.. //depot/projects/smpng/sys/netinet/ip_mroute.c#52 integrate
.. //depot/projects/smpng/sys/netinet6/in6.c#39 integrate
.. //depot/projects/smpng/sys/netinet6/in6_proto.c#18 integrate
.. //depot/projects/smpng/sys/netinet6/ip6_input.c#47 integrate
.. //depot/projects/smpng/sys/netinet6/ip6_mroute.c#28 integrate
.. //depot/projects/smpng/sys/netinet6/ip6_mroute.h#6 integrate
.. //depot/projects/smpng/sys/netinet6/ip6_var.h#19 integrate
.. //depot/projects/smpng/sys/netinet6/raw_ip6.c#42 integrate
.. //depot/projects/smpng/sys/pc98/cbus/olpt.c#3 integrate
.. //depot/projects/smpng/sys/pci/if_sis.c#64 integrate
.. //depot/projects/smpng/sys/pci/if_sisreg.h#19 integrate
.. //depot/projects/smpng/sys/ufs/ffs/ffs_alloc.c#46 integrate
.. //depot/projects/smpng/sys/ufs/ffs/ffs_softdep.c#60 integrate

Differences ...

==== //depot/projects/smpng/sys/boot/i386/cdboot/cdboot.s#6 (text+ko) ====

@@ -27,7 +27,7 @@
 # SUCH DAMAGE.
 #
 
-# $FreeBSD: src/sys/boot/i386/cdboot/cdboot.s,v 1.16 2006/04/11 17:36:08 jhb Exp $
+# $FreeBSD: src/sys/boot/i386/cdboot/cdboot.s,v 1.17 2007/02/23 21:07:44 remko Exp $
 
 #
 # This program is a freestanding boot program to load an a.out binary
@@ -472,7 +472,7 @@
 twiddle:	push %ax			# Save
 		push %bx			# Save
 		mov twiddle_index,%al		# Load index
-		mov twiddle_chars,%bx		# Address table
+		mov $twiddle_chars,%bx		# Address table
 		inc %al				# Next
 		and $3,%al			#  char
 		mov %al,twiddle_index		# Save index for next call

==== //depot/projects/smpng/sys/compat/linux/linux_emul.c#7 (text+ko) ====

@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/compat/linux/linux_emul.c,v 1.15 2007/02/02 08:58:16 kib Exp $");
+__FBSDID("$FreeBSD: src/sys/compat/linux/linux_emul.c,v 1.17 2007/02/23 22:39:26 netchild Exp $");
 
 #include "opt_compat.h"
 
@@ -168,26 +168,29 @@
 
 	/* reparent all procs that are not a thread leader to initproc */
 	if (em->shared->group_pid != p->p_pid) {
-	   	sx_xlock(&proctree_lock);
-	   	wakeup(initproc);
+		child_clear_tid = em->child_clear_tid;
+		EMUL_UNLOCK(&emul_lock);
+		sx_xlock(&proctree_lock);
+		wakeup(initproc);
 		PROC_LOCK(p);
 		proc_reparent(p, initproc);
 		p->p_sigparent = SIGCHLD;
 		PROC_UNLOCK(p);
-	   	sx_xunlock(&proctree_lock);
+		sx_xunlock(&proctree_lock);
+	} else {
+		child_clear_tid = em->child_clear_tid;
+		EMUL_UNLOCK(&emul_lock);	
 	}
 
-	child_clear_tid = em->child_clear_tid;
-
-	EMUL_UNLOCK(&emul_lock);
-
 	EMUL_SHARED_WLOCK(&emul_shared_lock);
 	LIST_REMOVE(em, threads);
 
 	em->shared->refs--;
-	if (em->shared->refs == 0)
+	if (em->shared->refs == 0) {
+		EMUL_SHARED_WUNLOCK(&emul_shared_lock);
 		free(em->shared, M_LINUX);
-	EMUL_SHARED_WUNLOCK(&emul_shared_lock);
+	} else	
+		EMUL_SHARED_WUNLOCK(&emul_shared_lock);
 
 	if (child_clear_tid != NULL) {
 		struct linux_sys_futex_args cup;
@@ -272,9 +275,11 @@
 		PROC_UNLOCK(p);
 
 		em->shared->refs--;
-		if (em->shared->refs == 0)
+		if (em->shared->refs == 0) {
+			EMUL_SHARED_WUNLOCK(&emul_shared_lock);
 			free(em->shared, M_LINUX);
-		EMUL_SHARED_WUNLOCK(&emul_shared_lock);
+		} else
+			EMUL_SHARED_WUNLOCK(&emul_shared_lock);
 
 		free(em, M_LINUX);
 	}

==== //depot/projects/smpng/sys/compat/linux/linux_misc.c#79 (text+ko) ====

@@ -28,7 +28,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/compat/linux/linux_misc.c,v 1.206 2007/02/01 13:33:33 kib Exp $");
+__FBSDID("$FreeBSD: src/sys/compat/linux/linux_misc.c,v 1.207 2007/02/23 22:39:26 netchild Exp $");
 
 #include "opt_compat.h"
 #include "opt_mac.h"
@@ -1642,6 +1642,7 @@
 	struct proc *p = td->td_proc;
 	char comm[LINUX_MAX_COMM_LEN];
 	struct linux_emuldata *em;
+	int pdeath_signal;
 
 #ifdef DEBUG
 	if (ldebug(prctl))
@@ -1661,10 +1662,11 @@
 	case LINUX_PR_GET_PDEATHSIG:
 		em = em_find(p, EMUL_DOLOCK);
 		KASSERT(em != NULL, ("prctl: emuldata not found.\n"));
-		error = copyout(&em->pdeath_signal,
+		pdeath_signal = em->pdeath_signal;
+		EMUL_UNLOCK(&emul_lock);
+		error = copyout(&pdeath_signal,
 		    (void *)(register_t)args->arg2,
-		    sizeof(em->pdeath_signal));
-		EMUL_UNLOCK(&emul_lock);
+		    sizeof(pdeath_signal));
 		break;
 	case LINUX_PR_SET_NAME:
 		/*

==== //depot/projects/smpng/sys/conf/files#198 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/files,v 1.1177 2007/02/15 01:28:22 rwatson Exp $
+# $FreeBSD: src/sys/conf/files,v 1.1178 2007/02/24 11:38:47 bms Exp $
 #
 # The long compile-with and dependency lines are required because of
 # limitations in config: backslash-newline doesn't work in strings, and
@@ -1760,7 +1760,7 @@
 netinet/ip_input.c		optional inet
 netinet/ip_ipsec.c		optional ipsec
 netinet/ip_ipsec.c		optional fast_ipsec
-netinet/ip_mroute.c		optional mrouting
+netinet/ip_mroute.c		optional mrouting inet | mrouting inet6
 netinet/ip_options.c		optional inet
 netinet/ip_output.c		optional inet
 netinet/raw_ip.c		optional inet
@@ -1815,7 +1815,7 @@
 netinet6/ip6_forward.c		optional inet6
 netinet6/ip6_id.c		optional inet6
 netinet6/ip6_input.c		optional inet6
-netinet6/ip6_mroute.c		optional inet6
+netinet6/ip6_mroute.c		optional mrouting inet6
 netinet6/ip6_output.c		optional inet6
 netinet6/ipcomp_core.c		optional ipsec
 netinet6/ipcomp_input.c		optional ipsec

==== //depot/projects/smpng/sys/dev/fdc/fdc.c#28 (text+ko) ====

@@ -51,7 +51,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/fdc/fdc.c,v 1.315 2007/02/23 12:18:40 piso Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/fdc/fdc.c,v 1.316 2007/02/23 23:06:10 jhb Exp $");
 
 #include "opt_fdc.h"
 
@@ -790,7 +790,7 @@
 	if (fdc->flags & FDC_NEEDS_RESET) {
 		fdc->flags &= ~FDC_NEEDS_RESET;
 		fdc_reset(fdc);
-		msleep(fdc, NULL, PRIBIO, "fdcrst", hz);
+		tsleep(fdc, PRIBIO, "fdcrst", hz);
 		/* Discard results */
 		for (i = 0; i < 4; i++)
 			fdc_sense_int(fdc, &st0, &cyl);
@@ -855,7 +855,7 @@
 		retry_line = __LINE__;
 		if (fdc_cmd(fdc, 2, NE7CMD_RECAL, fd->fdsu, 0))
 			return (1);
-		msleep(fdc, NULL, PRIBIO, "fdrecal", hz);
+		tsleep(fdc, PRIBIO, "fdrecal", hz);
 		retry_line = __LINE__;
 		if (fdc_sense_int(fdc, &st0, &cyl) == FD_NOT_VALID)
 			return (1); /* XXX */
@@ -867,7 +867,7 @@
 		retry_line = __LINE__;
 		if (fdc_cmd(fdc, 3, NE7CMD_SEEK, fd->fdsu, 1, 0))
 			return (1);
-		msleep(fdc, NULL, PRIBIO, "fdseek", hz);
+		tsleep(fdc, PRIBIO, "fdseek", hz);
 		retry_line = __LINE__;
 		if (fdc_sense_int(fdc, &st0, &cyl) == FD_NOT_VALID)
 			return (1); /* XXX */
@@ -956,7 +956,7 @@
 		retry_line = __LINE__;
 		if (fdc_cmd(fdc, 2, NE7CMD_RECAL, fd->fdsu, 0))
 			return (1);
-		msleep(fdc, NULL, PRIBIO, "fdrecal", hz);
+		tsleep(fdc, PRIBIO, "fdrecal", hz);
 		retry_line = __LINE__;
 		if (fdc_sense_int(fdc, &st0, &cyl) == FD_NOT_VALID)
 			return (1); /* XXX */
@@ -967,7 +967,7 @@
 		fd->track = 0;
 		/* let the heads settle */
 		if (settle)
-			msleep(fdc->fd, NULL, PRIBIO, "fdhdstl", settle);
+			tsleep(fdc->fd, PRIBIO, "fdhdstl", settle);
 	}
 
 	/*
@@ -983,7 +983,7 @@
 		retry_line = __LINE__;
 		if (fdc_cmd(fdc, 3, NE7CMD_SEEK, fd->fdsu, descyl, 0))
 			return (1);
-		msleep(fdc, NULL, PRIBIO, "fdseek", hz);
+		tsleep(fdc, PRIBIO, "fdseek", hz);
 		retry_line = __LINE__;
 		if (fdc_sense_int(fdc, &st0, &cyl) == FD_NOT_VALID)
 			return (1); /* XXX */
@@ -994,7 +994,7 @@
 		}
 		/* let the heads settle */
 		if (settle)
-			msleep(fdc->fd, NULL, PRIBIO, "fdhdstl", settle);
+			tsleep(fdc->fd, PRIBIO, "fdhdstl", settle);
 	}
 	fd->track = cylinder;
 
@@ -1080,7 +1080,7 @@
 	}
 
 	/* Wait for interrupt */
-	i = msleep(fdc, NULL, PRIBIO, "fddata", hz);
+	i = tsleep(fdc, PRIBIO, "fddata", hz);
 
 	/* PIO if the read looks good */
 	if (i == 0 && (fdc->flags & FDC_NODMA) && (bp->bio_cmd & BIO_READ))
@@ -1279,7 +1279,7 @@
 	fd_enqueue(fd, bp);
 
 	do {
-		msleep(bp, NULL, PRIBIO, "fdwait", hz);
+		tsleep(bp, PRIBIO, "fdwait", hz);
 	} while (!(bp->bio_flags & BIO_DONE));
 	error = bp->bio_error;
 

==== //depot/projects/smpng/sys/dev/isp/isp.c#54 (text+ko) ====

@@ -43,7 +43,7 @@
 #endif
 #ifdef	__FreeBSD__
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/isp/isp.c,v 1.138 2007/02/23 05:39:58 mjacob Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/isp/isp.c,v 1.139 2007/02/23 21:59:21 mjacob Exp $");
 #include <dev/isp/isp_freebsd.h>
 #endif
 #ifdef	__OpenBSD__
@@ -1555,6 +1555,7 @@
 	fcparam *fcp;
 	isp_icb_t local, *icbp = &local;
 	mbreg_t mbs;
+	int ownloopid;
 	uint64_t nwwn, pwwn;
 
 	fcp = isp->isp_param;
@@ -1630,25 +1631,17 @@
 	icbp->icb_retry_delay = fcp->isp_retry_delay;
 	icbp->icb_retry_count = fcp->isp_retry_count;
 	icbp->icb_hardaddr = fcp->isp_loopid;
+	ownloopid = (isp->isp_confopts & ISP_CFG_OWNLOOPID) != 0;
 	if (icbp->icb_hardaddr > 125) {
-		/*
-		 * We end up with these Loop IDs for F-Port topologies
-		 */
-		if (icbp->icb_hardaddr != 0xff &&
-		    icbp->icb_hardaddr != 0x800 &&
-		    icbp->icb_hardaddr != 0xffff) {
-			isp_prt(isp, ISP_LOGERR,
-			    "bad hard address %u- resetting to zero",
-			    icbp->icb_hardaddr); 
-			icbp->icb_hardaddr = 0;
-		}
+		icbp->icb_hardaddr = 0;
+		ownloopid = 0;
 	}
 
 	/*
 	 * Our life seems so much better with 2200s and later with
 	 * the latest f/w if we set Hard Address.
 	 */
-	if (ISP_FW_NEWER_THAN(isp, 2, 2, 5)) {
+	if (ownloopid || ISP_FW_NEWER_THAN(isp, 2, 2, 5)) {
 		icbp->icb_fwoptions |= ICBOPT_HARD_ADDRESS;
 	}
 
@@ -1800,6 +1793,7 @@
 	isp_mboxcmd(isp, &mbs);
 	FC_SCRATCH_RELEASE(isp);
 	if (mbs.param[0] != MBOX_COMMAND_COMPLETE) {
+		isp_print_bytes(isp, "isp_fibre_init", sizeof (*icbp), icbp);
 		return;
 	}
 	isp->isp_reqidx = 0;
@@ -1818,6 +1812,7 @@
 	fcparam *fcp;
 	isp_icb_2400_t local, *icbp = &local;
 	mbreg_t mbs;
+	int ownloopid;
 	uint64_t nwwn, pwwn;
 
 	fcp = isp->isp_param;
@@ -1886,21 +1881,12 @@
 	icbp->icb_fwoptions1 = fcp->isp_fwoptions;
 
 	icbp->icb_hardaddr = fcp->isp_loopid;
+	ownloopid = (isp->isp_confopts & ISP_CFG_OWNLOOPID) != 0;
 	if (icbp->icb_hardaddr > 125) {
-		/*
-		 * We end up with these Loop IDs for F-Port topologies
-		 */
-		if (icbp->icb_hardaddr != 0xff &&
-		    icbp->icb_hardaddr != 0x800 &&
-		    icbp->icb_hardaddr != 0xffff) {
-			isp_prt(isp, ISP_LOGERR,
-			    "bad hard address %u- resetting to zero",
-			    icbp->icb_hardaddr); 
-			icbp->icb_hardaddr = 0;
-		}
+		icbp->icb_hardaddr = 0;
+		ownloopid = 0;
 	}
-
-	if (isp->isp_confopts & ISP_CFG_OWNLOOPID) {
+	if (ownloopid) {
 		icbp->icb_fwoptions1 |= ICB2400_OPT1_HARD_ADDRESS;
 	}
 
@@ -2280,7 +2266,6 @@
 		    "isp_plogi_old: portid 0x%06x already logged in as %u",
 		    portid, mbs.param[1]);
 		return (MBOX_PORT_ID_USED | (mbs.param[1] << 16));
-		break;
 
 	case MBOX_LOOP_ID_USED:
 		isp_prt(isp, ISP_LOGDEBUG0,
@@ -2963,19 +2948,17 @@
 		/*
 		 * Check to make sure it's still a valid entry. The 24XX seems
 		 * to return a portid but not a WWPN/WWNN or role for devices
-		 * which shift on a loop, or have a WWPN/WWNN but no portid.
+		 * which shift on a loop.
 		 */
 		if (tmp.node_wwn == 0 || tmp.port_wwn == 0 || tmp.portid == 0) {
-			if (isp->isp_dblev & ISP_LOGSANCFG) {
-				int a, b, c;
-				a = !(tmp.node_wwn == 0);
-				b = !(tmp.port_wwn == 0);
-				c = !(tmp.portid == 0);
-				isp_prt(isp, ISP_LOGALL,
-				    "bad pdb (%1d%1d%1d) @ handle 0x%x",
-				    a, b, c, handle);
-				isp_dump_portdb(isp);
-			}
+			int a, b, c;
+			a = (tmp.node_wwn == 0);
+			b = (tmp.port_wwn == 0);
+			c = (tmp.portid == 0);
+			isp_prt(isp, ISP_LOGWARN,
+			    "bad pdb (%1d%1d%1d) @ handle 0x%x", a, b, c,
+			    handle);
+			isp_dump_portdb(isp);
 			continue;
 		}
 
@@ -4576,7 +4559,6 @@
 		if ((IS_FC(isp) && mbox != ASYNC_RIO_RESP) ||
 		    isp->isp_state != ISP_RUNSTATE) {
 			goto out;
-			return;
 		}
 	}
 
@@ -7523,11 +7505,11 @@
 	for (loops = 0; loops < 5000; loops++) {
 		USEC_DELAY(10);
 		tmp = ISP_READ(isp, BIU2400_FLASH_ADDR);
-		if ((tmp & (1 << 31)) != 0) {
+		if ((tmp & (1U << 31)) != 0) {
 			break;
 		}
 	}
-	if (tmp & (1 << 31)) {
+	if (tmp & (1U << 31)) {
 		tmp = ISP_READ(isp, BIU2400_FLASH_DATA);
 		*rp = tmp;
 	} else {

==== //depot/projects/smpng/sys/dev/isp/isp_freebsd.h#38 (text+ko) ====

@@ -1,4 +1,4 @@
-/* $FreeBSD: src/sys/dev/isp/isp_freebsd.h,v 1.99 2007/02/15 17:21:30 luigi Exp $ */
+/* $FreeBSD: src/sys/dev/isp/isp_freebsd.h,v 1.100 2007/02/23 23:13:46 mjacob Exp $ */
 /*-
  * Qlogic ISP SCSI Host Adapter FreeBSD Wrapper Definitions
  *
@@ -492,6 +492,12 @@
 	bus_dma_tag_create(a, b, c, d, e, f, g, h, i, j, k, \
 	busdma_lock_mutex, &Giant, z)
 #endif
+#if __FreeBSD_version < 700031
+#define	isp_setup_intr(d, i, f, U, if, ifa, hp)	\
+	bus_setup_intr(d, i, f, if, ifa, hp)
+#else
+#define	isp_setup_intr	bus_setup_intr
+#endif
 
 /* Should be BUS_SPACE_MAXSIZE, but MAXPHYS is larger than BUS_SPACE_MAXSIZE */
 #define ISP_NSEGS ((MAXPHYS / PAGE_SIZE) + 1)  

==== //depot/projects/smpng/sys/dev/isp/isp_pci.c#51 (text+ko) ====

@@ -30,7 +30,7 @@
  * FreeBSD Version.
  */
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/isp/isp_pci.c,v 1.136 2007/02/23 12:18:44 piso Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/isp/isp_pci.c,v 1.137 2007/02/23 23:13:46 mjacob Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -1170,7 +1170,8 @@
 	locksetup++;
 #endif
 
-	if (bus_setup_intr(dev, irq, ISP_IFLAGS, NULL, isp_pci_intr, isp, &pcs->ih)) {
+	if (isp_setup_intr(dev, irq, ISP_IFLAGS, NULL, isp_pci_intr, isp,
+	    &pcs->ih)) {
 		device_printf(dev, "could not setup interrupt\n");
 		goto bad;
 	}

==== //depot/projects/smpng/sys/dev/isp/isp_sbus.c#22 (text+ko) ====

@@ -29,7 +29,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/isp/isp_sbus.c,v 1.28 2007/02/23 12:18:44 piso Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/isp/isp_sbus.c,v 1.29 2007/02/23 23:13:46 mjacob Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -311,7 +311,7 @@
 		goto bad;
 	}
 
-	if (bus_setup_intr(dev, sbs->sbus_ires, ISP_IFLAGS,
+	if (isp_setup_intr(dev, sbs->sbus_ires, ISP_IFLAGS,
 	    NULL, isp_sbus_intr, isp, &sbs->ih)) {
 		device_printf(dev, "could not setup interrupt\n");
 		goto bad;

==== //depot/projects/smpng/sys/dev/isp/ispmbox.h#26 (text+ko) ====

@@ -1,4 +1,4 @@
-/* $FreeBSD: src/sys/dev/isp/ispmbox.h,v 1.57 2006/12/17 16:59:19 mjacob Exp $ */
+/* $FreeBSD: src/sys/dev/isp/ispmbox.h,v 1.58 2007/02/23 21:59:21 mjacob Exp $ */
 /*-
  * Mailbox and Queue Entry Definitions for for Qlogic ISP SCSI adapters.
  *
@@ -643,7 +643,7 @@
 	uint16_t	ms_flags;
 	uint16_t	ms_reserved1;	/* low 8 bits */
 	uint16_t	ms_time;
-	uint16_t	ms_cmd_cnt;	/* Command DSD count */;
+	uint16_t	ms_cmd_cnt;	/* Command DSD count */
 	uint16_t	ms_tot_cnt;	/* Total DSD Count */
 	uint8_t		ms_type;	/* MS type */
 	uint8_t		ms_r_ctl;	/* R_CTL */

==== //depot/projects/smpng/sys/dev/isp/ispreg.h#10 (text+ko) ====

@@ -1,4 +1,4 @@
-/* $FreeBSD: src/sys/dev/isp/ispreg.h,v 1.27 2006/11/02 03:21:31 mjacob Exp $ */
+/* $FreeBSD: src/sys/dev/isp/ispreg.h,v 1.28 2007/02/23 21:59:21 mjacob Exp $ */
 /*-
  * Machine Independent (well, as best as possible) register
  * definitions for Qlogic ISP SCSI adapters.
@@ -409,14 +409,14 @@
 
 /* BIU2400_HCCR definitions */
 
-#define	HCCR_2400_CMD_NOP		(0x0 << 28)
-#define	HCCR_2400_CMD_RESET		(0x1 << 28)
-#define	HCCR_2400_CMD_CLEAR_RESET	(0x2 << 28)
-#define	HCCR_2400_CMD_PAUSE		(0x3 << 28)
-#define	HCCR_2400_CMD_RELEASE		(0x4 << 28)
-#define	HCCR_2400_CMD_SET_HOST_INT	(0x5 << 28)
-#define	HCCR_2400_CMD_CLEAR_HOST_INT	(0x6 << 28)
-#define	HCCR_2400_CMD_CLEAR_RISC_INT	(0xA << 28)
+#define	HCCR_2400_CMD_NOP		0x00000000
+#define	HCCR_2400_CMD_RESET		0x10000000
+#define	HCCR_2400_CMD_CLEAR_RESET	0x20000000
+#define	HCCR_2400_CMD_PAUSE		0x30000000
+#define	HCCR_2400_CMD_RELEASE		0x40000000
+#define	HCCR_2400_CMD_SET_HOST_INT	0x50000000
+#define	HCCR_2400_CMD_CLEAR_HOST_INT	0x60000000
+#define	HCCR_2400_CMD_CLEAR_RISC_INT	0xA0000000
 
 #define	HCCR_2400_RISC_ERR(x)		(((x) >> 12) & 0x7)	/* RO */
 #define	HCCR_2400_RISC2HOST_INT		(1 << 6)		/* RO */

==== //depot/projects/smpng/sys/dev/mpt/mpt.h#20 (text+ko) ====

@@ -1,4 +1,4 @@
-/* $FreeBSD: src/sys/dev/mpt/mpt.h,v 1.37 2007/01/05 22:49:05 mjacob Exp $ */
+/* $FreeBSD: src/sys/dev/mpt/mpt.h,v 1.38 2007/02/23 23:13:46 mjacob Exp $ */
 /*-
  * Generic defines for LSI '909 FC  adapters.
  * FreeBSD Version.
@@ -258,6 +258,13 @@
 };
 
 void mpt_map_rquest(void *, bus_dma_segment_t *, int, int);
+/* **************************** NewBUS interrupt Crock ************************/
+#if __FreeBSD_version < 700031
+#define	mpt_setup_intr(d, i, f, U, if, ifa, hp)	\
+	bus_setup_intr(d, i, f, if, ifa, hp)
+#else
+#define	mpt_setup_intr	bus_setup_intr
+#endif
 
 /**************************** Kernel Thread Support ***************************/
 #if __FreeBSD_version > 500005

==== //depot/projects/smpng/sys/dev/mpt/mpt_pci.c#31 (text+ko) ====

@@ -99,7 +99,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/mpt/mpt_pci.c,v 1.48 2007/02/23 12:18:46 piso Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/mpt/mpt_pci.c,v 1.49 2007/02/23 23:13:46 mjacob Exp $");
 
 #include <dev/mpt/mpt.h>
 #include <dev/mpt/mpt_cam.h>
@@ -563,7 +563,7 @@
 	mpt_disable_ints(mpt);
 
 	/* Register the interrupt handler */
-	if (bus_setup_intr(dev, mpt->pci_irq, MPT_IFLAGS, NULL, mpt_pci_intr,
+	if (mpt_setup_intr(dev, mpt->pci_irq, MPT_IFLAGS, NULL, mpt_pci_intr,
 	    mpt, &mpt->ih)) {
 		device_printf(dev, "could not setup interrupt\n");
 		goto bad;

==== //depot/projects/smpng/sys/dev/pdq/if_fea.c#11 (text+ko) ====

@@ -21,7 +21,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/dev/pdq/if_fea.c,v 1.29 2005/11/11 07:36:13 ru Exp $
+ * $FreeBSD: src/sys/dev/pdq/if_fea.c,v 1.30 2007/02/23 20:11:25 piso Exp $
  */
 
 /*
@@ -235,7 +235,7 @@
 	}
 
 	error = bus_setup_intr(dev, sc->irq, INTR_TYPE_NET,
-		               pdq_eisa_ifintr, dev, &sc->irq_ih);
+		               NULL, pdq_eisa_ifintr, dev, &sc->irq_ih);
 	if (error) {
 		device_printf(dev, "Failed to setup interrupt handler.\n");
 		error = ENXIO;

==== //depot/projects/smpng/sys/dev/ppc/ppc.c#15 (text+ko) ====

@@ -26,7 +26,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/ppc/ppc.c,v 1.54 2007/02/23 16:25:08 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/ppc/ppc.c,v 1.55 2007/02/23 23:05:31 jhb Exp $");
 
 #include "opt_ppc.h"
 
@@ -71,7 +71,7 @@
 #define DEVTOSOFTC(dev) ((struct ppc_data *)device_get_softc(dev))
 
 devclass_t ppc_devclass;
-const char ppc_driver_name[] = "ppc";  
+const char ppc_driver_name[] = "ppc";
 
 static char *ppc_models[] = {
 	"SMC-like", "SMC FDC37C665GT", "SMC FDC37C666GT", "PC87332", "PC87306",

==== //depot/projects/smpng/sys/dev/si/si_eisa.c#6 (text+ko) ====

@@ -20,7 +20,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/si/si_eisa.c,v 1.6 2005/01/06 01:43:14 imp Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/si/si_eisa.c,v 1.7 2007/02/23 20:11:27 piso Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -102,7 +102,7 @@
 	}
 	sc->sc_irq = rman_get_start(sc->sc_irq_res);
 	error = bus_setup_intr(dev, sc->sc_irq_res, INTR_TYPE_TTY,
-			       si_intr, sc,&ih);
+			       NULL, si_intr, sc,&ih);
 	if (error) {
 		device_printf(dev, "couldn't activate interrupt");
 		goto fail;

==== //depot/projects/smpng/sys/dev/wl/if_wl.c#30 (text+ko) ====

@@ -173,7 +173,7 @@
 */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/wl/if_wl.c,v 1.74 2006/11/06 13:41:56 rwatson Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/wl/if_wl.c,v 1.75 2007/02/23 20:11:27 piso Exp $");
 
 /*
  * NOTE:
@@ -573,7 +573,7 @@
 	printf(", Freq %d MHz",sc->freq24); 		/* 2.4 Gz       */
     printf("\n");                                       /* 2.4 Gz       */
 
-    bus_setup_intr(device, sc->res_irq, INTR_TYPE_NET, wlintr, sc, &sc->intr_cookie);
+    bus_setup_intr(device, sc->res_irq, INTR_TYPE_NET, NULL, wlintr, sc, &sc->intr_cookie);
 
     if (bootverbose)
 	wldump(sc);

==== //depot/projects/smpng/sys/geom/geom_dev.c#42 (text+ko) ====

@@ -34,7 +34,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/geom/geom_dev.c,v 1.90 2006/06/18 22:01:15 simon Exp $");
+__FBSDID("$FreeBSD: src/sys/geom/geom_dev.c,v 1.91 2007/02/23 23:06:10 jhb Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -416,7 +416,7 @@
 
 	/* Wait for the cows to come home */
 	while (cp->nstart != cp->nend)
-		msleep(&dev, NULL, PRIBIO, "gdevorphan", hz / 10);
+		tsleep(&dev, PRIBIO, "gdevorphan", hz / 10);
 
 	if (cp->acr > 0 || cp->acw > 0 || cp->ace > 0)
 		g_access(cp, -cp->acr, -cp->acw, -cp->ace);

==== //depot/projects/smpng/sys/geom/geom_io.c#45 (text+ko) ====

@@ -34,7 +34,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/geom/geom_io.c,v 1.72 2007/01/28 23:36:07 pjd Exp $");
+__FBSDID("$FreeBSD: src/sys/geom/geom_io.c,v 1.73 2007/02/23 23:06:10 jhb Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -492,7 +492,7 @@
 		g_bioq_unlock(&g_bio_run_down);
 		if (pace > 0) {
 			CTR1(KTR_GEOM, "g_down pacing self (pace %d)", pace);
-			msleep(&error, NULL, PRIBIO, "g_down", hz/10);
+			tsleep(&error, PRIBIO, "g_down", hz/10);
 			pace--;
 		}
 		error = g_io_check(bp);

==== //depot/projects/smpng/sys/i386/linux/linux_machdep.c#43 (text+ko) ====

@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/i386/linux/linux_machdep.c,v 1.70 2007/02/15 00:54:40 jkim Exp $");
+__FBSDID("$FreeBSD: src/sys/i386/linux/linux_machdep.c,v 1.71 2007/02/23 22:39:26 netchild Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -435,6 +435,10 @@
 	if ((args->flags & 0xffffff00) == THREADING_FLAGS)
 		ff |= RFTHREAD;
 
+	if (args->flags & CLONE_PARENT_SETTID)
+		if (args->parent_tidptr == NULL)
+			return (EINVAL);
+
 	error = fork1(td, ff, 0, &p2);
 	if (error)
 		return (error);
@@ -453,17 +457,6 @@
 	em = em_find(p2, EMUL_DOLOCK);
 	KASSERT(em != NULL, ("clone: emuldata not found.\n"));
 	/* and adjust it */
-	if (args->flags & CLONE_PARENT_SETTID) {
-	   	if (args->parent_tidptr == NULL) {
-		   	EMUL_UNLOCK(&emul_lock);
-			return (EINVAL);
-		}
-		error = copyout(&p2->p_pid, args->parent_tidptr, sizeof(p2->p_pid));
-		if (error) {
-		   	EMUL_UNLOCK(&emul_lock);
-			return (error);
-		}
-	}
 
 	if (args->flags & CLONE_THREAD) {
 	   	/* XXX: linux mangles pgrp and pptr somehow
@@ -489,6 +482,12 @@
 
 	EMUL_UNLOCK(&emul_lock);
 
+	if (args->flags & CLONE_PARENT_SETTID) {
+		error = copyout(&p2->p_pid, args->parent_tidptr, sizeof(p2->p_pid));
+		if (error)
+			printf(LMSG("copyout failed!"));
+	}
+
 	PROC_LOCK(p2);
 	p2->p_sigparent = exit_signal;
 	PROC_UNLOCK(p2);
@@ -507,34 +506,37 @@
 		struct segment_descriptor sd;
 
 	   	error = copyin((void *)td->td_frame->tf_esi, &info, sizeof(struct l_user_desc));
-		if (error)
-   		   	return (error);
+		if (error) {
+			printf(LMSG("copyin failed!"));
+		} else {
 		
-		idx = info.entry_number;
+			idx = info.entry_number;
 		
-		/* 
-		 * looks like we're getting the idx we returned
-		 * in the set_thread_area() syscall
-		 */
-		if (idx != 6 && idx != 3)
-			return (EINVAL);
+			/* 
+			 * looks like we're getting the idx we returned
+			 * in the set_thread_area() syscall
+			 */
+			if (idx != 6 && idx != 3) {
+				printf(LMSG("resetting idx!"));
+				idx = 3;
+			}
 
-		/* this doesnt happen in practice */
-		if (idx == 6) {
-		   	/* we might copy out the entry_number as 3 */
-		   	info.entry_number = 3;
-			error = copyout(&info, (void *) td->td_frame->tf_esi, sizeof(struct l_user_desc));
-			if (error)
-	   		   	return (error);
-		}
+			/* this doesnt happen in practice */
+			if (idx == 6) {
+		   		/* we might copy out the entry_number as 3 */
+			   	info.entry_number = 3;
+				error = copyout(&info, (void *) td->td_frame->tf_esi, sizeof(struct l_user_desc));
+				if (error)
+					printf(LMSG("copyout failed!"));
+			}
 
-		a[0] = LDT_entry_a(&info);
-		a[1] = LDT_entry_b(&info);
+			a[0] = LDT_entry_a(&info);
+			a[1] = LDT_entry_b(&info);
 
-		memcpy(&sd, &a, sizeof(a));
+			memcpy(&sd, &a, sizeof(a));
 #ifdef DEBUG
-	if (ldebug(clone))
-	   	printf("Segment created in clone with CLONE_SETTLS: lobase: %x, hibase: %x, lolimit: %x, hilimit: %x, type: %i, dpl: %i, p: %i, xx: %i, def32: %i, gran: %i\n", sd.sd_lobase,
+		if (ldebug(clone))
+		   	printf("Segment created in clone with CLONE_SETTLS: lobase: %x, hibase: %x, lolimit: %x, hilimit: %x, type: %i, dpl: %i, p: %i, xx: %i, def32: %i, gran: %i\n", sd.sd_lobase,
 			sd.sd_hibase,
 			sd.sd_lolimit,
 			sd.sd_hilimit,
@@ -546,9 +548,10 @@
 			sd.sd_gran);
 #endif
 
-		/* set %gs */
-		td2->td_pcb->pcb_gsd = sd;
-		td2->td_pcb->pcb_gs = GSEL(GUGS_SEL, SEL_UPL);
+			/* set %gs */
+			td2->td_pcb->pcb_gsd = sd;
+			td2->td_pcb->pcb_gs = GSEL(GUGS_SEL, SEL_UPL);
+		}
 	} 
 
 #ifdef DEBUG

==== //depot/projects/smpng/sys/i4b/capi/iavc/iavc_isa.c#12 (text+ko) ====

@@ -24,7 +24,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/i4b/capi/iavc/iavc_isa.c,v 1.10 2006/05/16 14:37:57 phk Exp $");
+__FBSDID("$FreeBSD: src/sys/i4b/capi/iavc/iavc_isa.c,v 1.11 2007/02/23 20:11:26 piso Exp $");
 
 #include <sys/param.h>
 #include <sys/kernel.h>
@@ -243,7 +243,7 @@
 	/* setup the interrupt */
 
 	if(bus_setup_intr(dev, sc->sc_resources.irq, INTR_TYPE_NET,
-		      (void(*)(void*))iavc_isa_intr,
+		      NULL, (void(*)(void*))iavc_isa_intr,
 		      sc, &ih))
 	{
 		printf("iavc%d: irq setup failed\n", unit);

==== //depot/projects/smpng/sys/i4b/capi/iavc/iavc_pci.c#13 (text+ko) ====

@@ -28,7 +28,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/i4b/capi/iavc/iavc_pci.c,v 1.11 2006/05/16 14:37:57 phk Exp $");
+__FBSDID("$FreeBSD: src/sys/i4b/capi/iavc/iavc_pci.c,v 1.12 2007/02/23 20:11:26 piso Exp $");
 
 #include <sys/param.h>
 #include <sys/kernel.h>
@@ -250,7 +250,7 @@
     /* setup the interrupt */
 
     if(bus_setup_intr(dev, sc->sc_resources.irq, INTR_TYPE_NET,
-		      (void(*)(void*))iavc_pci_intr,
+		      NULL, (void(*)(void*))iavc_pci_intr,
 		      sc, &ih)) {
 	printf("iavc%d: irq setup failed\n", unit);
 	return(ENXIO);

==== //depot/projects/smpng/sys/i4b/layer1/ifpi/i4b_ifpi_pci.c#13 (text+ko) ====

@@ -39,7 +39,7 @@
  *---------------------------------------------------------------------------*/
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/i4b/layer1/ifpi/i4b_ifpi_pci.c,v 1.17 2005/01/06 22:18:19 imp Exp $");
+__FBSDID("$FreeBSD: src/sys/i4b/layer1/ifpi/i4b_ifpi_pci.c,v 1.18 2007/02/24 02:28:07 piso Exp $");
 
 #include "opt_i4b.h"
 
@@ -540,7 +540,7 @@
 		goto fail;
 	}
 
-	error = bus_setup_intr(dev, sc->sc_resources.irq, INTR_TYPE_NET, avma1pp_intr, sc, &ih);
+	error = bus_setup_intr(dev, sc->sc_resources.irq, INTR_TYPE_NET, NULL, avma1pp_intr, sc, &ih);
 
 	if (error) {
 		bus_release_resource(dev, SYS_RES_IRQ, 0, sc->sc_resources.irq);

==== //depot/projects/smpng/sys/i4b/layer1/ifpi2/i4b_ifpi2_pci.c#15 (text+ko) ====

@@ -38,7 +38,7 @@
  *---------------------------------------------------------------------------*/
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/i4b/layer1/ifpi2/i4b_ifpi2_pci.c,v 1.17 2005/01/06 22:18:19 imp Exp $");
+__FBSDID("$FreeBSD: src/sys/i4b/layer1/ifpi2/i4b_ifpi2_pci.c,v 1.18 2007/02/23 20:11:26 piso Exp $");
 
 #include "opt_i4b.h"
 
@@ -495,7 +495,7 @@
 		goto fail;
 	}
 
-	error = bus_setup_intr(dev, sc->sc_resources.irq, INTR_TYPE_NET, avma1pp2_intr, sc, &ih);
+	error = bus_setup_intr(dev, sc->sc_resources.irq, INTR_TYPE_NET, NULL, avma1pp2_intr, sc, &ih);
 
 	if (error) {
 		bus_release_resource(dev, SYS_RES_IRQ, 0, sc->sc_resources.irq);

==== //depot/projects/smpng/sys/i4b/layer1/ifpnp/i4b_ifpnp_avm.c#10 (text+ko) ====

@@ -38,7 +38,7 @@
  *---------------------------------------------------------------------------*/
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/i4b/layer1/ifpnp/i4b_ifpnp_avm.c,v 1.12 2005/01/06 22:18:19 imp Exp $");
+__FBSDID("$FreeBSD: src/sys/i4b/layer1/ifpnp/i4b_ifpnp_avm.c,v 1.13 2007/02/23 20:11:26 piso Exp $");
 
 #include "opt_i4b.h"
 
@@ -516,7 +516,7 @@
 	/* not needed */
 	sc->sc_irq = rman_get_start(sc->sc_resources.irq);
 	bus_setup_intr(dev,sc->sc_resources.irq,INTR_TYPE_NET,
-				(void(*)(void*))avm_pnp_intr, sc,&ih);
+				NULL, (void(*)(void*))avm_pnp_intr, sc,&ih);
 	sc->sc_unit = unit;
 
 	/* end of new-bus stuff */

==== //depot/projects/smpng/sys/i4b/layer1/ihfc/i4b_ihfc_pnp.c#7 (text+ko) ====

@@ -36,7 +36,7 @@
  *---------------------------------------------------------------------------*/
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/i4b/layer1/ihfc/i4b_ihfc_pnp.c,v 1.10 2005/01/06 22:18:20 imp Exp $");
+__FBSDID("$FreeBSD: src/sys/i4b/layer1/ihfc/i4b_ihfc_pnp.c,v 1.11 2007/02/23 20:11:26 piso Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -206,7 +206,7 @@
 				/* setup interrupt routine now to avvoid stray	*
 				 * interrupts.					*/
 
-				bus_setup_intr(dev, S_IRQ, INTR_TYPE_NET, (void(*)(void*))
+				bus_setup_intr(dev, S_IRQ, INTR_TYPE_NET, NULL, (void(*)(void*))
 					HFC_INTR, sc, &dummy);
 
 				flag = 1;
@@ -298,7 +298,7 @@
 		/* setup interrupt routine now to avvoid stray	*
 		 * interrupts.					*/
 
-		bus_setup_intr(dev, S_IRQ, INTR_TYPE_NET, (void(*)(void*))
+		bus_setup_intr(dev, S_IRQ, INTR_TYPE_NET, NULL, (void(*)(void*))
 			HFC_INTR, sc, &dummy);
 
 		flag = 1;

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


More information about the p4-projects mailing list