From owner-p4-projects@FreeBSD.ORG Sun Oct 18 15:59:28 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 180461065694; Sun, 18 Oct 2009 15:59:28 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B0B94106566B for ; Sun, 18 Oct 2009 15:59:27 +0000 (UTC) (envelope-from yohanes@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 861C98FC0C for ; Sun, 18 Oct 2009 15:59:27 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n9IFxRcD003269 for ; Sun, 18 Oct 2009 15:59:27 GMT (envelope-from yohanes@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n9IFxRDf003267 for perforce@freebsd.org; Sun, 18 Oct 2009 15:59:27 GMT (envelope-from yohanes@FreeBSD.org) Date: Sun, 18 Oct 2009 15:59:27 GMT Message-Id: <200910181559.n9IFxRDf003267@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to yohanes@FreeBSD.org using -f From: Yohanes Nugroho To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 169569 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 18 Oct 2009 15:59:28 -0000 http://p4web.freebsd.org/chv.cgi?CH=169569 Change 169569 by yohanes@econa on 2009/10/18 15:59:19 remove m_devget Affected files ... .. //depot/projects/str91xx/src/sys/arm/conf/CNS11XXNAS#5 edit .. //depot/projects/str91xx/src/sys/arm/econa/if_ece.c#7 edit Differences ... ==== //depot/projects/str91xx/src/sys/arm/conf/CNS11XXNAS#5 (text+ko) ==== @@ -52,8 +52,8 @@ #options COMPAT_FREEBSD7 -#options SCHED_ULE #ULE scheduler -options SCHED_4BSD #4BSD scheduler +options SCHED_ULE #ULE scheduler +#options SCHED_4BSD #4BSD scheduler options GEOM_PART_GPT # GUID Partition Tables. #options GEOM_PART_EBR #options GEOM_PART_EBR_COMPAT ==== //depot/projects/str91xx/src/sys/arm/econa/if_ece.c#7 (text+ko) ==== @@ -67,6 +67,9 @@ #include "miibus_if.h" +//#define ECE_MAX_TX_BUFFERS 256 +//#define ECE_MAX_RX_BUFFERS 256 + #define ECE_MAX_TX_BUFFERS 128 #define ECE_MAX_RX_BUFFERS 128 @@ -307,7 +310,7 @@ for (ii = 0; ii < 0x1000; ii++) { status = RD4(sc, PHY_CONTROL); - DELAY(1); + //DELAY(1); if (status & (0x1 << 15)) { /* clear the rw_ok status, and clear other bits value */ WR4(sc, PHY_CONTROL, (0x1 << 15)); @@ -655,7 +658,7 @@ desc_paddr = sc->ring_paddr_tx; - + /* Allocate a busdma tag for mbufs. */ error = bus_dma_tag_create(sc->sc_parent_tag, /* parent */ 16, 0, /* alignment, boundary */ @@ -1594,13 +1597,15 @@ bus_dmamap_sync(sc->dmatag_data_rx, sc->dmap_rx[idx], BUS_DMASYNC_POSTREAD|BUS_DMASYNC_POSTWRITE); - +#if 0 mb = m_devget((void *)sc->buffer_rx[idx]->m_data, desc->length+16, 0, ifp, NULL); if (mb) { +// int l; mb->m_data += 2; + if (desc->prot!=3) { mb->m_pkthdr.csum_flags |= CSUM_IP_CHECKED; mb->m_pkthdr.csum_flags |= CSUM_IP_VALID; @@ -1608,6 +1613,15 @@ } mb->m_len = mb->m_pkthdr.len; +/* + printf("packet len %d\n", mb->m_len); + for (l = 0; lm_len; l++) { + printf("%02x ", mb->m_data[l]); + if (((l+1) %16)==0) { + printf("\n"); + } + } + printf("-----\n");*/ ECE_RXUNLOCK(sc); (*ifp->if_input)(ifp, mb); ECE_RXLOCK(sc); @@ -1615,7 +1629,40 @@ if_printf(sc->ifp, "no mbuf length = %d\n", desc->length); /* Give up if no mbufs */ } +#else + mb = sc->buffer_rx[idx]; + mb->m_data += 2; + mb->m_pkthdr.rcvif = ifp; + if (desc->prot!=3) { + mb->m_pkthdr.csum_flags |= CSUM_IP_CHECKED; + mb->m_pkthdr.csum_flags |= CSUM_IP_VALID; + mb->m_pkthdr.csum_data = 0xffff; + } + + mb->m_len = mb->m_pkthdr.len = desc->length+16; +/* + + int l; + printf("packet len %d\n", mb->m_len); + for (l = 0; lm_len; l++) { + printf("%02x ", mb->m_data[l]); + if (((l+1) %16)==0) { + printf("\n"); + } + } + printf("-----\n");*/ + + ECE_RXUNLOCK(sc); + (*ifp->if_input)(ifp, mb); + ECE_RXLOCK(sc); + + ece_new_rxbuf(sc->dmatag_ring_rx, &sc->dmap_rx[idx], + &(sc->buffer_rx[idx]), + (bus_addr_t *)&(desc->data_ptr)); + +#endif + } else { /*not ready, process later*/ return; @@ -1682,12 +1729,15 @@ struct ece_softc *sc = xsc; struct ifnet *ifp = sc->ifp; int stat; - int fssd_curr, fssd; + //int fssd_curr, fssd; stat = RD4(sc, INTERRUPT_STATUS); - fssd_curr = RD4(sc, FS_DESCRIPTOR_POINTER); + + //printf("status = %08x\n", stat); + + //fssd_curr = RD4(sc, FS_DESCRIPTOR_POINTER); - fssd = (fssd_curr - (uint32_t)sc->ring_paddr_rx)>>4; + //fssd = (fssd_curr - (uint32_t)sc->ring_paddr_rx)>>4; WR4(sc, INTERRUPT_STATUS, stat); @@ -1696,7 +1746,7 @@ return; } - taskqueue_enqueue(sc->sc_tq, &sc->sc_intr_task); + //taskqueue_enqueue(sc->sc_tq, &sc->sc_intr_task); } static void @@ -1850,6 +1900,8 @@ sc->curr_tx_mbuf = (sc->curr_tx_mbuf+1) % ECE_MAX_TX_BUFFERS; + //printf("encap nsegs = %d\n", nsegs); + /* Everything is ok, now we can send buffers */ for (seg = 0; seg < nsegs; seg++) { @@ -1858,6 +1910,7 @@ } desc->length = segs[seg].ds_len; + // printf("dlength = %d\n", desc->length); desc->data_ptr = segs[seg].ds_addr; //dw->buffer = m0; From owner-p4-projects@FreeBSD.ORG Sun Oct 18 19:48:17 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B9FB61065679; Sun, 18 Oct 2009 19:48:17 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7E464106566C for ; Sun, 18 Oct 2009 19:48:17 +0000 (UTC) (envelope-from truncs@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 6AE928FC08 for ; Sun, 18 Oct 2009 19:48:17 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n9IJmHDj034257 for ; Sun, 18 Oct 2009 19:48:17 GMT (envelope-from truncs@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n9IJmHxl034255 for perforce@freebsd.org; Sun, 18 Oct 2009 19:48:17 GMT (envelope-from truncs@FreeBSD.org) Date: Sun, 18 Oct 2009 19:48:17 GMT Message-Id: <200910181948.n9IJmHxl034255@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to truncs@FreeBSD.org using -f From: Aditya Sarawgi To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 169580 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 18 Oct 2009 19:48:17 -0000 http://p4web.freebsd.org/chv.cgi?CH=169580 Change 169580 by truncs@aditya on 2009/10/18 19:47:55 Apply locking primitives to allocation functions. Affected files ... .. //depot/projects/soc2009/soc_ext2fs/src/sys/fs/ext2fs/ext2_alloc.c#11 edit Differences ... ==== //depot/projects/soc2009/soc_ext2fs/src/sys/fs/ext2fs/ext2_alloc.c#11 (text+ko) ==== @@ -100,10 +100,13 @@ int32_t *bnp; { struct m_ext2fs *fs; + struct ext2mount *ump; int32_t bno; int cg; *bnp = 0; fs = ip->i_e2fs; + ump = ip->i_ump; + mtx_assert(EXT2_MTX(ump), MA_OWNED); #ifdef DIAGNOSTIC if ((u_int)size > fs->e2fs_bsize || blkoff(fs, size) != 0) { vn_printf(ip->i_devvp, "bsize = %lu, size = %d, fs = %s\n", @@ -177,6 +180,7 @@ struct inode *ip; struct vnode *vp; struct buf *sbp, *ebp; + struct ext2mount *ump; struct cluster_save *buflist; struct indir start_ap[NIADDR + 1], end_ap[NIADDR + 1], *idp; int32_t *bap, *sbap, *ebap; @@ -186,6 +190,7 @@ vp = ap->a_vp; ip = VTOI(vp); fs = ip->i_e2fs; + ump = ip->i_ump; #ifdef UNKLAR if (fs->fs_contigsumsize <= 0) return (ENOSPC); @@ -228,6 +233,7 @@ /* * Find the preferred location for the cluster. */ + EXT2_LOCK(ump); pref = ext2_blkpref(ip, start_lbn, soff, sbap); /* * If the block range spans two block maps, get the second map. @@ -240,16 +246,20 @@ panic("ext2_reallocblk: start == end"); #endif ssize = len - (idp->in_off + 1); - if (bread(vp, idp->in_lbn, (int)fs->e2fs_bsize, NOCRED, &ebp)) + if (bread(vp, idp->in_lbn, (int)fs->e2fs_bsize, NOCRED, &ebp)){ + EXT2_UNLOCK(ump); goto fail; + } ebap = (int32_t *)ebp->b_data; } /* * Search the block map looking for an allocation of the desired size. */ if ((newblk = (int32_t)ext2_hashalloc(ip, dtog(fs, pref), (long)pref, - len, (u_long (*)())ext2_clusteralloc)) == 0) + len, (u_long (*)())ext2_clusteralloc)) == 0){ + EXT2_UNLOCK(ump); goto fail; + } /* * We have found a new contiguous block. * @@ -330,12 +340,16 @@ struct inode *pip; struct m_ext2fs *fs; struct inode *ip; + struct ext2mount *ump; ino_t ino, ipref; int i, error, cg; *vpp = NULL; pip = VTOI(pvp); fs = pip->i_e2fs; + ump = pip->i_ump; + + EXT2_LOCK(ump); if (fs->e2fs->e2fs_ficount == 0) goto noinodes; /* @@ -390,6 +404,7 @@ */ return (0); noinodes: + EXT2_UNLOCK(ump); ext2_fserr(fs, cred->cr_uid, "out of inodes"); uprintf("\n%s: create/symlink failed, no inodes free\n", fs->e2fs_fsmnt); return (ENOSPC); @@ -419,6 +434,7 @@ int mincg, minndir; int maxcontigdirs; + mtx_assert(EXT2_MTX(pip->i_ump), MA_OWNED); fs = pip->i_e2fs; avgifree = fs->e2fs->e2fs_ficount / fs->e2fs_gcount; @@ -529,6 +545,7 @@ int32_t blocknr; { int tmp; + mtx_assert(EXT2_MTX(pip->i_ump), MA_OWNED); /* if the next block is actually what we thought it is, then set the goal to what we thought it should be @@ -569,6 +586,7 @@ ino_t result; int i, icg = cg; + mtx_assert(EXT2_MTX(ip->i_ump), MA_OWNED); fs = ip->i_e2fs; /* * 1: preferred cylinder group @@ -615,18 +633,22 @@ { struct m_ext2fs *fs; struct buf *bp; + struct ext2mount *ump; int error, bno, start, end, loc; char *bbp; /* XXX ondisk32 */ fs = ip->i_e2fs; + ump = ip->i_ump; if (fs->e2fs_gd[cg].ext2bgd_nbfree == 0) return (0); + EXT2_UNLOCK(ump); error = bread(ip->i_devvp, fsbtodb(fs, fs->e2fs_gd[cg].ext2bgd_b_bitmap), (int)fs->e2fs_bsize, NOCRED, &bp); if (error) { brelse(bp); + EXT2_LOCK(ump); return (0); } bbp = (char *)bp->b_data; @@ -669,6 +691,8 @@ bno = ext2_mapsearch(fs, bbp, bpref); if (bno < 0){ + brelse(bp); + EXT2_LOCK(ump); return (0); } gotit: @@ -680,9 +704,11 @@ } #endif setbit(bbp, (daddr_t)bno); + EXT2_LOCK(ump); fs->e2fs->e2fs_fbcount--; fs->e2fs_gd[cg].ext2bgd_nbfree--; fs->e2fs_fmod = 1; + EXT2_UNLOCK(ump); bdwrite(bp); return (cg * fs->e2fs->e2fs_fpg + fs->e2fs->e2fs_first_dblock + bno); } @@ -698,21 +724,23 @@ { struct m_ext2fs *fs; struct buf *bp; + struct ext2mount *ump; int error, start, len, loc, map, i; char *ibp; ipref--; /* to avoid a lot of (ipref -1) */ if (ipref == -1) ipref = 0; fs = ip->i_e2fs; + ump = ip_i_ump; if (fs->e2fs_gd[cg].ext2bgd_nifree == 0) return (0); - lock_super(DEVVP(ip)); + EXT2_UNLOCK(ump); error = bread(ip->i_devvp, fsbtodb(fs, fs->e2fs_gd[cg].ext2bgd_i_bitmap), (int)fs->e2fs_bsize, NOCRED, &bp); if (error) { brelse(bp); - unlock_super(DEVVP(ip)); + EXT2_LOCK(ump); return (0); } ibp = (char *)bp->b_data; @@ -748,6 +776,7 @@ /* NOTREACHED */ gotit: setbit(ibp, ipref); + EXT2_LOCK(ump); fs->e2fs_gd[cg].ext2bgd_nifree--; fs->e2fs->e2fs_ficount--; fs->e2fs_fmod = 1; @@ -755,6 +784,7 @@ fs->e2fs_gd[cg].ext2bgd_ndirs++; fs->e2fs_total_dir++; } + EXT2_UNLOCK(ump); bdwrite(bp); unlock_super(DEVVP(ip)); return (cg * fs->e2fs->e2fs_ipg + ipref +1); @@ -772,10 +802,12 @@ { struct m_ext2fs *fs; struct buf *bp; + struct ext2mount *ump; int cg, error; char *bbp; fs = ip->i_e2fs; + ump = ip->i_ump; cg = dtog(fs, bno); if ((u_int)bno >= fs->e2fs->e2fs_bcount) { printf("bad block %lld, ino %llu\n", (long long)bno, @@ -798,9 +830,11 @@ panic("blkfree: freeing free block"); } clrbit(bbp, bno); + EXT2_LOCK(ump); fs->e2fs->e2fs_fbcount++; fs->e2fs_gd[cg].ext2bgd_nbfree++; fs->e2fs_fmod = 1; + EXT2_UNLOCK(ump); bdwrite(bp); } @@ -817,12 +851,14 @@ struct m_ext2fs *fs; struct inode *pip; struct buf *bp; + struct ext2mount *ump; int error, cg; char * ibp; /* mode_t save_i_mode; */ pip = VTOI(pvp); fs = pip->i_e2fs; + ump = pip->i_ump; if ((u_int)ino > fs->e2fs_ipg * fs->e2fs_gcount) panic("ext2_vfree: range: devvp = %p, ino = %d, fs = %s", pip->i_devvp, ino, fs->e2fs_fsmnt); @@ -844,6 +880,7 @@ panic("ifree: freeing free inode"); } clrbit(ibp, ino); + EXT2_LOCK(ump); fs->e2fs->e2fs_ficount++; fs->e2fs_gd[cg].ext2bgd_nifree++; if ((mode & IFMT) == IFDIR) { @@ -851,6 +888,7 @@ fs->e2fs_total_dir--; } fs->e2fs_fmod = 1; + EXT2_UNLOCK(ump); bdwrite(bp); return (0); } From owner-p4-projects@FreeBSD.ORG Sun Oct 18 20:10:40 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 38FD310656DB; Sun, 18 Oct 2009 20:10:40 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id F08CF10656CB for ; Sun, 18 Oct 2009 20:10:39 +0000 (UTC) (envelope-from truncs@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id DD49F8FC18 for ; Sun, 18 Oct 2009 20:10:39 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n9IKAdhA036634 for ; Sun, 18 Oct 2009 20:10:39 GMT (envelope-from truncs@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n9IKAddL036632 for perforce@freebsd.org; Sun, 18 Oct 2009 20:10:39 GMT (envelope-from truncs@FreeBSD.org) Date: Sun, 18 Oct 2009 20:10:39 GMT Message-Id: <200910182010.n9IKAddL036632@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to truncs@FreeBSD.org using -f From: Aditya Sarawgi To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 169581 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 18 Oct 2009 20:10:40 -0000 http://p4web.freebsd.org/chv.cgi?CH=169581 Change 169581 by truncs@aditya on 2009/10/18 20:10:10 Reallocation cleanup. Affected files ... .. //depot/projects/soc2009/soc_ext2fs/src/sys/fs/ext2fs/ext2_alloc.c#12 edit Differences ... ==== //depot/projects/soc2009/soc_ext2fs/src/sys/fs/ext2fs/ext2_alloc.c#12 (text+ko) ==== @@ -159,6 +159,8 @@ #ifdef FANCY_REALLOC #include static int doasyncfree = 1; +static int doreallocblks = 1; + #ifdef OPT_DEBUG SYSCTL_INT(_debug, 14, doasyncfree, CTLFLAG_RW, &doasyncfree, 0, ""); #endif /* OPT_DEBUG */ @@ -180,11 +182,11 @@ struct inode *ip; struct vnode *vp; struct buf *sbp, *ebp; + int32_t *bap, *sbap, *ebap = 0; struct ext2mount *ump; struct cluster_save *buflist; struct indir start_ap[NIADDR + 1], end_ap[NIADDR + 1], *idp; - int32_t *bap, *sbap, *ebap; - int32_t start_lbn, end_lbn, soff, eoff, newblk, blkno; + int32_t start_lbn, end_lbn, soff, eoff, newblk, blkno =0; int i, len, start_lvl, end_lvl, pref, ssize; vp = ap->a_vp; @@ -212,8 +214,8 @@ if (dtog(fs, dbtofsb(fs, buflist->bs_children[0]->b_blkno)) != dtog(fs, dbtofsb(fs, buflist->bs_children[len - 1]->b_blkno))) return (ENOSPC); - if (ufs_getlbns(vp, start_lbn, start_ap, &start_lvl) || - ufs_getlbns(vp, end_lbn, end_ap, &end_lvl)) + if (ext2_getlbns(vp, start_lbn, start_ap, &start_lvl) || + ext2_getlbns(vp, end_lbn, end_ap, &end_lvl)) return (ENOSPC); /* * Get the starting offset and block map for the first block. @@ -234,7 +236,7 @@ * Find the preferred location for the cluster. */ EXT2_LOCK(ump); - pref = ext2_blkpref(ip, start_lbn, soff, sbap); + pref = ext2_blkpref(ip, start_lbn, soff, sbap, blkno); /* * If the block range spans two block maps, get the second map. */ @@ -256,7 +258,7 @@ * Search the block map looking for an allocation of the desired size. */ if ((newblk = (int32_t)ext2_hashalloc(ip, dtog(fs, pref), (long)pref, - len, (u_long (*)())ext2_clusteralloc)) == 0){ + len, ext2_clusteralloc)) == 0){ EXT2_UNLOCK(ump); goto fail; } @@ -271,6 +273,7 @@ for (bap = &sbap[soff], i = 0; i < len; i++, blkno += fs->e2fs_fpb) { if (i == ssize) bap = ebap; + soff = -i; #ifdef DIAGNOSTIC if (buflist->bs_children[i]->b_blkno != fsbtodb(fs, *bap)) panic("ext2_reallocblks: alloc mismatch"); @@ -301,11 +304,12 @@ if (!doasyncfree) ext2_update(vp, 1); } - if (ssize < len) + if (ssize < len) { if (doasyncfree) bdwrite(ebp); else bwrite(ebp); + } /* * Last, free the old blocks and assign the new blocks to the buffers. */ From owner-p4-projects@FreeBSD.ORG Sun Oct 18 20:32:01 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A5AEA106566C; Sun, 18 Oct 2009 20:32:01 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 518F7106568F for ; Sun, 18 Oct 2009 20:32:01 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 3DBFC8FC12 for ; Sun, 18 Oct 2009 20:32:01 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n9IKW1sP038139 for ; Sun, 18 Oct 2009 20:32:01 GMT (envelope-from trasz@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n9IKW1up038137 for perforce@freebsd.org; Sun, 18 Oct 2009 20:32:01 GMT (envelope-from trasz@freebsd.org) Date: Sun, 18 Oct 2009 20:32:01 GMT Message-Id: <200910182032.n9IKW1up038137@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to trasz@freebsd.org using -f From: Edward Tomasz Napierala To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 169582 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 18 Oct 2009 20:32:01 -0000 http://p4web.freebsd.org/chv.cgi?CH=169582 Change 169582 by trasz@trasz_victim on 2009/10/18 20:31:35 Working container hierarchy. Affected files ... .. //depot/projects/soc2009/trasz_limits/sys/kern/init_main.c#17 edit .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_hrl.c#70 edit .. //depot/projects/soc2009/trasz_limits/sys/sys/hrl.h#39 edit Differences ... ==== //depot/projects/soc2009/trasz_limits/sys/kern/init_main.c#17 (text+ko) ==== @@ -477,6 +477,9 @@ #endif td->td_ucred = crhold(p->p_ucred); + /* Let the HRL know about the new process. */ + hrl_proc_init(p); + /* Create sigacts. */ p->p_sigacts = sigacts_alloc(); ==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_hrl.c#70 (text+ko) ==== @@ -386,37 +386,6 @@ } } -#ifdef DIAGNOSTIC -/* - * Go through the resource usage info and verify that it makes sense. - */ -static void -hrl_assert_proc(const struct proc *p __unused) -{ - int resource; - struct ucred *cred; - struct prison *pr; - - cred = p->p_ucred; - mtx_assert(&hrl_lock, MA_OWNED); - for (resource = 0; resource <= HRL_RESOURCE_MAX; resource++) - KASSERT(p->p_container.hc_resources[resource] >= 0, - ("resource usage propagation meltdown")); - KASSERT(cred->cr_ruidinfo->ui_container.hc_resources[resource] >= 0, - ("resource usage propagation meltdown")); - KASSERT(cred->cr_ruidinfo->ui_container.hc_resources[resource] >= - p->p_container.hc_resources[resource], - ("resource usage propagation meltdown")); - for (pr = cred->cr_prison; pr != NULL; pr = pr->pr_parent) { - KASSERT(pr->pr_container.hc_resources[resource] >= 0, - ("resource usage propagation meltdown")); - KASSERT(pr->pr_container.hc_resources[resource] >= - p->p_container.hc_resources[resource], - ("resource usage propagation meltdown")); - } -} -#endif /* DIAGNOSTIC */ - static void hrl_container_add(struct hrl_container *dest, const struct hrl_container *src) { @@ -426,12 +395,12 @@ for (i = 0; i <= HRL_RESOURCE_MAX; i++) { KASSERT(dest->hc_resources[i] >= 0, - ("resource usage propagation meltdown")); + ("resource usage propagation meltdown: dest < 0")); KASSERT(src->hc_resources[i] >= 0, - ("resource usage propagation meltdown")); + ("resource usage propagation meltdown: src < 0")); dest->hc_resources[i] += src->hc_resources[i]; KASSERT(dest->hc_resources[i] >= 0, - ("resource usage propagation meltdown")); + ("resource usage propagation meltdown: dest < 0 after addition")); } } @@ -444,63 +413,70 @@ for (i = 0; i <= HRL_RESOURCE_MAX; i++) { KASSERT(dest->hc_resources[i] >= 0, - ("resource usage propagation meltdown")); + ("resource usage propagation meltdown: dest < 0")); KASSERT(src->hc_resources[i] >= 0, - ("resource usage propagation meltdown")); + ("resource usage propagation meltdown: src < 0")); KASSERT(src->hc_resources[i] <= dest->hc_resources[i], - ("resource usage propagation meltdown")); + ("resource usage propagation meltdown: src > dest")); dest->hc_resources[i] -= src->hc_resources[i]; KASSERT(dest->hc_resources[i] >= 0, - ("resource usage propagation meltdown")); + ("resource usage propagation meltdown: dest < 0 after subtraction")); } } static void hrl_container_join(struct hrl_container *child, struct hrl_container *parent) { - struct hrl_container *container; + int i; mtx_assert(&hrl_lock, MA_OWNED); KASSERT(child != NULL, ("child != NULL")); KASSERT(parent != NULL, ("parent != NULL")); - LIST_FOREACH(container, &child->hc_parents, hc_next) - KASSERT(container != parent, ("container already joined")); - - LIST_INSERT_HEAD(&child->hc_parents, parent, hc_next); - hrl_container_add(parent, child); + for (i = 0; i <= HRL_HC_PARENTS_MAX; i++) { + KASSERT(child->hc_parents[i] != parent, + ("container already joined")); + if (child->hc_parents[i] == NULL) { + child->hc_parents[i] = parent; + hrl_container_add(parent, child); + return; + } + } + panic("container has too many parents"); } static void hrl_container_leave(struct hrl_container *child, struct hrl_container *parent) { - struct hrl_container *container, *containertmp; + int i; mtx_assert(&hrl_lock, MA_OWNED); KASSERT(child != NULL, ("child != NULL")); KASSERT(parent != NULL, ("parent != NULL")); - hrl_container_subtract(parent, child); - LIST_FOREACH_SAFE(container, &child->hc_parents, hc_next, containertmp) { - if (container != parent) - continue; - LIST_REMOVE(container, hc_next); - break; + for (i = 0; i <= HRL_HC_PARENTS_MAX; i++) { + if (child->hc_parents[i] == parent) { + hrl_container_subtract(parent, child); + child->hc_parents[i] = NULL; + return; + } } + panic("container not joined"); } static void hrl_container_leave_parents(struct hrl_container *child) { - struct hrl_container *parent; + int i; mtx_assert(&hrl_lock, MA_OWNED); KASSERT(child != NULL, ("child != NULL")); - while (!LIST_EMPTY(&child->hc_parents)) { - parent = LIST_FIRST(&child->hc_parents); - hrl_container_subtract(parent, child); - LIST_REMOVE(parent, hc_next); + for (i = 0; i <= HRL_HC_PARENTS_MAX; i++) { + if (child->hc_parents[i] == NULL) + continue; + hrl_container_subtract(child->hc_parents[i], child); + child->hc_parents[i] = NULL; } } @@ -511,9 +487,10 @@ for (i = 0; i <= HRL_RESOURCE_MAX; i++) KASSERT(container->hc_resources[i] == 0, - ("container not zeroed")); - - LIST_INIT(&container->hc_parents); + ("container->hc_resources[%d] != NULL", i)); + for (i = 0; i <= HRL_HC_PARENTS_MAX; i++) + KASSERT(container->hc_parents[i] == NULL, + ("container->hc_parents[%d] != NULL", i)); } void @@ -535,6 +512,63 @@ mtx_unlock(&hrl_lock); } +#ifdef DIAGNOSTIC +/* + * Go through the resource consumption information and make sure it makes sense. + */ +static void +hrl_container_assert(const struct hrl_container *container) +{ + int i, resource; + struct hrl_container *parent; + + mtx_assert(&hrl_lock, MA_OWNED); + KASSERT(container != NULL, ("NULL container")); + + for (resource = 0; resource <= HRL_RESOURCE_MAX; resource++) { + KASSERT(container->hc_resources[resource] >= 0, + ("resource usage propagation meltdown: resource < 0")); + } + + for (i = 0; i <= HRL_HC_PARENTS_MAX; i++) { + parent = container->hc_parents[i]; + if (parent == NULL); + continue; + hrl_container_assert(parent); + for (resource = 0; resource <= HRL_RESOURCE_MAX; resource++) { + KASSERT(parent->hc_resources[resource] >= + container->hc_resources[resource], + ("resource usage propagation meltdown: child > parent")); + } + } +} +#endif /* DIAGNOSTIC */ + +/* + * Increase consumption of 'resource' by 'amount' for 'container' + * and all its parents. Differently from other cases, 'amount' here + * may be less than zero. + */ +static void +hrl_container_alloc_resource(struct hrl_container *container, int resource, + uint64_t amount) +{ + int i; + + mtx_assert(&hrl_lock, MA_OWNED); + KASSERT(container != NULL, ("NULL container")); + + container->hc_resources[resource] += amount; + for (i = 0; i <= HRL_HC_PARENTS_MAX; i++) { + if (container->hc_parents[i] == NULL) + continue; + hrl_container_alloc_resource(container->hc_parents[i], resource, amount); + } +#ifdef DIAGNOSTIC + hrl_container_assert(container); +#endif +} + /* * Increase allocation of 'resource' by 'amount' for process 'p'. * Return 0 if it's below limits, or errno, if it's not. @@ -543,31 +577,21 @@ hrl_alloc(struct proc *p, int resource, uint64_t amount) { int error; - struct ucred *cred; - struct prison *pr; - KASSERT(amount > 0, ("hrl_alloc: invalid amount for %s: %ju", - hrl_resource_name(resource), amount)); - #if 0 printf("hrl_alloc: allocating %ju of %s for %s (pid %d)\n", amount, hrl_resource_name(resource), p->p_comm, p->p_pid); #endif + KASSERT(amount > 0, ("hrl_alloc: invalid amount for %s: %ju", + hrl_resource_name(resource), amount)); + mtx_lock(&hrl_lock); error = hrl_enforce_proc(p, resource, amount); if (error) { mtx_unlock(&hrl_lock); return (error); } - p->p_container.hc_resources[resource] += amount; - cred = p->p_ucred; - cred->cr_ruidinfo->ui_container.hc_resources[resource] += amount; - for (pr = cred->cr_prison; pr != NULL; pr = pr->pr_parent) - pr->pr_container.hc_resources[resource] += amount; - cred->cr_loginclass->lc_container.hc_resources[resource] += amount; -#ifdef DIAGNOSTIC - hrl_assert_proc(p); -#endif + hrl_container_alloc_resource(&p->p_container, resource, amount); mtx_unlock(&hrl_lock); return (0); @@ -585,16 +609,14 @@ { int error; int64_t diff; - struct ucred *cred; - struct prison *pr; - KASSERT(amount >= 0, ("hrl_allocated: invalid amount for %s: %ju", - hrl_resource_name(resource), amount)); - #if 0 printf("hrl_allocated: allocated %lld of %s for %s (pid %d)\n", amount, hrl_resource_name(resource), p->p_comm, p->p_pid); #endif + KASSERT(amount >= 0, ("hrl_allocated: invalid amount for %s: %ju", + hrl_resource_name(resource), amount)); + mtx_lock(&hrl_lock); diff = amount - p->p_container.hc_resources[resource]; if (diff > 0) { @@ -604,15 +626,7 @@ return (error); } } - p->p_container.hc_resources[resource] = amount; - cred = p->p_ucred; - cred->cr_ruidinfo->ui_container.hc_resources[resource] += diff; - for (pr = cred->cr_prison; pr != NULL; pr = pr->pr_parent) - pr->pr_container.hc_resources[resource] += diff; - cred->cr_loginclass->lc_container.hc_resources[resource] += diff; -#ifdef DIAGNOSTIC - hrl_assert_proc(p); -#endif + hrl_container_alloc_resource(&p->p_container, resource, diff); mtx_unlock(&hrl_lock); return (0); @@ -624,30 +638,21 @@ void hrl_free(struct proc *p, int resource, uint64_t amount) { - struct ucred *cred; - struct prison *pr; - - KASSERT(amount > 0, ("hrl_free: invalid amount for %s: %ju", - hrl_resource_name(resource), amount)); #if 0 printf("hrl_free: freeing %lld of %s for %s (pid %d)\n", amount, hrl_resource_name(resource), p->p_comm, p->p_pid); #endif + KASSERT(amount > 0, ("hrl_free: invalid amount for %s: %ju", + hrl_resource_name(resource), amount)); + mtx_lock(&hrl_lock); KASSERT(amount <= p->p_container.hc_resources[resource], ("hrl_free: freeing %ju of %s, which is more than allocated " "%ld for %s (pid %d)", amount, hrl_resource_name(resource), p->p_container.hc_resources[resource], p->p_comm, p->p_pid)); - p->p_container.hc_resources[resource] -= amount; - cred = p->p_ucred; - cred->cr_ruidinfo->ui_container.hc_resources[resource] -= amount; - for (pr = cred->cr_prison; pr != NULL; pr = pr->pr_parent) - pr->pr_container.hc_resources[resource] -= amount; - cred->cr_loginclass->lc_container.hc_resources[resource] -= amount; -#ifdef DIAGNOSTIC - hrl_assert_proc(p); -#endif + + hrl_container_alloc_resource(&p->p_container, resource, -amount); mtx_unlock(&hrl_lock); } @@ -1380,7 +1385,7 @@ struct sbuf *sb; sb = sbuf_new_auto(); - for (i = 1; i <= HRL_RESOURCE_MAX; i++) { + for (i = 0; i <= HRL_RESOURCE_MAX; i++) { sbuf_printf(sb, "%s=%jd,", hrl_resource_name(i), container->hc_resources[i]); } @@ -1697,6 +1702,24 @@ } /* + * Called from kern/init_main.c, for proc0 and initproc. + */ +void +hrl_proc_init(struct proc *p) +{ + struct ucred *cred = p->p_ucred; + + mtx_lock(&hrl_lock); + + hrl_container_create(&p->p_container); + hrl_container_join(&p->p_container, &cred->cr_ruidinfo->ui_container); + hrl_container_join(&p->p_container, &cred->cr_loginclass->lc_container); + hrl_container_join(&p->p_container, &cred->cr_prison->pr_container); + + mtx_unlock(&hrl_lock); +} + +/* * Called before credentials change, to adjust HRL data structures * assigned to the process. */ @@ -1794,11 +1817,24 @@ int error, i; struct hrl_limit *limit; struct hrl_rule *rule; + struct hrl_container *container; PROC_LOCK(parent); PROC_LOCK(child); mtx_lock(&hrl_lock); + /* + * Create container for the child process and inherit containing + * containers from the parent. + */ + hrl_container_create(&child->p_container); + for (i = 0; i <= HRL_HC_PARENTS_MAX; i++) { + container = parent->p_container.hc_parents[i]; + if (container == NULL) + continue; + hrl_container_join(&child->p_container, container); + } + for (i = 0; i <= HRL_RESOURCE_MAX; i++) { if (parent->p_container.hc_resources[i] != 0 && hrl_resource_inheritable(i)) @@ -1806,6 +1842,11 @@ parent->p_container.hc_resources[i]); } + /* + * Go through limits applicable to the parent and assign them to the child. + * Rules with 'process' subject have to be duplicated in order to make their + * hr_subject point to the new process. + */ LIST_FOREACH(limit, &parent->p_limits, hl_next) { if (limit->hl_rule->hr_subject_type == HRL_SUBJECT_TYPE_PROCESS) { rule = hrl_rule_duplicate(limit->hl_rule, M_NOWAIT); @@ -1830,8 +1871,6 @@ void hrl_proc_exiting(struct proc *p) { - int i; - /* * XXX: Free these three some other way. */ @@ -1840,10 +1879,7 @@ hrl_allocated(p, HRL_RESOURCE_PTY, 0); mtx_lock(&hrl_lock); - for (i = 0; i <= HRL_RESOURCE_MAX; i++) { - KASSERT(p->p_container.hc_resources[i] == 0, - ("dead process still holding resources")); - } + hrl_container_destroy(&p->p_container); mtx_unlock(&hrl_lock); } ==== //depot/projects/soc2009/trasz_limits/sys/sys/hrl.h#39 (text+ko) ==== @@ -123,6 +123,8 @@ #define HRL_AMOUNT_UNDEFINED -1 +#define HRL_HC_PARENTS_MAX 32 + /* * 'hrl_container' defines resource consumption for a particular * subject, such as process or jail. Containers form a graph - each @@ -139,9 +141,8 @@ * is HRL_SUBJECT_TYPE_USER. */ struct hrl_container { - LIST_ENTRY(hrl_container) hc_next; int64_t hc_resources[HRL_RESOURCE_MAX + 1]; - LIST_HEAD(, hrl_container) hc_parents; + struct hrl_container *hc_parents[HRL_HC_PARENTS_MAX + 1]; }; /* @@ -164,6 +165,7 @@ void hrl_proc_exiting(struct proc *p); +void hrl_proc_init(struct proc *p); void hrl_proc_ucred_changing(struct proc *p, struct ucred *newcred); struct hrl_rule *hrl_rule_alloc(int flags); From owner-p4-projects@FreeBSD.ORG Sun Oct 18 20:46:17 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 7FB471065747; Sun, 18 Oct 2009 20:46:17 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 415441065672 for ; Sun, 18 Oct 2009 20:46:17 +0000 (UTC) (envelope-from lulf@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 2CE438FC13 for ; Sun, 18 Oct 2009 20:46:17 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n9IKkHvg038988 for ; Sun, 18 Oct 2009 20:46:17 GMT (envelope-from lulf@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n9IKkFmw038982 for perforce@freebsd.org; Sun, 18 Oct 2009 20:46:15 GMT (envelope-from lulf@FreeBSD.org) Date: Sun, 18 Oct 2009 20:46:15 GMT Message-Id: <200910182046.n9IKkFmw038982@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to lulf@FreeBSD.org using -f From: Ulf Lilleengen To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 169583 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 18 Oct 2009 20:46:18 -0000 http://p4web.freebsd.org/chv.cgi?CH=169583 Change 169583 by lulf@lulf_nobby on 2009/10/18 20:45:19 IFC Affected files ... .. //depot/projects/avr32/src/Makefile.inc1#10 integrate .. //depot/projects/avr32/src/ObsoleteFiles.inc#12 integrate .. //depot/projects/avr32/src/bin/cat/Makefile#3 integrate .. //depot/projects/avr32/src/bin/csh/iconv_stub.c#2 integrate .. //depot/projects/avr32/src/bin/ls/ls.c#2 integrate .. //depot/projects/avr32/src/bin/sh/eval.c#6 integrate .. //depot/projects/avr32/src/bin/sh/exec.c#5 integrate .. //depot/projects/avr32/src/bin/sh/parser.c#5 integrate .. //depot/projects/avr32/src/bin/sh/sh.1#5 integrate .. //depot/projects/avr32/src/bin/uuidgen/Makefile#2 integrate .. //depot/projects/avr32/src/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c#2 integrate .. //depot/projects/avr32/src/contrib/openpam/doc/man/pam.conf.5#2 integrate .. //depot/projects/avr32/src/contrib/tcpdump/print-tcp.c#3 integrate .. //depot/projects/avr32/src/contrib/tcpdump/tcp.h#3 integrate .. //depot/projects/avr32/src/contrib/tcsh/sh.c#3 integrate .. //depot/projects/avr32/src/crypto/openssh/ChangeLog#3 integrate .. //depot/projects/avr32/src/crypto/openssh/README#3 integrate .. //depot/projects/avr32/src/crypto/openssh/README.platform#2 integrate .. //depot/projects/avr32/src/crypto/openssh/auth-pam.c#3 integrate .. //depot/projects/avr32/src/crypto/openssh/auth-passwd.c#2 integrate .. //depot/projects/avr32/src/crypto/openssh/auth-sia.c#2 integrate .. //depot/projects/avr32/src/crypto/openssh/auth1.c#2 integrate .. //depot/projects/avr32/src/crypto/openssh/auth2-jpake.c#2 integrate .. //depot/projects/avr32/src/crypto/openssh/auth2-kbdint.c#2 integrate .. //depot/projects/avr32/src/crypto/openssh/auth2-none.c#2 integrate .. //depot/projects/avr32/src/crypto/openssh/auth2-passwd.c#2 integrate .. //depot/projects/avr32/src/crypto/openssh/auth2-pubkey.c#2 integrate .. //depot/projects/avr32/src/crypto/openssh/auth2.c#3 integrate .. //depot/projects/avr32/src/crypto/openssh/canohost.c#3 integrate .. //depot/projects/avr32/src/crypto/openssh/canohost.h#3 integrate .. //depot/projects/avr32/src/crypto/openssh/channels.c#3 integrate .. //depot/projects/avr32/src/crypto/openssh/clientloop.c#3 integrate .. //depot/projects/avr32/src/crypto/openssh/config.h#4 integrate .. //depot/projects/avr32/src/crypto/openssh/config.h.in#3 integrate .. //depot/projects/avr32/src/crypto/openssh/defines.h#3 integrate .. //depot/projects/avr32/src/crypto/openssh/gss-genr.c#2 integrate .. //depot/projects/avr32/src/crypto/openssh/includes.h#2 integrate .. //depot/projects/avr32/src/crypto/openssh/jpake.c#2 integrate .. //depot/projects/avr32/src/crypto/openssh/jpake.h#2 integrate .. //depot/projects/avr32/src/crypto/openssh/kex.c#3 integrate .. //depot/projects/avr32/src/crypto/openssh/kex.h#2 integrate .. //depot/projects/avr32/src/crypto/openssh/kexdhs.c#2 integrate .. //depot/projects/avr32/src/crypto/openssh/kexgexs.c#3 integrate .. //depot/projects/avr32/src/crypto/openssh/monitor.c#3 integrate .. //depot/projects/avr32/src/crypto/openssh/monitor_mm.c#2 integrate .. //depot/projects/avr32/src/crypto/openssh/monitor_wrap.c#3 integrate .. //depot/projects/avr32/src/crypto/openssh/monitor_wrap.h#3 integrate .. //depot/projects/avr32/src/crypto/openssh/openbsd-compat/bsd-cygwin_util.c#2 integrate .. //depot/projects/avr32/src/crypto/openssh/openbsd-compat/bsd-cygwin_util.h#2 integrate .. //depot/projects/avr32/src/crypto/openssh/openbsd-compat/daemon.c#2 integrate .. //depot/projects/avr32/src/crypto/openssh/openbsd-compat/getrrsetbyname.c#2 integrate .. //depot/projects/avr32/src/crypto/openssh/openbsd-compat/openssl-compat.c#2 integrate .. //depot/projects/avr32/src/crypto/openssh/openbsd-compat/openssl-compat.h#2 integrate .. //depot/projects/avr32/src/crypto/openssh/openbsd-compat/port-aix.c#2 integrate .. //depot/projects/avr32/src/crypto/openssh/openbsd-compat/port-aix.h#2 integrate .. //depot/projects/avr32/src/crypto/openssh/packet.c#3 integrate .. //depot/projects/avr32/src/crypto/openssh/packet.h#2 integrate .. //depot/projects/avr32/src/crypto/openssh/readconf.c#3 integrate .. //depot/projects/avr32/src/crypto/openssh/readconf.h#3 integrate .. //depot/projects/avr32/src/crypto/openssh/roaming.h#1 branch .. //depot/projects/avr32/src/crypto/openssh/roaming_common.c#1 branch .. //depot/projects/avr32/src/crypto/openssh/roaming_dummy.c#1 branch .. //depot/projects/avr32/src/crypto/openssh/schnorr.c#2 integrate .. //depot/projects/avr32/src/crypto/openssh/schnorr.h#1 branch .. //depot/projects/avr32/src/crypto/openssh/servconf.c#3 integrate .. //depot/projects/avr32/src/crypto/openssh/serverloop.c#3 integrate .. //depot/projects/avr32/src/crypto/openssh/session.c#3 integrate .. //depot/projects/avr32/src/crypto/openssh/sftp-client.c#2 integrate .. //depot/projects/avr32/src/crypto/openssh/sftp-server.8#2 integrate .. //depot/projects/avr32/src/crypto/openssh/sftp-server.c#2 integrate .. //depot/projects/avr32/src/crypto/openssh/ssh-agent.1#2 integrate .. //depot/projects/avr32/src/crypto/openssh/ssh-agent.c#2 integrate .. //depot/projects/avr32/src/crypto/openssh/ssh-keygen.c#3 integrate .. //depot/projects/avr32/src/crypto/openssh/ssh.1#3 integrate .. //depot/projects/avr32/src/crypto/openssh/ssh.c#3 integrate .. //depot/projects/avr32/src/crypto/openssh/ssh_config#3 integrate .. //depot/projects/avr32/src/crypto/openssh/ssh_config.5#3 integrate .. //depot/projects/avr32/src/crypto/openssh/ssh_namespace.h#4 integrate .. //depot/projects/avr32/src/crypto/openssh/sshconnect.c#3 integrate .. //depot/projects/avr32/src/crypto/openssh/sshconnect.h#2 integrate .. //depot/projects/avr32/src/crypto/openssh/sshconnect2.c#3 integrate .. //depot/projects/avr32/src/crypto/openssh/sshd.8#3 integrate .. //depot/projects/avr32/src/crypto/openssh/sshd.c#3 integrate .. //depot/projects/avr32/src/crypto/openssh/sshd_config#3 integrate .. //depot/projects/avr32/src/crypto/openssh/sshd_config.5#3 integrate .. //depot/projects/avr32/src/crypto/openssh/sshlogin.c#2 integrate .. //depot/projects/avr32/src/crypto/openssh/uuencode.c#2 integrate .. //depot/projects/avr32/src/crypto/openssh/version.h#3 integrate .. //depot/projects/avr32/src/etc/defaults/rc.conf#7 integrate .. //depot/projects/avr32/src/etc/mtree/BSD.usr.dist#4 integrate .. //depot/projects/avr32/src/etc/network.subr#7 integrate .. //depot/projects/avr32/src/etc/pam.d/ftpd#2 integrate .. //depot/projects/avr32/src/etc/pam.d/kde#2 integrate .. //depot/projects/avr32/src/etc/pam.d/other#2 integrate .. //depot/projects/avr32/src/etc/pam.d/sshd#2 integrate .. //depot/projects/avr32/src/etc/pam.d/system#2 integrate .. //depot/projects/avr32/src/etc/pam.d/telnetd#2 integrate .. //depot/projects/avr32/src/etc/pam.d/xdm#2 integrate .. //depot/projects/avr32/src/etc/periodic/daily/400.status-disks#2 integrate .. //depot/projects/avr32/src/etc/periodic/security/200.chkmounts#2 integrate .. //depot/projects/avr32/src/etc/rc.d/bgfsck#2 integrate .. //depot/projects/avr32/src/etc/rc.d/cleartmp#2 integrate .. //depot/projects/avr32/src/etc/rc.d/defaultroute#4 integrate .. //depot/projects/avr32/src/etc/rc.d/faith#2 integrate .. //depot/projects/avr32/src/etc/rc.d/fsck#3 integrate .. //depot/projects/avr32/src/etc/rc.d/hostid#3 integrate .. //depot/projects/avr32/src/etc/rc.d/hostname#2 integrate .. //depot/projects/avr32/src/etc/rc.d/ip6addrctl#3 integrate .. //depot/projects/avr32/src/etc/rc.d/ldconfig#2 integrate .. //depot/projects/avr32/src/etc/rc.d/motd#2 integrate .. //depot/projects/avr32/src/etc/rc.d/mountcritlocal#2 integrate .. //depot/projects/avr32/src/etc/rc.d/moused#3 integrate .. //depot/projects/avr32/src/etc/rc.d/netif#5 integrate .. //depot/projects/avr32/src/etc/rc.d/netoptions#3 integrate .. //depot/projects/avr32/src/etc/rc.d/newsyslog#2 integrate .. //depot/projects/avr32/src/etc/rc.d/nfsclient#2 integrate .. //depot/projects/avr32/src/etc/rc.d/pf#4 integrate .. //depot/projects/avr32/src/etc/rc.d/routing#3 integrate .. //depot/projects/avr32/src/etc/rc.d/savecore#2 integrate .. //depot/projects/avr32/src/etc/rc.d/static_arp#2 integrate .. //depot/projects/avr32/src/etc/rc.d/stf#2 integrate .. //depot/projects/avr32/src/etc/rc.subr#4 integrate .. //depot/projects/avr32/src/etc/services#2 integrate .. //depot/projects/avr32/src/games/fortune/datfiles/fortunes#5 integrate .. //depot/projects/avr32/src/games/fortune/datfiles/fortunes.sp.ok#2 integrate .. //depot/projects/avr32/src/games/number/Makefile#2 integrate .. //depot/projects/avr32/src/games/number/number.c#2 integrate .. //depot/projects/avr32/src/include/langinfo.h#2 integrate .. //depot/projects/avr32/src/include/libgen.h#2 integrate .. //depot/projects/avr32/src/kerberos5/lib/libgssapi_krb5/Makefile#2 integrate .. //depot/projects/avr32/src/kerberos5/lib/libgssapi_spnego/Makefile#2 integrate .. //depot/projects/avr32/src/lib/libc/gen/Makefile.inc#7 integrate .. //depot/projects/avr32/src/lib/libc/gen/Symbol.map#7 integrate .. //depot/projects/avr32/src/lib/libc/gen/_pthread_stubs.c#2 integrate .. //depot/projects/avr32/src/lib/libc/gen/basename.3#2 integrate .. //depot/projects/avr32/src/lib/libc/gen/basename.c#2 integrate .. //depot/projects/avr32/src/lib/libc/gen/errlst.c#2 integrate .. //depot/projects/avr32/src/lib/libc/gen/fts.3#2 integrate .. //depot/projects/avr32/src/lib/libc/gen/fts.c#3 integrate .. //depot/projects/avr32/src/lib/libc/gen/getcwd.c#2 integrate .. //depot/projects/avr32/src/lib/libc/include/namespace.h#2 integrate .. //depot/projects/avr32/src/lib/libc/include/un-namespace.h#2 integrate .. //depot/projects/avr32/src/lib/libc/locale/nl_langinfo.c#2 integrate .. //depot/projects/avr32/src/lib/libc/nls/C.msg#2 integrate .. //depot/projects/avr32/src/lib/libc/stdio/getdelim.c#3 integrate .. //depot/projects/avr32/src/lib/libc/sys/Symbol.map#7 integrate .. //depot/projects/avr32/src/lib/libc/sys/fcntl.2#2 integrate .. //depot/projects/avr32/src/lib/libc/sys/intro.2#3 integrate .. //depot/projects/avr32/src/lib/libc/sys/nanosleep.2#2 integrate .. //depot/projects/avr32/src/lib/libpam/modules/pam_ssh/Makefile#2 integrate .. //depot/projects/avr32/src/lib/libpmc/Makefile#2 integrate .. //depot/projects/avr32/src/lib/libradius/radlib.c#3 integrate .. //depot/projects/avr32/src/lib/libthr/pthread.map#2 integrate .. //depot/projects/avr32/src/lib/libthr/thread/thr_private.h#2 integrate .. //depot/projects/avr32/src/lib/libthr/thread/thr_syscalls.c#3 integrate .. //depot/projects/avr32/src/libexec/rtld-elf/map_object.c#5 integrate .. //depot/projects/avr32/src/libexec/rtld-elf/rtld.c#7 integrate .. //depot/projects/avr32/src/release/doc/README#2 integrate .. //depot/projects/avr32/src/release/doc/en_US.ISO8859-1/errata/article.sgml#2 integrate .. //depot/projects/avr32/src/release/doc/share/misc/man2hwnotes.pl#2 integrate .. //depot/projects/avr32/src/release/doc/share/mk/doc.relnotes.mk#2 integrate .. //depot/projects/avr32/src/release/doc/share/sgml/release.dsl#2 integrate .. //depot/projects/avr32/src/release/doc/share/sgml/release.ent#2 integrate .. //depot/projects/avr32/src/sbin/camcontrol/camcontrol.c#4 integrate .. //depot/projects/avr32/src/sbin/growfs/growfs.c#2 integrate .. //depot/projects/avr32/src/sbin/ifconfig/af_nd6.c#2 integrate .. //depot/projects/avr32/src/sbin/ifconfig/ifieee80211.c#7 integrate .. //depot/projects/avr32/src/sbin/shutdown/shutdown.c#2 integrate .. //depot/projects/avr32/src/secure/libexec/sftp-server/Makefile#2 integrate .. //depot/projects/avr32/src/secure/libexec/ssh-keysign/Makefile#2 integrate .. //depot/projects/avr32/src/secure/usr.bin/scp/Makefile#2 integrate .. //depot/projects/avr32/src/secure/usr.bin/sftp/Makefile#2 integrate .. //depot/projects/avr32/src/secure/usr.bin/ssh-add/Makefile#2 integrate .. //depot/projects/avr32/src/secure/usr.bin/ssh-agent/Makefile#2 integrate .. //depot/projects/avr32/src/secure/usr.bin/ssh-keygen/Makefile#2 integrate .. //depot/projects/avr32/src/secure/usr.bin/ssh-keyscan/Makefile#2 integrate .. //depot/projects/avr32/src/secure/usr.bin/ssh/Makefile#2 integrate .. //depot/projects/avr32/src/secure/usr.sbin/sshd/Makefile#3 integrate .. //depot/projects/avr32/src/share/man/man4/bce.4#3 integrate .. //depot/projects/avr32/src/share/man/man4/bge.4#3 integrate .. //depot/projects/avr32/src/share/man/man4/de.4#2 integrate .. //depot/projects/avr32/src/share/man/man4/lindev.4#2 integrate .. //depot/projects/avr32/src/share/man/man4/msk.4#4 integrate .. //depot/projects/avr32/src/share/man/man4/sbp_targ.4#2 integrate .. //depot/projects/avr32/src/share/man/man4/targ.4#2 integrate .. //depot/projects/avr32/src/share/man/man4/unix.4#2 integrate .. //depot/projects/avr32/src/share/man/man4/urtw.4#4 integrate .. //depot/projects/avr32/src/share/man/man4/zyd.4#2 integrate .. //depot/projects/avr32/src/share/man/man5/rc.conf.5#7 integrate .. //depot/projects/avr32/src/share/man/man7/tuning.7#5 integrate .. //depot/projects/avr32/src/share/man/man9/BUS_BIND_INTR.9#1 branch .. //depot/projects/avr32/src/share/man/man9/BUS_DESCRIBE_INTR.9#1 branch .. //depot/projects/avr32/src/share/man/man9/Makefile#11 integrate .. //depot/projects/avr32/src/share/man/man9/fetch.9#2 integrate .. //depot/projects/avr32/src/share/man/man9/store.9#2 integrate .. //depot/projects/avr32/src/share/misc/committers-src.dot#7 integrate .. //depot/projects/avr32/src/share/zoneinfo/asia#9 integrate .. //depot/projects/avr32/src/share/zoneinfo/southamerica#4 integrate .. //depot/projects/avr32/src/sys/amd64/acpica/acpi_machdep.c#5 integrate .. //depot/projects/avr32/src/sys/amd64/acpica/acpi_wakecode.S#3 integrate .. //depot/projects/avr32/src/sys/amd64/acpica/acpi_wakeup.c#5 integrate .. //depot/projects/avr32/src/sys/amd64/amd64/elf_machdep.c#5 integrate .. //depot/projects/avr32/src/sys/amd64/amd64/initcpu.c#4 integrate .. //depot/projects/avr32/src/sys/amd64/amd64/intr_machdep.c#4 integrate .. //depot/projects/avr32/src/sys/amd64/amd64/nexus.c#2 integrate .. //depot/projects/avr32/src/sys/amd64/amd64/pmap.c#9 integrate .. //depot/projects/avr32/src/sys/amd64/conf/GENERIC#8 integrate .. //depot/projects/avr32/src/sys/amd64/include/atomic.h#2 integrate .. //depot/projects/avr32/src/sys/amd64/include/cpufunc.h#5 integrate .. //depot/projects/avr32/src/sys/amd64/include/elf.h#3 integrate .. //depot/projects/avr32/src/sys/amd64/include/intr_machdep.h#5 integrate .. //depot/projects/avr32/src/sys/arm/arm/cpufunc.c#4 integrate .. //depot/projects/avr32/src/sys/arm/arm/elf_machdep.c#5 integrate .. //depot/projects/avr32/src/sys/arm/arm/pmap.c#7 integrate .. //depot/projects/avr32/src/sys/arm/conf/HL200#5 integrate .. //depot/projects/avr32/src/sys/arm/conf/KB920X#5 integrate .. //depot/projects/avr32/src/sys/arm/include/elf.h#3 integrate .. //depot/projects/avr32/src/sys/arm/xscale/i80321/i80321_timer.c#2 integrate .. //depot/projects/avr32/src/sys/arm/xscale/xscalereg.h#2 delete .. //depot/projects/avr32/src/sys/arm/xscale/xscalevar.h#2 delete .. //depot/projects/avr32/src/sys/avr32/avr32/machdep.c#14 edit .. //depot/projects/avr32/src/sys/avr32/include/elf.h#3 edit .. //depot/projects/avr32/src/sys/boot/i386/zfsboot/zfsboot.c#3 integrate .. //depot/projects/avr32/src/sys/bsm/audit_kevents.h#5 integrate .. //depot/projects/avr32/src/sys/cam/ata/ata_da.c#3 integrate .. //depot/projects/avr32/src/sys/cddl/compat/opensolaris/kern/opensolaris_policy.c#3 integrate .. //depot/projects/avr32/src/sys/cddl/compat/opensolaris/sys/policy.h#2 integrate .. //depot/projects/avr32/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c#6 integrate .. //depot/projects/avr32/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c#3 integrate .. //depot/projects/avr32/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c#9 integrate .. //depot/projects/avr32/src/sys/compat/freebsd32/freebsd32_proto.h#8 integrate .. //depot/projects/avr32/src/sys/compat/freebsd32/freebsd32_syscall.h#7 integrate .. //depot/projects/avr32/src/sys/compat/freebsd32/freebsd32_syscalls.c#7 integrate .. //depot/projects/avr32/src/sys/compat/freebsd32/freebsd32_sysent.c#7 integrate .. //depot/projects/avr32/src/sys/compat/freebsd32/syscalls.master#7 integrate .. //depot/projects/avr32/src/sys/compat/ia32/ia32_sysvec.c#5 integrate .. //depot/projects/avr32/src/sys/compat/x86bios/x86bios.c#2 integrate .. //depot/projects/avr32/src/sys/compat/x86bios/x86bios.h#2 integrate .. //depot/projects/avr32/src/sys/conf/files#16 integrate .. //depot/projects/avr32/src/sys/conf/files.amd64#9 integrate .. //depot/projects/avr32/src/sys/conf/files.i386#10 integrate .. //depot/projects/avr32/src/sys/ddb/db_ps.c#2 integrate .. //depot/projects/avr32/src/sys/dev/acpica/acpi_acad.c#3 integrate .. //depot/projects/avr32/src/sys/dev/acpica/acpi_video.c#4 integrate .. //depot/projects/avr32/src/sys/dev/ae/if_ae.c#5 integrate .. //depot/projects/avr32/src/sys/dev/age/if_age.c#5 integrate .. //depot/projects/avr32/src/sys/dev/agp/agp_i810.c#4 integrate .. //depot/projects/avr32/src/sys/dev/ahci/ahci.c#3 integrate .. //depot/projects/avr32/src/sys/dev/alc/if_alc.c#5 integrate .. //depot/projects/avr32/src/sys/dev/ale/if_ale.c#4 integrate .. //depot/projects/avr32/src/sys/dev/ata/chipsets/ata-ati.c#4 integrate .. //depot/projects/avr32/src/sys/dev/ath/ath_hal/ah_eeprom_v4k.c#1 branch .. //depot/projects/avr32/src/sys/dev/ath/ath_hal/ah_eeprom_v4k.h#1 branch .. //depot/projects/avr32/src/sys/dev/bge/if_bge.c#9 integrate .. //depot/projects/avr32/src/sys/dev/bge/if_bgereg.h#3 integrate .. //depot/projects/avr32/src/sys/dev/cxgb/common/cxgb_ael1002.c#4 integrate .. //depot/projects/avr32/src/sys/dev/cxgb/common/cxgb_aq100x.c#1 branch .. //depot/projects/avr32/src/sys/dev/cxgb/common/cxgb_common.h#4 integrate .. //depot/projects/avr32/src/sys/dev/cxgb/common/cxgb_mv88e1xxx.c#2 integrate .. //depot/projects/avr32/src/sys/dev/cxgb/common/cxgb_regs.h#2 integrate .. //depot/projects/avr32/src/sys/dev/cxgb/common/cxgb_t3_hw.c#4 integrate .. //depot/projects/avr32/src/sys/dev/cxgb/common/cxgb_tn1010.c#2 integrate .. //depot/projects/avr32/src/sys/dev/cxgb/common/cxgb_vsc8211.c#2 integrate .. //depot/projects/avr32/src/sys/dev/cxgb/common/cxgb_xgmac.c#3 integrate .. //depot/projects/avr32/src/sys/dev/cxgb/cxgb_adapter.h#6 integrate .. //depot/projects/avr32/src/sys/dev/cxgb/cxgb_main.c#7 integrate .. //depot/projects/avr32/src/sys/dev/cxgb/cxgb_osdep.h#3 integrate .. //depot/projects/avr32/src/sys/dev/cxgb/cxgb_t3fw.h#3 integrate .. //depot/projects/avr32/src/sys/dev/drm/drm_pciids.h#6 integrate .. //depot/projects/avr32/src/sys/dev/drm/i915_drv.h#6 integrate .. //depot/projects/avr32/src/sys/dev/drm/r600_blit.c#2 integrate .. //depot/projects/avr32/src/sys/dev/drm/radeon_cs.c#2 integrate .. //depot/projects/avr32/src/sys/dev/drm/radeon_drv.h#6 integrate .. //depot/projects/avr32/src/sys/dev/drm/radeon_irq.c#5 integrate .. //depot/projects/avr32/src/sys/dev/drm/radeon_state.c#4 integrate .. //depot/projects/avr32/src/sys/dev/fdc/fdc.c#3 integrate .. //depot/projects/avr32/src/sys/dev/fxp/if_fxp.c#9 integrate .. //depot/projects/avr32/src/sys/dev/hwpmc/hwpmc_mod.c#3 integrate .. //depot/projects/avr32/src/sys/dev/if_ndis/if_ndis.c#12 integrate .. //depot/projects/avr32/src/sys/dev/jme/if_jme.c#3 integrate .. //depot/projects/avr32/src/sys/dev/mii/e1000phy.c#5 integrate .. //depot/projects/avr32/src/sys/dev/mii/e1000phyreg.h#4 integrate .. //depot/projects/avr32/src/sys/dev/msk/if_msk.c#7 integrate .. //depot/projects/avr32/src/sys/dev/msk/if_mskreg.h#4 integrate .. //depot/projects/avr32/src/sys/dev/mxge/if_mxge.c#8 integrate .. //depot/projects/avr32/src/sys/dev/mxge/if_mxge_var.h#7 integrate .. //depot/projects/avr32/src/sys/dev/pci/pci.c#11 integrate .. //depot/projects/avr32/src/sys/dev/ppbus/lpt.c#3 integrate .. //depot/projects/avr32/src/sys/dev/siis/siis.c#3 integrate .. //depot/projects/avr32/src/sys/dev/sound/pci/hda/hda_reg.h#2 integrate .. //depot/projects/avr32/src/sys/dev/sound/pci/hda/hdac.c#10 integrate .. //depot/projects/avr32/src/sys/dev/uart/uart_bus.h#2 integrate .. //depot/projects/avr32/src/sys/dev/uart/uart_core.c#2 integrate .. //depot/projects/avr32/src/sys/dev/uart/uart_tty.c#3 integrate .. //depot/projects/avr32/src/sys/dev/usb/controller/atmegadci.c#10 integrate .. //depot/projects/avr32/src/sys/dev/usb/controller/ehci.c#10 integrate .. //depot/projects/avr32/src/sys/dev/usb/controller/ehci.h#7 integrate .. //depot/projects/avr32/src/sys/dev/usb/controller/ehci_ixp4xx.c#6 integrate .. //depot/projects/avr32/src/sys/dev/usb/controller/ehci_mbus.c#6 integrate .. //depot/projects/avr32/src/sys/dev/usb/controller/ehci_pci.c#7 integrate .. //depot/projects/avr32/src/sys/dev/usb/controller/ehcireg.h#1 branch .. //depot/projects/avr32/src/sys/dev/usb/controller/ohci.c#10 integrate .. //depot/projects/avr32/src/sys/dev/usb/controller/ohci.h#7 integrate .. //depot/projects/avr32/src/sys/dev/usb/controller/ohci_atmelarm.c#6 integrate .. //depot/projects/avr32/src/sys/dev/usb/controller/ohci_pci.c#7 integrate .. //depot/projects/avr32/src/sys/dev/usb/controller/ohcireg.h#1 branch .. //depot/projects/avr32/src/sys/dev/usb/controller/uhci.c#10 integrate .. //depot/projects/avr32/src/sys/dev/usb/controller/uhci.h#7 integrate .. //depot/projects/avr32/src/sys/dev/usb/controller/uhci_pci.c#7 integrate .. //depot/projects/avr32/src/sys/dev/usb/controller/uhcireg.h#1 branch .. //depot/projects/avr32/src/sys/dev/usb/controller/usb_controller.c#11 integrate .. //depot/projects/avr32/src/sys/dev/usb/input/ukbd.c#10 integrate .. //depot/projects/avr32/src/sys/dev/usb/net/if_axe.c#9 integrate .. //depot/projects/avr32/src/sys/dev/usb/net/if_cdce.c#10 integrate .. //depot/projects/avr32/src/sys/dev/usb/net/if_cdcereg.h#4 integrate .. //depot/projects/avr32/src/sys/dev/usb/quirk/usb_quirk.c#5 integrate .. //depot/projects/avr32/src/sys/dev/usb/serial/u3g.c#10 integrate .. //depot/projects/avr32/src/sys/dev/usb/serial/uark.c#8 integrate .. //depot/projects/avr32/src/sys/dev/usb/serial/ubsa.c#8 integrate .. //depot/projects/avr32/src/sys/dev/usb/serial/ubser.c#8 integrate .. //depot/projects/avr32/src/sys/dev/usb/serial/uch341.c#1 branch .. //depot/projects/avr32/src/sys/dev/usb/serial/uchcom.c#8 integrate .. //depot/projects/avr32/src/sys/dev/usb/serial/ucycom.c#8 integrate .. //depot/projects/avr32/src/sys/dev/usb/serial/ufoma.c#8 integrate .. //depot/projects/avr32/src/sys/dev/usb/serial/uftdi.c#9 integrate .. //depot/projects/avr32/src/sys/dev/usb/serial/ugensa.c#8 integrate .. //depot/projects/avr32/src/sys/dev/usb/serial/uipaq.c#9 integrate .. //depot/projects/avr32/src/sys/dev/usb/serial/umct.c#8 integrate .. //depot/projects/avr32/src/sys/dev/usb/serial/umodem.c#8 integrate .. //depot/projects/avr32/src/sys/dev/usb/serial/umoscom.c#8 integrate .. //depot/projects/avr32/src/sys/dev/usb/serial/uplcom.c#8 integrate .. //depot/projects/avr32/src/sys/dev/usb/serial/usb_serial.c#7 integrate .. //depot/projects/avr32/src/sys/dev/usb/serial/usb_serial.h#5 integrate .. //depot/projects/avr32/src/sys/dev/usb/serial/uslcom.c#8 integrate .. //depot/projects/avr32/src/sys/dev/usb/serial/uvscom.c#8 integrate .. //depot/projects/avr32/src/sys/dev/usb/storage/umass.c#9 integrate .. //depot/projects/avr32/src/sys/dev/usb/usb.h#7 integrate .. //depot/projects/avr32/src/sys/dev/usb/usb_bus.h#9 integrate .. //depot/projects/avr32/src/sys/dev/usb/usb_cdc.h#3 integrate .. //depot/projects/avr32/src/sys/dev/usb/usb_device.c#12 integrate .. //depot/projects/avr32/src/sys/dev/usb/usb_device.h#11 integrate .. //depot/projects/avr32/src/sys/dev/usb/usb_hub.c#11 integrate .. //depot/projects/avr32/src/sys/dev/usb/usb_transfer.c#11 integrate .. //depot/projects/avr32/src/sys/dev/usb/usbdevs#10 integrate .. //depot/projects/avr32/src/sys/dev/usb/wlan/if_rum.c#11 integrate .. //depot/projects/avr32/src/sys/dev/usb/wlan/if_uath.c#8 integrate .. //depot/projects/avr32/src/sys/dev/usb/wlan/if_upgt.c#8 integrate .. //depot/projects/avr32/src/sys/dev/usb/wlan/if_ural.c#10 integrate .. //depot/projects/avr32/src/sys/dev/usb/wlan/if_urtw.c#6 integrate .. //depot/projects/avr32/src/sys/dev/usb/wlan/if_urtwreg.h#2 integrate .. //depot/projects/avr32/src/sys/dev/usb/wlan/if_urtwvar.h#3 integrate .. //depot/projects/avr32/src/sys/dev/usb/wlan/if_zyd.c#11 integrate .. //depot/projects/avr32/src/sys/fs/fifofs/fifo_vnops.c#7 integrate .. //depot/projects/avr32/src/sys/fs/nfs/nfs_commonacl.c#4 integrate .. //depot/projects/avr32/src/sys/fs/tmpfs/tmpfs.h#4 integrate .. //depot/projects/avr32/src/sys/fs/tmpfs/tmpfs_subr.c#5 integrate .. //depot/projects/avr32/src/sys/fs/tmpfs/tmpfs_vnops.c#6 integrate .. //depot/projects/avr32/src/sys/geom/concat/g_concat.c#3 integrate .. //depot/projects/avr32/src/sys/geom/label/g_label.c#4 integrate .. //depot/projects/avr32/src/sys/geom/part/g_part.c#8 integrate .. //depot/projects/avr32/src/sys/geom/part/g_part_ebr.c#5 integrate .. //depot/projects/avr32/src/sys/geom/part/g_part_gpt.c#5 integrate .. //depot/projects/avr32/src/sys/geom/shsec/g_shsec.c#2 integrate .. //depot/projects/avr32/src/sys/geom/stripe/g_stripe.c#3 integrate .. //depot/projects/avr32/src/sys/geom/uzip/g_uzip.c#2 integrate .. //depot/projects/avr32/src/sys/geom/vinum/geom_vinum_create.c#3 integrate .. //depot/projects/avr32/src/sys/geom/vinum/geom_vinum_events.c#3 integrate .. //depot/projects/avr32/src/sys/geom/vinum/geom_vinum_init.c#3 integrate .. //depot/projects/avr32/src/sys/geom/vinum/geom_vinum_move.c#3 integrate .. //depot/projects/avr32/src/sys/geom/vinum/geom_vinum_rm.c#4 integrate .. //depot/projects/avr32/src/sys/geom/vinum/geom_vinum_subr.c#4 integrate .. //depot/projects/avr32/src/sys/i386/conf/GENERIC#7 integrate .. //depot/projects/avr32/src/sys/i386/i386/elf_machdep.c#6 integrate .. //depot/projects/avr32/src/sys/i386/i386/initcpu.c#3 integrate .. //depot/projects/avr32/src/sys/i386/i386/intr_machdep.c#4 integrate .. //depot/projects/avr32/src/sys/i386/i386/nexus.c#2 integrate .. //depot/projects/avr32/src/sys/i386/i386/vm_machdep.c#5 integrate .. //depot/projects/avr32/src/sys/i386/include/atomic.h#2 integrate .. //depot/projects/avr32/src/sys/i386/include/cpufunc.h#6 integrate .. //depot/projects/avr32/src/sys/i386/include/elf.h#3 integrate .. //depot/projects/avr32/src/sys/i386/include/intr_machdep.h#5 integrate .. //depot/projects/avr32/src/sys/i386/xen/xen_machdep.c#4 integrate .. //depot/projects/avr32/src/sys/ia64/ia64/elf_machdep.c#6 integrate .. //depot/projects/avr32/src/sys/ia64/include/elf.h#3 integrate .. //depot/projects/avr32/src/sys/kern/bus_if.m#3 integrate .. //depot/projects/avr32/src/sys/kern/imgact_elf.c#6 integrate .. //depot/projects/avr32/src/sys/kern/init_main.c#6 integrate .. //depot/projects/avr32/src/sys/kern/init_sysent.c#6 integrate .. //depot/projects/avr32/src/sys/kern/kern_descrip.c#7 integrate .. //depot/projects/avr32/src/sys/kern/kern_event.c#5 integrate .. //depot/projects/avr32/src/sys/kern/kern_exec.c#8 integrate .. //depot/projects/avr32/src/sys/kern/kern_exit.c#9 integrate .. //depot/projects/avr32/src/sys/kern/kern_intr.c#5 integrate .. //depot/projects/avr32/src/sys/kern/kern_lock.c#9 integrate .. //depot/projects/avr32/src/sys/kern/kern_proc.c#7 integrate .. //depot/projects/avr32/src/sys/kern/kern_rwlock.c#8 integrate .. //depot/projects/avr32/src/sys/kern/kern_sig.c#7 integrate .. //depot/projects/avr32/src/sys/kern/kern_sx.c#8 integrate .. //depot/projects/avr32/src/sys/kern/kern_thr.c#5 integrate .. //depot/projects/avr32/src/sys/kern/sched_ule.c#7 integrate .. //depot/projects/avr32/src/sys/kern/subr_acl_posix1e.c#3 integrate .. //depot/projects/avr32/src/sys/kern/subr_bus.c#8 integrate .. //depot/projects/avr32/src/sys/kern/subr_trap.c#4 integrate .. //depot/projects/avr32/src/sys/kern/syscalls.c#6 integrate .. //depot/projects/avr32/src/sys/kern/syscalls.master#6 integrate .. //depot/projects/avr32/src/sys/kern/tty_ttydisc.c#6 integrate .. //depot/projects/avr32/src/sys/kern/uipc_socket.c#8 integrate .. //depot/projects/avr32/src/sys/kern/uipc_syscalls.c#8 integrate .. //depot/projects/avr32/src/sys/kern/uipc_usrreq.c#8 integrate .. //depot/projects/avr32/src/sys/kern/vfs_acl.c#6 integrate .. //depot/projects/avr32/src/sys/kern/vfs_default.c#8 integrate .. //depot/projects/avr32/src/sys/kern/vfs_export.c#5 integrate .. //depot/projects/avr32/src/sys/kern/vfs_subr.c#10 integrate .. //depot/projects/avr32/src/sys/kern/vfs_vnops.c#10 integrate .. //depot/projects/avr32/src/sys/mips/include/elf.h#3 integrate .. //depot/projects/avr32/src/sys/mips/mips/elf64_machdep.c#4 integrate .. //depot/projects/avr32/src/sys/mips/mips/elf_machdep.c#5 integrate .. //depot/projects/avr32/src/sys/modules/acpi/acpi/Makefile#5 integrate .. //depot/projects/avr32/src/sys/modules/cxgb/cxgb/Makefile#3 integrate .. //depot/projects/avr32/src/sys/modules/nfsclient/Makefile#6 integrate .. //depot/projects/avr32/src/sys/modules/nfslockd/Makefile#3 integrate .. //depot/projects/avr32/src/sys/modules/pf/Makefile#3 integrate .. //depot/projects/avr32/src/sys/modules/ubser/Makefile#2 integrate .. //depot/projects/avr32/src/sys/modules/usb/uch341/Makefile#1 branch .. //depot/projects/avr32/src/sys/net/flowtable.c#7 integrate .. //depot/projects/avr32/src/sys/net/flowtable.h#5 integrate .. //depot/projects/avr32/src/sys/net/if_bridge.c#9 integrate .. //depot/projects/avr32/src/sys/net/if_enc.c#5 integrate .. //depot/projects/avr32/src/sys/net/if_ethersubr.c#9 integrate .. //depot/projects/avr32/src/sys/net/pfil.c#2 integrate .. //depot/projects/avr32/src/sys/net/route.c#8 integrate .. //depot/projects/avr32/src/sys/net80211/ieee80211_hwmp.c#3 integrate .. //depot/projects/avr32/src/sys/net80211/ieee80211_mesh.c#3 integrate .. //depot/projects/avr32/src/sys/net80211/ieee80211_mesh.h#3 integrate .. //depot/projects/avr32/src/sys/netgraph/ng_bridge.c#3 integrate .. //depot/projects/avr32/src/sys/netinet/if_ether.c#11 integrate .. //depot/projects/avr32/src/sys/netinet/in.c#10 integrate .. //depot/projects/avr32/src/sys/netinet/ip_fastfwd.c#6 integrate .. //depot/projects/avr32/src/sys/netinet/ip_icmp.c#8 integrate .. //depot/projects/avr32/src/sys/netinet/ip_input.c#11 integrate .. //depot/projects/avr32/src/sys/netinet/ip_output.c#13 integrate .. //depot/projects/avr32/src/sys/netinet/ip_var.h#6 integrate .. //depot/projects/avr32/src/sys/netinet/ipfw/ip_fw2.c#5 integrate .. //depot/projects/avr32/src/sys/netinet/ipfw/ip_fw_pfil.c#3 integrate .. //depot/projects/avr32/src/sys/netinet/raw_ip.c#11 integrate .. //depot/projects/avr32/src/sys/netinet/sctp_bsd_addr.c#4 integrate .. //depot/projects/avr32/src/sys/netinet/sctp_os_bsd.h#9 integrate .. //depot/projects/avr32/src/sys/netinet/sctp_output.c#9 integrate .. //depot/projects/avr32/src/sys/netinet/sctp_pcb.c#7 integrate .. //depot/projects/avr32/src/sys/netinet/tcp_input.c#8 integrate .. //depot/projects/avr32/src/sys/netinet6/icmp6.c#11 integrate .. //depot/projects/avr32/src/sys/netinet6/in6_ifattach.c#12 integrate .. //depot/projects/avr32/src/sys/netinet6/ip6_forward.c#4 integrate .. //depot/projects/avr32/src/sys/netinet6/ip6_input.c#11 integrate .. //depot/projects/avr32/src/sys/netinet6/ip6_output.c#10 integrate .. //depot/projects/avr32/src/sys/netinet6/ip6_var.h#7 integrate .. //depot/projects/avr32/src/sys/netipsec/xform_esp.c#4 integrate .. //depot/projects/avr32/src/sys/nfsclient/nfs_kdtrace.c#3 integrate .. //depot/projects/avr32/src/sys/nfsclient/nfs_vnops.c#11 integrate .. //depot/projects/avr32/src/sys/nlm/nlm.h#3 integrate .. //depot/projects/avr32/src/sys/nlm/nlm_prot_impl.c#5 integrate .. //depot/projects/avr32/src/sys/nlm/nlm_prot_server.c#2 integrate .. //depot/projects/avr32/src/sys/pc98/conf/GENERIC#7 integrate .. //depot/projects/avr32/src/sys/powerpc/aim/swtch.S#4 integrate .. //depot/projects/avr32/src/sys/powerpc/aim/trap_subr.S#5 integrate .. //depot/projects/avr32/src/sys/powerpc/include/elf.h#3 integrate .. //depot/projects/avr32/src/sys/powerpc/powerpc/elf_machdep.c#5 integrate .. //depot/projects/avr32/src/sys/rpc/rpcsec_gss/svc_rpcsec_gss.c#3 integrate .. //depot/projects/avr32/src/sys/sparc64/conf/GENERIC#10 integrate .. //depot/projects/avr32/src/sys/sparc64/include/elf.h#3 integrate .. //depot/projects/avr32/src/sys/sparc64/sparc64/elf_machdep.c#5 integrate .. //depot/projects/avr32/src/sys/sun4v/include/elf.h#3 integrate .. //depot/projects/avr32/src/sys/sys/bus.h#5 integrate .. //depot/projects/avr32/src/sys/sys/errno.h#2 integrate .. //depot/projects/avr32/src/sys/sys/fcntl.h#5 integrate .. //depot/projects/avr32/src/sys/sys/interrupt.h#3 integrate .. //depot/projects/avr32/src/sys/sys/pmc.h#4 integrate .. //depot/projects/avr32/src/sys/sys/rwlock.h#3 integrate .. //depot/projects/avr32/src/sys/sys/signalvar.h#3 integrate .. //depot/projects/avr32/src/sys/sys/sx.h#5 integrate .. //depot/projects/avr32/src/sys/sys/syscall.h#6 integrate .. //depot/projects/avr32/src/sys/sys/syscall.mk#6 integrate .. //depot/projects/avr32/src/sys/sys/sysproto.h#7 integrate .. //depot/projects/avr32/src/sys/sys/vnode.h#9 integrate .. //depot/projects/avr32/src/sys/teken/sequences#2 integrate .. //depot/projects/avr32/src/sys/teken/teken.c#2 integrate .. //depot/projects/avr32/src/sys/teken/teken_subr.h#2 integrate .. //depot/projects/avr32/src/sys/vm/swap_pager.c#6 integrate .. //depot/projects/avr32/src/sys/vm/vm_map.c#8 integrate .. //depot/projects/avr32/src/sys/vm/vm_mmap.c#8 integrate .. //depot/projects/avr32/src/sys/vm/vm_page.c#5 integrate .. //depot/projects/avr32/src/sys/vm/vm_page.h#4 integrate .. //depot/projects/avr32/src/tools/regression/bin/sh/errors/backquote-error2.0#1 branch .. //depot/projects/avr32/src/tools/regression/bin/sh/execution/unknown1.0#1 branch .. //depot/projects/avr32/src/tools/regression/lib/libc/stdio/test-getdelim.c#3 integrate .. //depot/projects/avr32/src/tools/regression/mmap/Makefile#1 branch .. //depot/projects/avr32/src/tools/regression/mmap/mmap.c#1 branch .. //depot/projects/avr32/src/tools/regression/sigqueue/sigqtest1/sigqtest1.c#2 integrate .. //depot/projects/avr32/src/tools/regression/sigqueue/sigqtest2/sigqtest2.c#2 integrate .. //depot/projects/avr32/src/tools/regression/sockets/unix_seqpacket/Makefile#1 branch .. //depot/projects/avr32/src/tools/regression/sockets/unix_seqpacket/unix_seqpacket.c#1 branch .. //depot/projects/avr32/src/tools/regression/sockets/unix_seqpacket_exercise/Makefile#1 branch .. //depot/projects/avr32/src/tools/regression/sockets/unix_seqpacket_exercise/unix_seqpacket_exercise.c#1 branch .. //depot/projects/avr32/src/tools/regression/tmpfs/h_tools.c#2 integrate .. //depot/projects/avr32/src/tools/tools/nanobsd/nanobsd.sh#4 integrate .. //depot/projects/avr32/src/tools/tools/netrate/netsend/netsend.c#2 integrate .. //depot/projects/avr32/src/usr.bin/calendar/calendars/calendar.freebsd#6 integrate .. //depot/projects/avr32/src/usr.bin/locale/locale.1#2 integrate .. //depot/projects/avr32/src/usr.bin/locale/locale.c#2 integrate .. //depot/projects/avr32/src/usr.bin/make/job.c#4 integrate .. //depot/projects/avr32/src/usr.bin/make/main.c#4 integrate .. //depot/projects/avr32/src/usr.bin/netstat/main.c#5 integrate .. //depot/projects/avr32/src/usr.bin/netstat/netstat.h#5 integrate .. //depot/projects/avr32/src/usr.bin/netstat/route.c#3 integrate .. //depot/projects/avr32/src/usr.bin/netstat/unix.c#2 integrate .. //depot/projects/avr32/src/usr.bin/systat/keyboard.c#2 integrate .. //depot/projects/avr32/src/usr.bin/systat/main.c#2 integrate .. //depot/projects/avr32/src/usr.bin/touch/touch.c#2 integrate .. //depot/projects/avr32/src/usr.bin/whois/whois.1#2 integrate .. //depot/projects/avr32/src/usr.bin/whois/whois.c#2 integrate .. //depot/projects/avr32/src/usr.sbin/cdcontrol/cdcontrol.c#2 integrate .. //depot/projects/avr32/src/usr.sbin/freebsd-update/freebsd-update.sh#3 integrate .. //depot/projects/avr32/src/usr.sbin/lpr/lp/lp.sh#3 integrate .. //depot/projects/avr32/src/usr.sbin/ntp/doc/ntpd.8#2 integrate Differences ... ==== //depot/projects/avr32/src/Makefile.inc1#10 (text+ko) ==== @@ -1,5 +1,5 @@ # -# $FreeBSD: src/Makefile.inc1,v 1.629 2009/09/10 07:37:36 des Exp $ +# $FreeBSD: src/Makefile.inc1,v 1.630 2009/10/13 05:38:08 bland Exp $ # # Make command line options: # -DNO_CLEANDIR run ${MAKE} clean, instead of ${MAKE} cleandir @@ -1122,7 +1122,7 @@ _secure_lib_libssh= secure/lib/libssh secure/lib/libssh__L: lib/libz__L secure/lib/libcrypto__L lib/libcrypt__L .if ${MK_KERBEROS} != "no" -kerberos5/lib/libgssapi_krb5__L: kerberos5/lib/libkrb5__L \ +kerberos5/lib/libgssapi_krb5__L: lib/libgssapi__L kerberos5/lib/libkrb5__L \ kerberos5/lib/libhx509__L kerberos5/lib/libasn1__L lib/libcom_err__L \ lib/libmd__L kerberos5/lib/libroken__L secure/lib/libcrypto__L \ lib/libcrypt__L ==== //depot/projects/avr32/src/ObsoleteFiles.inc#12 (text+ko) ==== @@ -1,5 +1,5 @@ # -# $FreeBSD: src/ObsoleteFiles.inc,v 1.209 2009/09/10 21:42:00 delphij Exp $ +# $FreeBSD: src/ObsoleteFiles.inc,v 1.210 2009/10/12 21:10:28 markm Exp $ # # This file lists old files (OLD_FILES), libraries (OLD_LIBS) and # directories (OLD_DIRS) which should get removed at an update. Recently @@ -503,6 +503,8 @@ OLD_FILES+=usr/include/dev/usb/usbcdc.h OLD_FILES+=usr/include/dev/usb/usbdivar.h OLD_FILES+=usr/include/dev/usb/uxb360gp_rdesc.h +OLD_FILES+=usr/sbin/usbdevs +OLD_FILES+=usr/share/man/man8/usbdevs.8.gz # 20090203: removal of pccard header files OLD_FILES+=usr/include/pccard/cardinfo.h OLD_FILES+=usr/include/pccard/cis.h ==== //depot/projects/avr32/src/bin/cat/Makefile#3 (text+ko) ==== @@ -1,7 +1,6 @@ # @(#)Makefile 8.1 (Berkeley) 5/31/93 -# $FreeBSD: src/bin/cat/Makefile,v 1.8 2009/03/16 12:16:17 des Exp $ +# $FreeBSD: src/bin/cat/Makefile,v 1.9 2009/10/15 18:17:29 ru Exp $ PROG= cat -WARNS?= 6 .include ==== //depot/projects/avr32/src/bin/csh/iconv_stub.c#2 (text) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/bin/csh/iconv_stub.c,v 1.1 2006/02/19 06:40:29 ume Exp $ + * $FreeBSD: src/bin/csh/iconv_stub.c,v 1.2 2009/10/17 15:53:15 ume Exp $ */ #include @@ -61,9 +61,20 @@ if (iconvlib == NULL) return (iconv_t)-1; iconv_open = (iconv_open_t *)dlfunc(iconvlib, ICONV_OPEN); + if (iconv_open == NULL) + goto dlfunc_err; dl_iconv = (dl_iconv_t *)dlfunc(iconvlib, ICONV_ENGINE); + if (dl_iconv == NULL) + goto dlfunc_err; dl_iconv_close = (dl_iconv_close_t *)dlfunc(iconvlib, ICONV_CLOSE); + if (dl_iconv_close == NULL) + goto dlfunc_err; } return iconv_open(tocode, fromcode); + +dlfunc_err: + dlclose(iconvlib); + iconvlib = NULL; + return (iconv_t)-1; } ==== //depot/projects/avr32/src/bin/ls/ls.c#2 (text+ko) ==== @@ -42,7 +42,7 @@ #endif /* not lint */ #endif #include -__FBSDID("$FreeBSD: src/bin/ls/ls.c,v 1.86 2008/04/04 03:57:46 grog Exp $"); +__FBSDID("$FreeBSD: src/bin/ls/ls.c,v 1.87 2009/10/13 21:51:50 jilles Exp $"); #include #include @@ -399,7 +399,7 @@ * If not -F, -d or -l options, follow any symbolic links listed on * the command line. */ - if (!f_longform && !f_listdir && !f_type) + if (!f_longform && !f_listdir && (!f_type || f_slash)) fts_options |= FTS_COMFOLLOW; /* ==== //depot/projects/avr32/src/bin/sh/eval.c#6 (text+ko) ==== @@ -36,7 +36,7 @@ #endif #endif /* not lint */ #include -__FBSDID("$FreeBSD: src/bin/sh/eval.c,v 1.66 2009/08/28 22:41:25 jilles Exp $"); +__FBSDID("$FreeBSD: src/bin/sh/eval.c,v 1.67 2009/10/06 22:00:14 jilles Exp $"); #include #include @@ -713,12 +713,7 @@ do_clearcmdentry = 1; } - find_command(argv[0], &cmdentry, 1, path); - if (cmdentry.cmdtype == CMDUNKNOWN) { /* command not found */ - exitstatus = 127; - flushout(&errout); - return; - } + find_command(argv[0], &cmdentry, 0, path); /* implement the bltin builtin here */ if (cmdentry.cmdtype == CMDBUILTIN && cmdentry.u.index == BLTINCMD) { for (;;) { @@ -740,7 +735,7 @@ /* Fork off a child process if necessary. */ if (cmd->ncmd.backgnd - || (cmdentry.cmdtype == CMDNORMAL + || ((cmdentry.cmdtype == CMDNORMAL || cmdentry.cmdtype == CMDUNKNOWN) && ((flags & EV_EXIT) == 0 || have_traps())) || ((flags & EV_BACKCMD) != 0 && (cmdentry.cmdtype != CMDBUILTIN ==== //depot/projects/avr32/src/bin/sh/exec.c#5 (text+ko) ==== @@ -36,7 +36,7 @@ #endif #endif /* not lint */ #include -__FBSDID("$FreeBSD: src/bin/sh/exec.c,v 1.36 2009/08/28 22:41:25 jilles Exp $"); +__FBSDID("$FreeBSD: src/bin/sh/exec.c,v 1.37 2009/10/06 22:00:14 jilles Exp $"); #include #include @@ -429,6 +429,7 @@ outfmt(out2, "%s: %s\n", name, strerror(e)); } entry->cmdtype = CMDUNKNOWN; + entry->u.index = 0; return; success: ==== //depot/projects/avr32/src/bin/sh/parser.c#5 (text+ko) ==== @@ -36,7 +36,7 @@ #endif #endif /* not lint */ #include -__FBSDID("$FreeBSD: src/bin/sh/parser.c,v 1.63 2009/06/23 20:45:12 jilles Exp $"); +__FBSDID("$FreeBSD: src/bin/sh/parser.c,v 1.65 2009/10/16 16:17:57 jilles Exp $"); #include #include @@ -82,7 +82,6 @@ STATIC struct heredoc *heredoclist; /* list of here documents to read */ -STATIC int parsebackquote; /* nonzero if we are inside backquotes */ STATIC int doprompt; /* if set, prompt the user */ STATIC int needprompt; /* true if interactive and at start of line */ STATIC int lasttoken; /* last token read */ @@ -1043,7 +1042,7 @@ endword: if (syntax == ARISYNTAX) synerror("Missing '))'"); - if (syntax != BASESYNTAX && ! parsebackquote && eofmark == NULL) + if (syntax != BASESYNTAX && eofmark == NULL) synerror("Unterminated quoted string"); if (varnest != 0) { startlinno = plinno; @@ -1303,20 +1302,22 @@ parsebackq: { struct nodelist **nlpp; - int savepbq; union node *n; char *volatile str; struct jmploc jmploc; struct jmploc *const savehandler = handler; int savelen; int saveprompt; + const int bq_startlinno = plinno; - savepbq = parsebackquote; if (setjmp(jmploc.loc)) { if (str) ckfree(str); - parsebackquote = 0; handler = savehandler; + if (exception == EXERROR) { + startlinno = bq_startlinno; + synerror("Error in command substitution"); + } longjmp(handler->loc, 1); } INTOFF; @@ -1397,7 +1398,6 @@ nlpp = &(*nlpp)->next; *nlpp = (struct nodelist *)stalloc(sizeof (struct nodelist)); (*nlpp)->next = NULL; - parsebackquote = oldstyle; if (oldstyle) { saveprompt = doprompt; @@ -1433,7 +1433,6 @@ str = NULL; INTON; } - parsebackquote = savepbq; handler = savehandler; if (arinest || dblquote) USTPUTC(CTLBACKQ | CTLQUOTE, out); ==== //depot/projects/avr32/src/bin/sh/sh.1#5 (text+ko) ==== @@ -30,7 +30,7 @@ .\" SUCH DAMAGE. .\" .\" from: @(#)sh.1 8.6 (Berkeley) 5/4/95 -.\" $FreeBSD: src/bin/sh/sh.1,v 1.131 2009/09/20 21:42:38 jilles Exp $ +.\" $FreeBSD: src/bin/sh/sh.1,v 1.132 2009/10/07 22:21:53 jilles Exp $ .\" .Dd May 31, 2009 .Dt SH 1 @@ -1227,6 +1227,9 @@ final value of .Ar parameter is substituted. +Quoting inside +.Ar word +does not prevent field splitting or pathname expansion. Only variables, not positional parameters or special parameters, can be assigned in this way. ==== //depot/projects/avr32/src/bin/uuidgen/Makefile#2 (text+ko) ==== @@ -1,6 +1,5 @@ -# $FreeBSD: src/bin/uuidgen/Makefile,v 1.4 2008/03/13 17:38:06 obrien Exp $ +# $FreeBSD: src/bin/uuidgen/Makefile,v 1.5 2009/10/15 18:17:29 ru Exp $ PROG= uuidgen -WARNS?= 6 .include ==== //depot/projects/avr32/src/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c#2 (text+ko) ==== @@ -1790,11 +1790,14 @@ /* We don't support those properties on FreeBSD. */ switch (prop) { + case ZFS_PROP_DEVICES: + case ZFS_PROP_ZONED: case ZFS_PROP_SHAREISCSI: - case ZFS_PROP_DEVICES: - case ZFS_PROP_ACLMODE: - case ZFS_PROP_ACLINHERIT: case ZFS_PROP_ISCSIOPTIONS: + case ZFS_PROP_XATTR: + case ZFS_PROP_VSCAN: + case ZFS_PROP_NBMAND: + case ZFS_PROP_SHARESMB: (void) snprintf(errbuf, sizeof (errbuf), "property '%s' not supported on FreeBSD", propname); ret = zfs_error(hdl, EZFS_PERM, errbuf); ==== //depot/projects/avr32/src/contrib/openpam/doc/man/pam.conf.5#2 (text) ==== @@ -109,7 +109,7 @@ .It Cm requisite If this module succeeds, the result of the chain will be success unless a later module fails. -If it module fails, the chain is broken and the result is failure. +If the module fails, the chain is broken and the result is failure. .It Cm sufficient If this module succeeds, the chain is broken and the result is success. ==== //depot/projects/avr32/src/contrib/tcpdump/print-tcp.c#3 (text+ko) ==== @@ -124,6 +124,7 @@ { TCPOPT_CCECHO, "" }, { TCPOPT_SIGNATURE, "md5" }, { TCPOPT_AUTH, "enhanced auth" }, + { TCPOPT_UTO, "uto" }, { 0, NULL } }; @@ -613,6 +614,17 @@ */ break; + case TCPOPT_UTO: + datalen = 2; + LENCHECK(datalen); + uint utoval = EXTRACT_16BITS(cp); + if (utoval & 0x0001) + utoval = (utoval >> 1) * 60; + else + utoval >>= 1; + (void)printf(" %u", utoval); + break; + default: datalen = len - 2; for (i = 0; i < datalen; ++i) { ==== //depot/projects/avr32/src/contrib/tcpdump/tcp.h#3 (text+ko) ==== @@ -83,6 +83,8 @@ #define TCPOLEN_SIGNATURE 18 #define TCP_SIGLEN 16 /* length of an option 19 digest */ #define TCPOPT_AUTH 20 /* Enhanced AUTH option */ +#define TCPOPT_UTO 28 /* tcp user timeout (rfc5482) */ +#define TCPOLEN_UTO 4 #define TCPOPT_TSTAMP_HDR \ (TCPOPT_NOP<<24|TCPOPT_NOP<<16|TCPOPT_TIMESTAMP<<8|TCPOLEN_TIMESTAMP) ==== //depot/projects/avr32/src/contrib/tcsh/sh.c#3 (text+ko) ==== @@ -1291,6 +1291,8 @@ /* * Mop-up. */ + /* Take care of these (especially HUP) here instead of inside flush. */ + handle_pending_signals(); if (intty) { if (loginsh) { xprintf("logout\n"); ==== //depot/projects/avr32/src/crypto/openssh/ChangeLog#3 (text+ko) ==== @@ -1,3 +1,282 @@ +20090926 + - (djm) [contrib/caldera/openssh.spec contrib/redhat/openssh.spec] + [contrib/suse/openssh.spec] Update for release + - (djm) [README] update relnotes URL + - (djm) [packet.c] Restore EWOULDBLOCK handling that got lost somewhere + - (djm) Release 5.3p1 + +20090911 + - (dtucker) [configure.ac] Change the -lresolv check so it works on Mac OS X + 10.6 (which doesn't have BIND8_COMPAT and thus uses res_9_query). Patch + from jbasney at ncsa uiuc edu. + +20090908 + - (djm) [serverloop.c] Fix test for server-assigned remote forwarding port + (-R 0:...); bz#1578, spotted and fix by gavin AT emf.net; ok dtucker@ + +20090901 + - (dtucker) [configure.ac] Bug #1639: use AC_PATH_PROG to search the path for + krb5-config if it's not in the location specified by --with-kerberos5. + Patch from jchadima at redhat. + +20090829 + - (dtucker) [README.platform] Add text about development packages, based on + text from Chris Pepper in bug #1631. + +20090828 + - dtucker [auth-sia.c] Roll back the change for bug #1241 as it apparently + causes problems in some Tru64 configurations. + - (djm) [sshd_config.5] downgrade mention of login.conf to be an example + and mention PAM as another provider for ChallengeResponseAuthentication; + bz#1408; ok dtucker@ + - (djm) [sftp-server.c] bz#1535: accept ENOSYS as a fallback error when + attempting atomic rename(); ok dtucker@ + - (djm) [Makefile.in] bz#1505: Solaris make(1) doesn't accept make variables + in argv, so pass them in the environment; ok dtucker@ + - (dtucker) [channels.c configure.ac] Bug #1528: skip the tcgetattr call on + the pty master on Solaris, since it never succeeds and can hang if large + amounts of data is sent to the slave (eg a copy-paste). Based on a patch + originally from Doke Scott, ok djm@ + - (dtucker) [clientloop.c configure.ac defines.h] Make the client's IO buffer + size a compile-time option and set it to 64k on Cygwin, since Corinna + reports that it makes a significant difference to performance. ok djm@ + - (dtucker) [configure.ac] Fix the syntax of the Solaris tcgetattr entry. + +20090820 + - (dtucker) [includes.h] Bug #1634: do not include system glob.h if we're not + using it since the type conflicts can cause problems on FreeBSD. Patch + from Jonathan Chen. + - (dtucker) [session.c openbsd-compat/port-aix.h] Bugs #1249 and #1567: move + the setpcred call on AIX to immediately before the permanently_set_uid(). + Ensures that we still have privileges when we call chroot and + pam_open_sesson. Based on a patch from David Leonard. + +20090817 + - (dtucker) [configure.ac] Check for headers before libraries for openssl an + zlib, which should make the errors slightly more meaningful on platforms + where there's separate "-devel" packages for those. + - (dtucker) [sshlogin.c openbsd-compat/port-aix.{c,h}] Bug #1595: make + PrintLastLog work on AIX. Based in part on a patch from Miguel Sanders. + +20090729 + - (tim) [contrib/cygwin/ssh-user-config] Change script to call correct error + function. Patch from Corinna Vinschen. + +20090713 + - (dtucker) [openbsd-compat/getrrsetbyname.c] Reduce answer buffer size so it + fits into 16 bits to work around a bug in glibc's resolver where it masks + off the buffer size at 16 bits. Patch from Hauke Lampe, ok djm jakob. + +20090712 + - (dtucker) [configure.ac] Include sys/param.h for the sys/mount.h test, + prevents configure complaining on older BSDs. + - (dtucker [contrib/cygwin/ssh-{host,user}-config] Add license text. Patch + from Corinna Vinschen. + - (dtucker) [auth-pam.c] Bug #1534: move the deletion of PAM credentials on + logout to after the session close. Patch from Anicka Bernathova, + originally from Andreas Schwab via Novelll ok djm. + +20090707 + - (dtucker) [contrib/cygwin/ssh-host-config] better support for automated + scripts and fix usage of eval. Patch from Corinna Vinschen. + +20090705 + - (dtucker) OpenBSD CVS Sync + - andreas@cvs.openbsd.org 2009/06/27 09:29:06 + [packet.h packet.c] + packet_bacup_state() and packet_restore_state() will be used to + temporarily save the current state ren resuming a suspended connection. + ok markus@ + - andreas@cvs.openbsd.org 2009/06/27 09:32:43 + [roaming_common.c roaming.h] + It may be necessary to retransmit some data when resuming, so add it + to a buffer when roaming is enabled. + Most of this code was written by Martin Forssen, maf at appgate dot com. + ok markus@ + - andreas@cvs.openbsd.org 2009/06/27 09:35:06 + [readconf.h readconf.c] + Add client option UseRoaming. It doesn't do anything yet but will + control whether the client tries to use roaming if enabled on the + server. From Martin Forssen. + ok markus@ + - markus@cvs.openbsd.org 2009/06/30 14:54:40 + [version.h] + crank version; ok deraadt + - dtucker@cvs.openbsd.org 2009/07/02 02:11:47 + [ssh.c] + allow for long home dir paths (bz #1615). ok deraadt + (based in part on a patch from jchadima at redhat) + - stevesk@cvs.openbsd.org 2009/07/05 19:28:33 + [clientloop.c] + only send SSH2_MSG_DISCONNECT if we're in compat20; from dtucker@ + ok deraadt@ markus@ + +20090622 + - (dtucker) OpenBSD CVS Sync >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Sun Oct 18 21:28:00 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 26D9F1065676; Sun, 18 Oct 2009 21:28:00 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DC1731065670 for ; Sun, 18 Oct 2009 21:27:59 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id C99B88FC13 for ; Sun, 18 Oct 2009 21:27:59 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n9ILRxnA052588 for ; Sun, 18 Oct 2009 21:27:59 GMT (envelope-from trasz@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n9ILRx9t052586 for perforce@freebsd.org; Sun, 18 Oct 2009 21:27:59 GMT (envelope-from trasz@freebsd.org) Date: Sun, 18 Oct 2009 21:27:59 GMT Message-Id: <200910182127.n9ILRx9t052586@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to trasz@freebsd.org using -f From: Edward Tomasz Napierala To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 169588 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 18 Oct 2009 21:28:00 -0000 http://p4web.freebsd.org/chv.cgi?CH=169588 Change 169588 by trasz@trasz_victim on 2009/10/18 21:27:31 Make 'hrl -u' work again. Affected files ... .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_hrl.c#71 edit Differences ... ==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_hrl.c#71 (text+ko) ==== @@ -1410,10 +1410,13 @@ if (error) return (error); + sx_slock(&allproc_lock); filter = hrl_rule_from_string(inputstr); free(inputstr, M_HRL); - if (filter == NULL) + if (filter == NULL) { + sx_sunlock(&allproc_lock); return (EINVAL); + } switch (filter->hr_subject_type) { case HRL_SUBJECT_TYPE_PROCESS: @@ -1461,6 +1464,7 @@ } out: hrl_rule_release(filter); + sx_sunlock(&allproc_lock); if (error) return (error); From owner-p4-projects@FreeBSD.ORG Mon Oct 19 06:46:17 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 554F41065692; Mon, 19 Oct 2009 06:46:17 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id EB657106566B for ; Mon, 19 Oct 2009 06:46:16 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id D7D0B8FC08 for ; Mon, 19 Oct 2009 06:46:16 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n9J6kGfL015103 for ; Mon, 19 Oct 2009 06:46:16 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n9J6kGTS015101 for perforce@freebsd.org; Mon, 19 Oct 2009 06:46:16 GMT (envelope-from pgj@FreeBSD.org) Date: Mon, 19 Oct 2009 06:46:16 GMT Message-Id: <200910190646.n9J6kGTS015101@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 169590 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 19 Oct 2009 06:46:17 -0000 http://p4web.freebsd.org/chv.cgi?CH=169590 Change 169590 by pgj@beehive on 2009/10/19 06:45:58 IFC Affected files ... .. //depot/projects/docproj_hu/src/release/doc/en_US.ISO8859-1/errata/article.sgml#2 integrate .. //depot/projects/docproj_hu/src/release/doc/share/mk/doc.relnotes.mk#2 integrate .. //depot/projects/docproj_hu/src/release/doc/share/sgml/release.dsl#2 integrate .. //depot/projects/docproj_hu/src/release/doc/share/sgml/release.ent#3 integrate .. //depot/projects/docproj_hu/www/en/administration.sgml#9 integrate .. //depot/projects/docproj_hu/www/hu/platforms/ppc.sgml#14 integrate Differences ... ==== //depot/projects/docproj_hu/src/release/doc/en_US.ISO8859-1/errata/article.sgml#2 (text+ko) ==== @@ -16,7 +16,6 @@ %release; - ]>
@@ -37,7 +36,7 @@ The &os; Project - $FreeBSD: src/release/doc/en_US.ISO8859-1/errata/article.sgml,v 1.73 2005/04/19 09:42:25 hrs Exp $ + $FreeBSD: src/release/doc/en_US.ISO8859-1/errata/article.sgml,v 1.74 2009/10/15 07:58:01 hrs Exp $ 2000 ==== //depot/projects/docproj_hu/src/release/doc/share/mk/doc.relnotes.mk#2 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/release/doc/share/mk/doc.relnotes.mk,v 1.14 2007/02/16 02:10:12 bmah Exp $ +# $FreeBSD: src/release/doc/share/mk/doc.relnotes.mk,v 1.15 2009/10/15 07:58:01 hrs Exp $ DOC_PREFIX?= ${RELN_ROOT}/../../../doc @@ -11,23 +11,6 @@ DSLPRINT?= ${RELN_ROOT}/share/sgml/default.dsl # -# Tweakable Makefile variables -# -# INCLUDE_HISTORIC Used by relnotes document only. When set, -# causes all release notes entries to be printed, -# even those marked as "historic". If not set -# (the default), only print "non-historic" -# release note entries. To designate a release -# note entry as "historic", add a role="historic" -# attribute to the applicable element(s). -# -.if defined(INCLUDE_HISTORIC) -JADEFLAGS+= -iinclude.historic -.else -JADEFLAGS+= -ino.include.historic -.endif - -# # Automatic device list generation: # .if exists(${RELN_ROOT}/../man4) ==== //depot/projects/docproj_hu/src/release/doc/share/sgml/release.dsl#2 (text+ko) ==== @@ -1,10 +1,8 @@ - + - - %release.ent; @@ -14,14 +12,6 @@ -; Configure behavior of this stylesheet - - - ; String manipulation functions (define (split-string-to-list STR) ;; return list of STR separated with char #\ or #\, @@ -54,36 +44,6 @@ ((equal? STR (car s)) #t) (else (loop (cdr s)))))) -; Deal with conditional inclusion of text via entities. -(default - (let* ((role (attribute-string (normalize "role"))) - (for-arch (entity-text "arch"))) - (cond - - ;; If role=historic, and we're not printing historic things, then - ;; don't output this element. - ((and (equal? role "historic") - (not %include-historic%)) - (empty-sosofo)) - - ;; None of the above - (else (next-match))))) - -(mode qandatoc - (default - (let* ((role (attribute-string (normalize "role"))) - (for-arch (entity-text "arch"))) - (cond - - ;; If role=historic, and we're not printing historic things, then - ;; don't output this element. - ((and (equal? role "historic") - (not %include-historic%)) - (empty-sosofo)) - - ;; None of the above - (else (next-match)))))) - ; We might have some sect1 level elements where the modification times ; are significant. An example of this is the "What's New" section in ; the release notes. We enable the printing of pubdate entry in @@ -198,7 +158,6 @@ (u (string-append "&release.man.url;?query=" (data r) "&" "sektion=" (data m)))) (case v - (("xfree86") (string-append u "&" "manpath=XFree86+&release.manpath.xfree86;" )) (("xorg") (string-append u "&" "manpath=Xorg+&release.manpath.xorg;" )) (("netbsd") (string-append u "&" "manpath=NetBSD+&release.manpath.netbsd;")) (("ports") (string-append u "&" "manpath=FreeBSD+&release.manpath.freebsd-ports;")) ==== //depot/projects/docproj_hu/src/release/doc/share/sgml/release.ent#3 (text+ko) ==== @@ -1,28 +1,28 @@ - + - + - + - + - + @@ -36,11 +36,10 @@ - - - + + - + ==== //depot/projects/docproj_hu/www/en/administration.sgml#9 (text+ko) ==== @@ -1,5 +1,5 @@ + %developers; @@ -26,8 +26,6 @@
  • Release Engineering

    FreeBSD Port Management Team @@ -151,7 +149,7 @@

    The Primary Release Engineering Team is responsible for setting and publishing release schedules for official project releases of FreeBSD, - announcing code freezes and maintaining RELENG_* branches, among other + announcing code freezes and maintaining RELENG_* branches, among other things. The release engineering team charter describes the duties and responsibilities of the Primary Release @@ -166,23 +164,11 @@

  • &a.hrs; <hrs@FreeBSD.org>
  • &a.kensmith; <kensmith@FreeBSD.org> (Lead)
  • -
  • &a.murray; <murray@FreeBSD.org>
  • &a.rwatson; <rwatson@FreeBSD.org>
  • &a.dwhite; <dwhite@FreeBSD.org>
  • &a.bz; <bz@FreeBSD.org>
  • -

    FreeBSD/alpha Release Engineering Team - <re-alpha@FreeBSD.org>

    - -

    The FreeBSD/alpha Release Engineering Team is responsible for specific - release issues related to the FreeBSD/alpha platform.

    - - -

    FreeBSD/amd64 Release Engineering Team <re-amd64@FreeBSD.org>

    @@ -210,7 +196,6 @@ release issues related to the FreeBSD/i386 platform.

    @@ -247,7 +232,6 @@
  • &a.tmm; <tmm@FreeBSD.org>
  • &a.obrien; <obrien@FreeBSD.org>
  • &a.kensmith; <kensmith@FreeBSD.org>
  • -
  • &a.murray; <murray@FreeBSD.org>
  • &a.rwatson; <rwatson@FreeBSD.org>
  • ==== //depot/projects/docproj_hu/www/hu/platforms/ppc.sgml#14 (text+ko) ==== @@ -1,6 +1,6 @@ - + From owner-p4-projects@FreeBSD.ORG Mon Oct 19 07:41:12 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4F29C1065676; Mon, 19 Oct 2009 07:41:12 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id EF7B9106566B for ; Mon, 19 Oct 2009 07:41:11 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id DD7948FC12 for ; Mon, 19 Oct 2009 07:41:11 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n9J7fBU7019395 for ; Mon, 19 Oct 2009 07:41:11 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n9J7fBTt019393 for perforce@freebsd.org; Mon, 19 Oct 2009 07:41:11 GMT (envelope-from pgj@FreeBSD.org) Date: Mon, 19 Oct 2009 07:41:11 GMT Message-Id: <200910190741.n9J7fBTt019393@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 169591 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 19 Oct 2009 07:41:12 -0000 http://p4web.freebsd.org/chv.cgi?CH=169591 Change 169591 by pgj@beehive on 2009/10/19 07:40:55 MFen (www): 1.26 -> 1.30 hu/administration.sgml Affected files ... .. //depot/projects/docproj_hu/www/hu/administration.sgml#22 edit Differences ... ==== //depot/projects/docproj_hu/www/hu/administration.sgml#22 (text+ko) ==== @@ -9,7 +9,7 @@ @@ -42,10 +42,6 @@
  • &os;/alpha Release Engineering Team -
  • - -
  • &os;/amd64 Release Engineering Team
  • @@ -194,7 +190,7 @@
  • &a.nik; <nik@FreeBSD.org>
  • &a.blackend; <blackend@FreeBSD.org>
  • &a.hrs; <hrs@FreeBSD.org>
  • -
  • &a.murray; <murray@FreeBSD.org>
  • +
  • &a.keramida; <keramida@FreeBSD.org>
  • &os; Port Management Team @@ -232,7 +228,7 @@ kiadásainak idõbeosztását határozza meg és hirdeti ki. Több más tennivaló mellett bejelenti a kód befagyasztását - és karbantartja a RELENG_* ágakat. A RELENG_* ágakat. A releng szabadalomlevele részletesen ismerteti az Elsõdleges Release Engineering Team feladatait és kötelezettségeit.

    @@ -246,24 +242,11 @@
  • &a.hrs; <hrs@FreeBSD.org>
  • &a.kensmith; <kensmith@FreeBSD.org> (Vezetõ)
  • -
  • &a.murray; <murray@FreeBSD.org>
  • &a.rwatson; <rwatson@FreeBSD.org>
  • &a.dwhite; <dwhite@FreeBSD.org>
  • &a.bz; <bz@FreeBSD.org>
  • -

    &os;/alpha Release Engineering Team - <re-alpha@FreeBSD.org>

    - -

    A &os;/alpha Release Engineering Team a &os;/alpha platform - egyéni kiadási problémáiért - felelõs.

    - - -

    &os;/amd64 Release Engineering Team <re-amd64@FreeBSD.org>

    @@ -294,7 +277,6 @@ felelõs.

    @@ -334,7 +316,6 @@
  • &a.tmm; <tmm@FreeBSD.org>
  • &a.obrien; <obrien@FreeBSD.org>
  • &a.kensmith; <kensmith@FreeBSD.org>
  • -
  • &a.murray; <murray@FreeBSD.org>
  • &a.rwatson; <rwatson@FreeBSD.org>
  • From owner-p4-projects@FreeBSD.ORG Mon Oct 19 14:27:59 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 3EAFA1065692; Mon, 19 Oct 2009 14:27:59 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id EB0B7106568B for ; Mon, 19 Oct 2009 14:27:58 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id D6F6D8FC1F for ; Mon, 19 Oct 2009 14:27:58 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n9JERwn0070906 for ; Mon, 19 Oct 2009 14:27:58 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n9JERvXh070903 for perforce@freebsd.org; Mon, 19 Oct 2009 14:27:57 GMT (envelope-from jhb@freebsd.org) Date: Mon, 19 Oct 2009 14:27:57 GMT Message-Id: <200910191427.n9JERvXh070903@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 169593 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 19 Oct 2009 14:27:59 -0000 http://p4web.freebsd.org/chv.cgi?CH=169593 Change 169593 by jhb@jhb_jhbbsd on 2009/10/19 14:27:26 IFC @169589 Affected files ... .. //depot/projects/smpng/share/man/man9/BUS_BIND_INTR.9#1 branch .. //depot/projects/smpng/share/man/man9/BUS_DESCRIBE_INTR.9#1 branch .. //depot/projects/smpng/share/man/man9/Makefile#11 integrate .. //depot/projects/smpng/share/man/man9/fetch.9#2 integrate .. //depot/projects/smpng/share/man/man9/store.9#2 integrate .. //depot/projects/smpng/sys/amd64/acpica/acpi_machdep.c#15 integrate .. //depot/projects/smpng/sys/amd64/acpica/acpi_wakecode.S#4 integrate .. //depot/projects/smpng/sys/amd64/acpica/acpi_wakeup.c#9 integrate .. //depot/projects/smpng/sys/amd64/amd64/elf_machdep.c#19 integrate .. //depot/projects/smpng/sys/amd64/amd64/intr_machdep.c#37 integrate .. //depot/projects/smpng/sys/amd64/amd64/nexus.c#30 integrate .. //depot/projects/smpng/sys/amd64/conf/GENERIC#85 integrate .. //depot/projects/smpng/sys/amd64/include/atomic.h#33 integrate .. //depot/projects/smpng/sys/amd64/include/elf.h#8 integrate .. //depot/projects/smpng/sys/amd64/include/intr_machdep.h#22 integrate .. //depot/projects/smpng/sys/arm/arm/cpufunc.c#20 integrate .. //depot/projects/smpng/sys/arm/arm/elf_machdep.c#14 integrate .. //depot/projects/smpng/sys/arm/arm/pmap.c#54 integrate .. //depot/projects/smpng/sys/arm/conf/HL200#10 integrate .. //depot/projects/smpng/sys/arm/conf/KB920X#17 integrate .. //depot/projects/smpng/sys/arm/include/elf.h#9 integrate .. //depot/projects/smpng/sys/arm/xscale/i80321/i80321_timer.c#13 integrate .. //depot/projects/smpng/sys/arm/xscale/xscalereg.h#3 delete .. //depot/projects/smpng/sys/arm/xscale/xscalevar.h#3 delete .. //depot/projects/smpng/sys/boot/i386/zfsboot/zfsboot.c#4 integrate .. //depot/projects/smpng/sys/cam/ata/ata_da.c#4 integrate .. //depot/projects/smpng/sys/cddl/compat/opensolaris/kern/opensolaris_policy.c#6 integrate .. //depot/projects/smpng/sys/cddl/compat/opensolaris/sys/policy.h#4 integrate .. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c#9 integrate .. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c#5 integrate .. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c#17 integrate .. //depot/projects/smpng/sys/compat/ia32/ia32_sysvec.c#26 integrate .. //depot/projects/smpng/sys/conf/files#254 integrate .. //depot/projects/smpng/sys/conf/files.amd64#70 integrate .. //depot/projects/smpng/sys/conf/files.i386#129 integrate .. //depot/projects/smpng/sys/dev/agp/agp_i810.c#10 integrate .. //depot/projects/smpng/sys/dev/ahci/ahci.c#3 integrate .. //depot/projects/smpng/sys/dev/ata/chipsets/ata-ati.c#4 integrate .. //depot/projects/smpng/sys/dev/ath/ath_hal/ah_eeprom_v4k.c#1 branch .. //depot/projects/smpng/sys/dev/ath/ath_hal/ah_eeprom_v4k.h#1 branch .. //depot/projects/smpng/sys/dev/bge/if_bge.c#110 integrate .. //depot/projects/smpng/sys/dev/bge/if_bgereg.h#61 integrate .. //depot/projects/smpng/sys/dev/cxgb/common/cxgb_ael1002.c#12 integrate .. //depot/projects/smpng/sys/dev/cxgb/common/cxgb_aq100x.c#1 branch .. //depot/projects/smpng/sys/dev/cxgb/common/cxgb_common.h#11 integrate .. //depot/projects/smpng/sys/dev/cxgb/common/cxgb_mv88e1xxx.c#6 integrate .. //depot/projects/smpng/sys/dev/cxgb/common/cxgb_regs.h#4 integrate .. //depot/projects/smpng/sys/dev/cxgb/common/cxgb_t3_hw.c#13 integrate .. //depot/projects/smpng/sys/dev/cxgb/common/cxgb_tn1010.c#3 integrate .. //depot/projects/smpng/sys/dev/cxgb/common/cxgb_vsc8211.c#6 integrate .. //depot/projects/smpng/sys/dev/cxgb/common/cxgb_xgmac.c#9 integrate .. //depot/projects/smpng/sys/dev/cxgb/cxgb_adapter.h#17 integrate .. //depot/projects/smpng/sys/dev/cxgb/cxgb_main.c#26 integrate .. //depot/projects/smpng/sys/dev/cxgb/cxgb_osdep.h#12 integrate .. //depot/projects/smpng/sys/dev/cxgb/cxgb_t3fw.h#3 integrate .. //depot/projects/smpng/sys/dev/drm/drm_pciids.h#17 integrate .. //depot/projects/smpng/sys/dev/drm/i915_drv.h#12 integrate .. //depot/projects/smpng/sys/dev/fdc/fdc.c#34 integrate .. //depot/projects/smpng/sys/dev/gem/if_gem_pci.c#26 integrate .. //depot/projects/smpng/sys/dev/hwpmc/hwpmc_mod.c#31 integrate .. //depot/projects/smpng/sys/dev/pci/pci.c#114 integrate .. //depot/projects/smpng/sys/dev/ppbus/lpt.c#26 integrate .. //depot/projects/smpng/sys/dev/siis/siis.c#3 integrate .. //depot/projects/smpng/sys/dev/uart/uart_bus.h#12 integrate .. //depot/projects/smpng/sys/dev/uart/uart_core.c#20 integrate .. //depot/projects/smpng/sys/dev/uart/uart_tty.c#25 integrate .. //depot/projects/smpng/sys/dev/usb/controller/ehci.c#15 integrate .. //depot/projects/smpng/sys/dev/usb/controller/ehci.h#8 integrate .. //depot/projects/smpng/sys/dev/usb/controller/ehci_ixp4xx.c#7 integrate .. //depot/projects/smpng/sys/dev/usb/controller/ehci_mbus.c#6 integrate .. //depot/projects/smpng/sys/dev/usb/controller/ehci_pci.c#9 integrate .. //depot/projects/smpng/sys/dev/usb/controller/ehcireg.h#1 branch .. //depot/projects/smpng/sys/dev/usb/controller/ohci.c#12 integrate .. //depot/projects/smpng/sys/dev/usb/controller/ohci.h#7 integrate .. //depot/projects/smpng/sys/dev/usb/controller/ohci_atmelarm.c#6 integrate .. //depot/projects/smpng/sys/dev/usb/controller/ohci_pci.c#8 integrate .. //depot/projects/smpng/sys/dev/usb/controller/ohcireg.h#1 branch .. //depot/projects/smpng/sys/dev/usb/controller/uhci.c#12 integrate .. //depot/projects/smpng/sys/dev/usb/controller/uhci.h#7 integrate .. //depot/projects/smpng/sys/dev/usb/controller/uhci_pci.c#8 integrate .. //depot/projects/smpng/sys/dev/usb/controller/uhcireg.h#1 branch .. //depot/projects/smpng/sys/dev/usb/input/ukbd.c#12 integrate .. //depot/projects/smpng/sys/dev/usb/net/if_cdce.c#13 integrate .. //depot/projects/smpng/sys/dev/usb/usbdevs#146 integrate .. //depot/projects/smpng/sys/dev/usb/wlan/if_rum.c#11 integrate .. //depot/projects/smpng/sys/dev/usb/wlan/if_uath.c#10 integrate .. //depot/projects/smpng/sys/dev/usb/wlan/if_upgt.c#10 integrate .. //depot/projects/smpng/sys/dev/usb/wlan/if_ural.c#10 integrate .. //depot/projects/smpng/sys/dev/usb/wlan/if_urtw.c#7 integrate .. //depot/projects/smpng/sys/dev/usb/wlan/if_urtwreg.h#2 integrate .. //depot/projects/smpng/sys/dev/usb/wlan/if_urtwvar.h#3 integrate .. //depot/projects/smpng/sys/dev/usb/wlan/if_zyd.c#13 integrate .. //depot/projects/smpng/sys/fs/tmpfs/tmpfs.h#7 integrate .. //depot/projects/smpng/sys/fs/tmpfs/tmpfs_subr.c#11 integrate .. //depot/projects/smpng/sys/fs/tmpfs/tmpfs_vnops.c#14 integrate .. //depot/projects/smpng/sys/geom/concat/g_concat.c#19 integrate .. //depot/projects/smpng/sys/geom/label/g_label.c#17 integrate .. //depot/projects/smpng/sys/geom/part/g_part.c#23 integrate .. //depot/projects/smpng/sys/geom/part/g_part_gpt.c#12 integrate .. //depot/projects/smpng/sys/geom/shsec/g_shsec.c#6 integrate .. //depot/projects/smpng/sys/geom/stripe/g_stripe.c#21 integrate .. //depot/projects/smpng/sys/geom/uzip/g_uzip.c#11 integrate .. //depot/projects/smpng/sys/geom/vinum/geom_vinum_create.c#3 integrate .. //depot/projects/smpng/sys/geom/vinum/geom_vinum_events.c#3 integrate .. //depot/projects/smpng/sys/geom/vinum/geom_vinum_init.c#14 integrate .. //depot/projects/smpng/sys/geom/vinum/geom_vinum_move.c#5 integrate .. //depot/projects/smpng/sys/geom/vinum/geom_vinum_rm.c#17 integrate .. //depot/projects/smpng/sys/geom/vinum/geom_vinum_subr.c#18 integrate .. //depot/projects/smpng/sys/i386/conf/GENERIC#116 integrate .. //depot/projects/smpng/sys/i386/i386/elf_machdep.c#22 integrate .. //depot/projects/smpng/sys/i386/i386/intr_machdep.c#38 integrate .. //depot/projects/smpng/sys/i386/i386/nexus.c#31 integrate .. //depot/projects/smpng/sys/i386/i386/vm_machdep.c#93 integrate .. //depot/projects/smpng/sys/i386/include/atomic.h#52 integrate .. //depot/projects/smpng/sys/i386/include/cpufunc.h#43 integrate .. //depot/projects/smpng/sys/i386/include/elf.h#11 integrate .. //depot/projects/smpng/sys/i386/include/intr_machdep.h#24 integrate .. //depot/projects/smpng/sys/i386/xen/xen_machdep.c#10 integrate .. //depot/projects/smpng/sys/ia64/ia64/elf_machdep.c#28 integrate .. //depot/projects/smpng/sys/ia64/include/elf.h#15 integrate .. //depot/projects/smpng/sys/kern/bus_if.m#18 integrate .. //depot/projects/smpng/sys/kern/imgact_elf.c#69 integrate .. //depot/projects/smpng/sys/kern/init_main.c#83 integrate .. //depot/projects/smpng/sys/kern/kern_event.c#61 integrate .. //depot/projects/smpng/sys/kern/kern_exec.c#125 integrate .. //depot/projects/smpng/sys/kern/kern_exit.c#146 integrate .. //depot/projects/smpng/sys/kern/kern_intr.c#101 integrate .. //depot/projects/smpng/sys/kern/kern_lock.c#80 integrate .. //depot/projects/smpng/sys/kern/kern_proc.c#109 integrate .. //depot/projects/smpng/sys/kern/kern_sig.c#152 integrate .. //depot/projects/smpng/sys/kern/kern_thr.c#53 integrate .. //depot/projects/smpng/sys/kern/sched_ule.c#97 integrate .. //depot/projects/smpng/sys/kern/subr_bus.c#86 integrate .. //depot/projects/smpng/sys/kern/subr_trap.c#93 integrate .. //depot/projects/smpng/sys/kern/tty.c#99 integrate .. //depot/projects/smpng/sys/kern/tty_ttydisc.c#9 integrate .. //depot/projects/smpng/sys/kern/uipc_socket.c#134 integrate .. //depot/projects/smpng/sys/kern/uipc_usrreq.c#92 integrate .. //depot/projects/smpng/sys/kern/vfs_acl.c#10 integrate .. //depot/projects/smpng/sys/mips/include/elf.h#4 integrate .. //depot/projects/smpng/sys/mips/mips/elf64_machdep.c#4 integrate .. //depot/projects/smpng/sys/mips/mips/elf_machdep.c#8 integrate .. //depot/projects/smpng/sys/modules/acpi/acpi/Makefile#20 integrate .. //depot/projects/smpng/sys/modules/cxgb/cxgb/Makefile#9 integrate .. //depot/projects/smpng/sys/modules/nfsclient/Makefile#17 integrate .. //depot/projects/smpng/sys/modules/nfslockd/Makefile#5 integrate .. //depot/projects/smpng/sys/modules/pf/Makefile#17 integrate .. //depot/projects/smpng/sys/modules/ubser/Makefile#4 integrate .. //depot/projects/smpng/sys/net/flowtable.c#9 integrate .. //depot/projects/smpng/sys/net/flowtable.h#8 integrate .. //depot/projects/smpng/sys/net/if_bridge.c#63 integrate .. //depot/projects/smpng/sys/net/if_enc.c#15 integrate .. //depot/projects/smpng/sys/net/if_ethersubr.c#103 integrate .. //depot/projects/smpng/sys/net/pfil.c#13 integrate .. //depot/projects/smpng/sys/net/pfil.h#13 integrate .. //depot/projects/smpng/sys/net/route.c#53 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_hwmp.c#4 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_mesh.c#4 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_mesh.h#4 integrate .. //depot/projects/smpng/sys/netgraph/ng_bridge.c#23 integrate .. //depot/projects/smpng/sys/netinet/if_ether.c#78 integrate .. //depot/projects/smpng/sys/netinet/in.c#63 integrate .. //depot/projects/smpng/sys/netinet/ip_fastfwd.c#40 integrate .. //depot/projects/smpng/sys/netinet/ip_icmp.c#55 integrate .. //depot/projects/smpng/sys/netinet/ip_input.c#107 integrate .. //depot/projects/smpng/sys/netinet/ip_output.c#116 integrate .. //depot/projects/smpng/sys/netinet/ip_var.h#45 integrate .. //depot/projects/smpng/sys/netinet/ipfw/ip_fw2.c#8 integrate .. //depot/projects/smpng/sys/netinet/ipfw/ip_fw_pfil.c#6 integrate .. //depot/projects/smpng/sys/netinet/raw_ip.c#88 integrate .. //depot/projects/smpng/sys/netinet/sctp_bsd_addr.c#15 integrate .. //depot/projects/smpng/sys/netinet/sctp_os_bsd.h#28 integrate .. //depot/projects/smpng/sys/netinet/sctp_output.c#33 integrate .. //depot/projects/smpng/sys/netinet/sctp_pcb.c#32 integrate .. //depot/projects/smpng/sys/netinet/tcp_input.c#132 integrate .. //depot/projects/smpng/sys/netinet6/icmp6.c#62 integrate .. //depot/projects/smpng/sys/netinet6/in6_ifattach.c#44 integrate .. //depot/projects/smpng/sys/netinet6/ip6_forward.c#30 integrate .. //depot/projects/smpng/sys/netinet6/ip6_input.c#72 integrate .. //depot/projects/smpng/sys/netinet6/ip6_output.c#70 integrate .. //depot/projects/smpng/sys/netinet6/ip6_var.h#32 integrate .. //depot/projects/smpng/sys/nfsclient/nfs_kdtrace.c#3 integrate .. //depot/projects/smpng/sys/nfsclient/nfs_vnops.c#95 integrate .. //depot/projects/smpng/sys/nlm/nlm.h#5 integrate .. //depot/projects/smpng/sys/nlm/nlm_prot_impl.c#8 integrate .. //depot/projects/smpng/sys/nlm/nlm_prot_server.c#4 integrate .. //depot/projects/smpng/sys/pc98/conf/GENERIC#88 integrate .. //depot/projects/smpng/sys/powerpc/aim/platform_chrp.c#3 integrate .. //depot/projects/smpng/sys/powerpc/aim/swtch.S#7 integrate .. //depot/projects/smpng/sys/powerpc/aim/trap_subr.S#9 integrate .. //depot/projects/smpng/sys/powerpc/include/elf.h#10 integrate .. //depot/projects/smpng/sys/powerpc/powerpc/elf_machdep.c#20 integrate .. //depot/projects/smpng/sys/sparc64/conf/GENERIC#100 integrate .. //depot/projects/smpng/sys/sparc64/include/elf.h#15 integrate .. //depot/projects/smpng/sys/sparc64/sparc64/elf_machdep.c#26 integrate .. //depot/projects/smpng/sys/sun4v/include/elf.h#5 integrate .. //depot/projects/smpng/sys/sys/bus.h#39 integrate .. //depot/projects/smpng/sys/sys/errno.h#12 integrate .. //depot/projects/smpng/sys/sys/interrupt.h#29 integrate .. //depot/projects/smpng/sys/sys/pmc.h#17 integrate .. //depot/projects/smpng/sys/sys/signalvar.h#33 integrate .. //depot/projects/smpng/sys/teken/sequences#3 integrate .. //depot/projects/smpng/sys/teken/teken.c#3 integrate .. //depot/projects/smpng/sys/teken/teken_subr.h#3 integrate .. //depot/projects/smpng/sys/vm/swap_pager.c#82 integrate .. //depot/projects/smpng/sys/vm/vm_mmap.c#82 integrate .. //depot/projects/smpng/sys/vm/vm_page.c#108 integrate .. //depot/projects/smpng/sys/vm/vm_page.h#47 integrate Differences ... ==== //depot/projects/smpng/share/man/man9/Makefile#11 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/share/man/man9/Makefile,v 1.360 2009/09/22 15:15:03 trasz Exp $ +# $FreeBSD: src/share/man/man9/Makefile,v 1.363 2009/10/15 14:54:35 jhb Exp $ MAN= accept_filter.9 \ accf_data.9 \ @@ -23,8 +23,10 @@ bus_activate_resource.9 \ BUS_ADD_CHILD.9 \ bus_alloc_resource.9 \ + BUS_BIND_INTR.9 \ bus_child_present.9 \ BUS_CONFIG_INTR.9 \ + BUS_DESCRIBE_INTR.9 \ bus_dma.9 \ bus_generic_attach.9 \ bus_generic_detach.9 \ @@ -403,6 +405,8 @@ MLINKS+=buf.9 bp.9 MLINKS+=bus_activate_resource.9 bus_deactivate_resource.9 MLINKS+=bus_alloc_resource.9 bus_alloc_resource_any.9 +MLINKS+=BUS_BIND_INTR.9 bus_bind_intr.9 +MLINKS+=BUS_DESCRIBE_INTR.9 bus_describe_intr.9 MLINKS+=bus_dma.9 busdma.9 \ bus_dma.9 bus_dmamap_create.9 \ bus_dma.9 bus_dmamap_destroy.9 \ @@ -606,8 +610,10 @@ EVENTHANDLER.9 eventhandler_register.9 MLINKS+=fetch.9 fubyte.9 \ fetch.9 fuswintr.9 \ - fetch.9 fusword.9 \ - fetch.9 fuword.9 + fetch.9 fuword.9 \ + fetch.9 fuword16.9 \ + fetch.9 fuword32.9 \ + fetch.9 fuword64.9 MLINKS+=g_attach.9 g_detach.9 MLINKS+=g_bio.9 g_clone_bio.9 \ g_bio.9 g_destroy_bio.9 \ @@ -1142,8 +1148,10 @@ stack.9 stack_zero.9 MLINKS+=store.9 subyte.9 \ store.9 suswintr.9 \ - store.9 susword.9 \ - store.9 suword.9 + store.9 suword.9 \ + store.9 suword16.9 \ + store.9 suword32.9 \ + store.9 suword64.9 MLINKS+=swi.9 swi_add.9 \ swi.9 swi_sched.9 MLINKS+=sx.9 sx_assert.9 \ ==== //depot/projects/smpng/share/man/man9/fetch.9#2 (text+ko) ==== @@ -32,31 +32,37 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man9/fetch.9,v 1.10 2001/10/01 16:09:24 ru Exp $ +.\" $FreeBSD: src/share/man/man9/fetch.9,v 1.11 2009/10/05 15:16:28 trasz Exp $ .\" -.Dd January 7, 1996 +.Dd October 5, 2009 .Dt FETCH 9 .Os .Sh NAME .Nm fetch , .Nm fubyte , -.Nm fusword , .Nm fuswintr , -.Nm fuword +.Nm fuword , +.Nm fuword16 , +.Nm fuword32 , +.Nm fuword64 .Nd fetch data from user-space .Sh SYNOPSIS .In sys/types.h .In sys/time.h .In sys/systm.h -.In sys/resourcevar.h .Ft int .Fn fubyte "const void *base" +.Ft long +.Fn fuword "const void *base" .Ft int -.Fn fusword "void *base" +.Fn fuword16 "void *base" +.Ft int32_t +.Fn fuword32 "const void *base" +.Ft int64_t +.Fn fuword64 "const void *base" +.In sys/resourcevar.h .Ft int .Fn fuswintr "void *base" -.Ft long -.Fn fuword "const void *base" .Sh DESCRIPTION The .Nm @@ -69,16 +75,22 @@ .It Fn fubyte Fetches a byte of data from the user-space address .Pa base . -.It Fn fusword -Fetches a short word of data from the user-space address +.It Fn fuword +Fetches a word of data from the user-space address +.Pa base . +.It Fn fuword16 +Fetches 16 bits of data from the user-space address +.Pa base . +.It Fn fuword32 +Fetches 32 bits of data from the user-space address +.Pa base . +.It Fn fuword64 +Fetches 64 bits of data from the user-space address .Pa base . .It Fn fuswintr Fetches a short word of data from the user-space address .Pa base . This function is safe to call during an interrupt context. -.It Fn fuword -Fetches a word of data from the user-space address -.Pa base . .El .Sh RETURN VALUES The ==== //depot/projects/smpng/share/man/man9/store.9#2 (text+ko) ==== @@ -32,15 +32,14 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man9/store.9,v 1.11 2001/10/01 16:09:25 ru Exp $ +.\" $FreeBSD: src/share/man/man9/store.9,v 1.12 2009/10/05 15:16:28 trasz Exp $ .\" -.Dd January 7, 1996 +.Dd October 5, 2009 .Dt STORE 9 .Os .Sh NAME .Nm store , .Nm subyte , -.Nm susword , .Nm suswintr , .Nm suword .Nd store data to user-space @@ -48,15 +47,19 @@ .In sys/types.h .In sys/time.h .In sys/systm.h -.In sys/resourcevar.h .Ft int .Fn subyte "void *base" "int byte" .Ft int -.Fn susword "void *base" "int word" +.Fn suword "void *base" "long word" +.Ft int +.Fn suword16 "void *base" "int word" +.Ft int +.Fn suword32 "void *base" "int32_t word" +.Ft int +.Fn suword64 "void *base" "int64_t word" +.In sys/resourcevar.h .Ft int .Fn suswintr "void *base" "int word" -.Ft int -.Fn suword "void *base" "long word" .Sh DESCRIPTION The .Nm @@ -69,16 +72,22 @@ .It Fn subyte Stores a byte of data to the user-space address .Pa base . -.It Fn susword -Stores a short word of data to the user-space address +.It Fn suword +Stores a word of data to the user-space address +.Pa base . +.It Fn suword16 +Stores 16 bits of of data to the user-space address +.Pa base . +.It Fn suword32 +Stores 32 bits of of data to the user-space address +.Pa base . +.It Fn suword64 +Stores 64 bits of of data to the user-space address .Pa base . .It Fn suswintr Stores a short word of data to the user-space address .Pa base . This function is safe to call during an interrupt context. -.It Fn suword -Stores a word of data to the user-space address -.Pa base . .El .Sh RETURN VALUES The ==== //depot/projects/smpng/sys/amd64/acpica/acpi_machdep.c#15 (text+ko) ==== @@ -25,13 +25,14 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/acpica/acpi_machdep.c,v 1.23 2009/09/27 14:00:16 jkim Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/acpica/acpi_machdep.c,v 1.24 2009/10/08 17:41:53 jkim Exp $"); #include #include #include #include #include + #include #include @@ -511,7 +512,6 @@ sc->acpi_clone = apm_create_clone(sc->acpi_dev_t, sc); clone_setup(&apm_clones); EVENTHANDLER_REGISTER(dev_clone, apm_clone, 0, 1000); - acpi_install_wakeup_handler(sc); if (intr_model != ACPI_INTR_PIC) acpi_SetIntrModel(intr_model); @@ -801,13 +801,20 @@ static int nexus_acpi_attach(device_t dev) { + device_t acpi_dev; + int error; nexus_init_resources(); bus_generic_probe(dev); - if (BUS_ADD_CHILD(dev, 10, "acpi", 0) == NULL) + acpi_dev = BUS_ADD_CHILD(dev, 10, "acpi", 0); + if (acpi_dev == NULL) panic("failed to add acpi0 device"); - return (bus_generic_attach(dev)); + error = bus_generic_attach(dev); + if (error == 0) + acpi_install_wakeup_handler(device_get_softc(acpi_dev)); + + return (error); } static device_method_t nexus_acpi_methods[] = { ==== //depot/projects/smpng/sys/amd64/acpica/acpi_wakecode.S#4 (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/amd64/acpica/acpi_wakecode.S,v 1.3 2009/04/02 00:23:56 jkim Exp $ + * $FreeBSD: src/sys/amd64/acpica/acpi_wakecode.S,v 1.4 2009/10/08 17:41:53 jkim Exp $ */ #define LOCORE @@ -54,18 +54,17 @@ .data /* So we can modify it */ ALIGN_TEXT + .code16 wakeup_start: - .code16 /* * Set up segment registers for real mode, a small stack for * any calls we make, and clear any flags. */ cli /* make sure no interrupts */ - cld mov %cs, %ax /* copy %cs to %ds. Remember these */ mov %ax, %ds /* are offsets rather than selectors */ mov %ax, %ss - movw $PAGE_SIZE - 8, %sp + movw $PAGE_SIZE, %sp xorw %ax, %ax pushw %ax popfw @@ -129,6 +128,7 @@ /* * At this point, we are running in 32 bit legacy protected mode. */ + ALIGN_TEXT .code32 wakeup_32: ==== //depot/projects/smpng/sys/amd64/acpica/acpi_wakeup.c#9 (text+ko) ==== @@ -28,16 +28,14 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/acpica/acpi_wakeup.c,v 1.26 2009/06/05 18:44:36 jkim Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/acpica/acpi_wakeup.c,v 1.27 2009/10/08 17:41:53 jkim Exp $"); #include -#include #include #include #include #include #include -#include #include #include @@ -46,11 +44,11 @@ #include #include #include -#include #ifdef SMP #include #include +#include #endif #include @@ -63,10 +61,6 @@ /* Make sure the code is less than a page and leave room for the stack. */ CTASSERT(sizeof(wakecode) < PAGE_SIZE - 1024); -#ifndef _SYS_CDEFS_H_ -#error this file needs sys/cdefs.h as a prerequisite -#endif - extern int acpi_resume_beep; extern int acpi_reset_video; @@ -79,7 +73,7 @@ int acpi_restorecpu(struct xpcb *, vm_offset_t); int acpi_savecpu(struct xpcb *); -static void acpi_alloc_wakeup_handler(void); +static void *acpi_alloc_wakeup_handler(void); static void acpi_stop_beep(void *); #ifdef SMP @@ -322,49 +316,50 @@ return (ret); } -static vm_offset_t acpi_wakeaddr; - -static void +static void * acpi_alloc_wakeup_handler(void) { void *wakeaddr; - if (!cold) - return; - /* * Specify the region for our wakeup code. We want it in the low 1 MB - * region, excluding video memory and above (0xa0000). We ask for - * it to be page-aligned, just to be safe. + * region, excluding real mode IVT (0-0x3ff), BDA (0x400-0x4ff), EBDA + * (less than 128KB, below 0xa0000, must be excluded by SMAP and DSDT), + * and ROM area (0xa0000 and above). The temporary page tables must be + * page-aligned. */ - wakeaddr = contigmalloc(4 * PAGE_SIZE, M_DEVBUF, M_NOWAIT, 0, 0x9ffff, - PAGE_SIZE, 0ul); + wakeaddr = contigmalloc(4 * PAGE_SIZE, M_DEVBUF, M_NOWAIT, 0x500, + 0xa0000, PAGE_SIZE, 0ul); if (wakeaddr == NULL) { printf("%s: can't alloc wake memory\n", __func__); - return; + return (NULL); } stopxpcbs = malloc(mp_ncpus * sizeof(*stopxpcbs), M_DEVBUF, M_NOWAIT); if (stopxpcbs == NULL) { contigfree(wakeaddr, 4 * PAGE_SIZE, M_DEVBUF); printf("%s: can't alloc CPU state memory\n", __func__); - return; + return (NULL); } - acpi_wakeaddr = (vm_offset_t)wakeaddr; + + return (wakeaddr); } -SYSINIT(acpiwakeup, SI_SUB_KMEM, SI_ORDER_ANY, acpi_alloc_wakeup_handler, 0); - void acpi_install_wakeup_handler(struct acpi_softc *sc) { + static void *wakeaddr = NULL; uint64_t *pt4, *pt3, *pt2; int i; - if (acpi_wakeaddr == 0ul) + if (wakeaddr != NULL) + return; + + wakeaddr = acpi_alloc_wakeup_handler(); + if (wakeaddr == NULL) return; - sc->acpi_wakeaddr = acpi_wakeaddr; - sc->acpi_wakephys = vtophys(acpi_wakeaddr); + sc->acpi_wakeaddr = (vm_offset_t)wakeaddr; + sc->acpi_wakephys = vtophys(wakeaddr); bcopy(wakecode, (void *)WAKECODE_VADDR(sc), sizeof(wakecode)); @@ -390,7 +385,7 @@ WAKECODE_FIXUP(wakeup_sfmask, uint64_t, rdmsr(MSR_SF_MASK)); /* Build temporary page tables below realmode code. */ - pt4 = (uint64_t *)acpi_wakeaddr; + pt4 = wakeaddr; pt3 = pt4 + (PAGE_SIZE) / sizeof(uint64_t); pt2 = pt3 + (PAGE_SIZE) / sizeof(uint64_t); ==== //depot/projects/smpng/sys/amd64/amd64/elf_machdep.c#19 (text+ko) ==== @@ -24,7 +24,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/elf_machdep.c,v 1.32 2009/08/30 14:38:17 bz Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/elf_machdep.c,v 1.33 2009/10/03 11:57:21 bz Exp $"); #include #include @@ -89,7 +89,7 @@ .flags = BI_CAN_EXEC_DYN | BI_BRAND_NOTE }; -SYSINIT(elf64, SI_SUB_EXEC, SI_ORDER_ANY, +SYSINIT(elf64, SI_SUB_EXEC, SI_ORDER_FIRST, (sysinit_cfunc_t) elf64_insert_brand_entry, &freebsd_brand_info); ==== //depot/projects/smpng/sys/amd64/amd64/intr_machdep.c#37 (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/amd64/amd64/intr_machdep.c,v 1.45 2009/07/01 17:20:07 jhb Exp $ + * $FreeBSD: src/sys/amd64/amd64/intr_machdep.c,v 1.47 2009/10/16 12:00:59 kib Exp $ */ /* @@ -400,6 +400,23 @@ } #endif +/* Add a description to an active interrupt handler. */ +int +intr_describe(u_int vector, void *ih, const char *descr) +{ + struct intsrc *isrc; + int error; + + isrc = intr_lookup_source(vector); + if (isrc == NULL) + return (EINVAL); + error = intr_event_describe_handler(isrc->is_event, ih, descr); + if (error) + return (error); + intrcnt_updatename(isrc); + return (0); +} + #ifdef DDB /* * Dump data about interrupt handlers ==== //depot/projects/smpng/sys/amd64/amd64/nexus.c#30 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/nexus.c,v 1.80 2008/03/20 21:24:32 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/nexus.c,v 1.81 2009/10/15 14:54:35 jhb Exp $"); /* * This code implements a `root nexus' for Intel Architecture @@ -92,6 +92,9 @@ #endif static int nexus_config_intr(device_t, int, enum intr_trigger, enum intr_polarity); +static int nexus_describe_intr(device_t dev, device_t child, + struct resource *irq, void *cookie, + const char *descr); static int nexus_activate_resource(device_t, device_t, int, int, struct resource *); static int nexus_deactivate_resource(device_t, device_t, int, int, @@ -135,6 +138,7 @@ DEVMETHOD(bus_bind_intr, nexus_bind_intr), #endif DEVMETHOD(bus_config_intr, nexus_config_intr), + DEVMETHOD(bus_describe_intr, nexus_describe_intr), DEVMETHOD(bus_get_resource_list, nexus_get_reslist), DEVMETHOD(bus_set_resource, nexus_set_resource), DEVMETHOD(bus_get_resource, nexus_get_resource), @@ -479,6 +483,14 @@ return (intr_config_intr(irq, trig, pol)); } +static int +nexus_describe_intr(device_t dev, device_t child, struct resource *irq, + void *cookie, const char *descr) +{ + + return (intr_describe(rman_get_start(irq), cookie, descr)); +} + static struct resource_list * nexus_get_reslist(device_t dev, device_t child) { ==== //depot/projects/smpng/sys/amd64/conf/GENERIC#85 (text+ko) ==== @@ -16,7 +16,7 @@ # If you are in doubt as to the purpose or necessity of a line, check first # in NOTES. # -# $FreeBSD: src/sys/amd64/conf/GENERIC,v 1.533 2009/10/01 02:08:42 rpaulo Exp $ +# $FreeBSD: src/sys/amd64/conf/GENERIC,v 1.534 2009/10/13 19:02:03 jhb Exp $ cpu HAMMER ident GENERIC @@ -297,10 +297,6 @@ device ulpt # Printer device umass # Disks/Mass storage - Requires scbus and da device ums # Mouse -device rum # Ralink Technology RT2501USB wireless NICs -device uath # Atheros AR5523 wireless NICs -device ural # Ralink Technology RT2500USB wireless NICs -device zyd # ZyDAS zb1211/zb1211b wireless NICs device urio # Diamond Rio 500 MP3 player # USB Serial devices device uark # Technologies ARK3116 based serial adapters @@ -319,6 +315,11 @@ device kue # Kawasaki LSI USB Ethernet device rue # RealTek RTL8150 USB Ethernet device udav # Davicom DM9601E USB +# USB Wireless +device rum # Ralink Technology RT2501USB wireless NICs +device uath # Atheros AR5523 wireless NICs +device ural # Ralink Technology RT2500USB wireless NICs +device zyd # ZyDAS zb1211/zb1211b wireless NICs # FireWire support device firewire # FireWire bus code ==== //depot/projects/smpng/sys/amd64/include/atomic.h#33 (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/amd64/include/atomic.h,v 1.46 2008/11/22 05:55:56 kmacy Exp $ + * $FreeBSD: src/sys/amd64/include/atomic.h,v 1.49 2009/10/09 15:51:40 attilio Exp $ */ #ifndef _MACHINE_ATOMIC_H_ #define _MACHINE_ATOMIC_H_ @@ -32,9 +32,9 @@ #error this file needs sys/cdefs.h as a prerequisite #endif -#define mb() __asm__ __volatile__ ("mfence;": : :"memory") -#define wmb() __asm__ __volatile__ ("sfence;": : :"memory") -#define rmb() __asm__ __volatile__ ("lfence;": : :"memory") +#define mb() __asm __volatile("mfence;" : : : "memory") +#define wmb() __asm __volatile("sfence;" : : : "memory") +#define rmb() __asm __volatile("lfence;" : : : "memory") /* * Various simple operations on memory, each of which is atomic in the @@ -73,7 +73,8 @@ */ #if defined(KLD_MODULE) || !defined(__GNUCLIKE_ASM) #define ATOMIC_ASM(NAME, TYPE, OP, CONS, V) \ -void atomic_##NAME##_##TYPE(volatile u_##TYPE *p, u_##TYPE v) +void atomic_##NAME##_##TYPE(volatile u_##TYPE *p, u_##TYPE v); \ +void atomic_##NAME##_barr_##TYPE(volatile u_##TYPE *p, u_##TYPE v) int atomic_cmpset_int(volatile u_int *dst, u_int exp, u_int src); int atomic_cmpset_long(volatile u_long *dst, u_long exp, u_long src); @@ -97,8 +98,9 @@ #endif /* - * The assembly is volatilized to demark potential before-and-after side - * effects if an interrupt or SMP collision were to occur. + * The assembly is volatilized to avoid code chunk removal by the compiler. + * GCC aggressively reorders operations and memory clobbering is necessary + * in order to avoid that for memory barriers. */ #define ATOMIC_ASM(NAME, TYPE, OP, CONS, V) \ static __inline void \ @@ -108,6 +110,15 @@ : "=m" (*p) \ : CONS (V), "m" (*p)); \ } \ + \ +static __inline void \ +atomic_##NAME##_barr_##TYPE(volatile u_##TYPE *p, u_##TYPE v)\ +{ \ + __asm __volatile(MPLOCKED OP \ + : "=m" (*p) \ + : CONS (V), "m" (*p) \ + : "memory"); \ +} \ struct __hack /* @@ -205,18 +216,23 @@ * PentiumPro or higher, reads may pass writes, so for that case we have * to use a serializing instruction (i.e. with LOCK) to do the load in * SMP kernels. For UP kernels, however, the cache of the single processor - * is always consistent, so we don't need any memory barriers. + * is always consistent, so we only need to take care of compiler. */ #define ATOMIC_STORE_LOAD(TYPE, LOP, SOP) \ static __inline u_##TYPE \ atomic_load_acq_##TYPE(volatile u_##TYPE *p) \ { \ - return (*p); \ + u_##TYPE tmp; \ + \ + tmp = *p; \ + __asm __volatile ("" : : : "memory"); \ + return (tmp); \ } \ \ static __inline void \ atomic_store_rel_##TYPE(volatile u_##TYPE *p, u_##TYPE v)\ { \ + __asm __volatile ("" : : : "memory"); \ *p = v; \ } \ struct __hack @@ -247,7 +263,8 @@ __asm __volatile(SOP \ : "=m" (*p), /* 0 */ \ "+r" (v) /* 1 */ \ - : "m" (*p)); /* 2 */ \ + : "m" (*p) /* 2 */ \ + : "memory"); \ } \ struct __hack @@ -327,44 +344,43 @@ #endif /* __GNUCLIKE_ASM */ -/* Acquire and release variants are identical to the normal ones. */ -#define atomic_set_acq_char atomic_set_char -#define atomic_set_rel_char atomic_set_char -#define atomic_clear_acq_char atomic_clear_char -#define atomic_clear_rel_char atomic_clear_char -#define atomic_add_acq_char atomic_add_char -#define atomic_add_rel_char atomic_add_char -#define atomic_subtract_acq_char atomic_subtract_char -#define atomic_subtract_rel_char atomic_subtract_char +#define atomic_set_acq_char atomic_set_barr_char +#define atomic_set_rel_char atomic_set_barr_char +#define atomic_clear_acq_char atomic_clear_barr_char +#define atomic_clear_rel_char atomic_clear_barr_char +#define atomic_add_acq_char atomic_add_barr_char +#define atomic_add_rel_char atomic_add_barr_char +#define atomic_subtract_acq_char atomic_subtract_barr_char +#define atomic_subtract_rel_char atomic_subtract_barr_char -#define atomic_set_acq_short atomic_set_short -#define atomic_set_rel_short atomic_set_short -#define atomic_clear_acq_short atomic_clear_short -#define atomic_clear_rel_short atomic_clear_short -#define atomic_add_acq_short atomic_add_short -#define atomic_add_rel_short atomic_add_short -#define atomic_subtract_acq_short atomic_subtract_short -#define atomic_subtract_rel_short atomic_subtract_short +#define atomic_set_acq_short atomic_set_barr_short +#define atomic_set_rel_short atomic_set_barr_short +#define atomic_clear_acq_short atomic_clear_barr_short +#define atomic_clear_rel_short atomic_clear_barr_short +#define atomic_add_acq_short atomic_add_barr_short +#define atomic_add_rel_short atomic_add_barr_short +#define atomic_subtract_acq_short atomic_subtract_barr_short +#define atomic_subtract_rel_short atomic_subtract_barr_short -#define atomic_set_acq_int atomic_set_int -#define atomic_set_rel_int atomic_set_int -#define atomic_clear_acq_int atomic_clear_int -#define atomic_clear_rel_int atomic_clear_int -#define atomic_add_acq_int atomic_add_int -#define atomic_add_rel_int atomic_add_int -#define atomic_subtract_acq_int atomic_subtract_int -#define atomic_subtract_rel_int atomic_subtract_int +#define atomic_set_acq_int atomic_set_barr_int +#define atomic_set_rel_int atomic_set_barr_int +#define atomic_clear_acq_int atomic_clear_barr_int +#define atomic_clear_rel_int atomic_clear_barr_int +#define atomic_add_acq_int atomic_add_barr_int +#define atomic_add_rel_int atomic_add_barr_int +#define atomic_subtract_acq_int atomic_subtract_barr_int +#define atomic_subtract_rel_int atomic_subtract_barr_int #define atomic_cmpset_acq_int atomic_cmpset_int #define atomic_cmpset_rel_int atomic_cmpset_int -#define atomic_set_acq_long atomic_set_long -#define atomic_set_rel_long atomic_set_long -#define atomic_clear_acq_long atomic_clear_long -#define atomic_clear_rel_long atomic_clear_long -#define atomic_add_acq_long atomic_add_long -#define atomic_add_rel_long atomic_add_long -#define atomic_subtract_acq_long atomic_subtract_long -#define atomic_subtract_rel_long atomic_subtract_long +#define atomic_set_acq_long atomic_set_barr_long +#define atomic_set_rel_long atomic_set_barr_long +#define atomic_clear_acq_long atomic_clear_barr_long +#define atomic_clear_rel_long atomic_clear_barr_long +#define atomic_add_acq_long atomic_add_barr_long +#define atomic_add_rel_long atomic_add_barr_long +#define atomic_subtract_acq_long atomic_subtract_barr_long +#define atomic_subtract_rel_long atomic_subtract_barr_long #define atomic_cmpset_acq_long atomic_cmpset_long #define atomic_cmpset_rel_long atomic_cmpset_long ==== //depot/projects/smpng/sys/amd64/include/elf.h#8 (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/amd64/include/elf.h,v 1.21 2009/03/17 12:50:16 kib Exp $ + * $FreeBSD: src/sys/amd64/include/elf.h,v 1.22 2009/10/10 15:31:24 kib Exp $ */ #ifndef _MACHINE_ELF_H_ @@ -106,4 +106,10 @@ #define ELF_TARG_MACH EM_X86_64 #define ELF_TARG_VER 1 +#if __ELF_WORD_SIZE == 32 +#define ET_DYN_LOAD_ADDR 0x01001000 +#else +#define ET_DYN_LOAD_ADDR 0x01021000 +#endif + #endif /* !_MACHINE_ELF_H_ */ ==== //depot/projects/smpng/sys/amd64/include/intr_machdep.h#22 (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/amd64/include/intr_machdep.h,v 1.24 2009/07/01 17:20:07 jhb Exp $ + * $FreeBSD: src/sys/amd64/include/intr_machdep.h,v 1.25 2009/10/15 14:54:35 jhb Exp $ */ #ifndef __MACHINE_INTR_MACHDEP_H__ @@ -151,6 +151,7 @@ #endif int intr_config_intr(int vector, enum intr_trigger trig, enum intr_polarity pol); +int intr_describe(u_int vector, void *ih, const char *descr); void intr_execute_handlers(struct intsrc *isrc, struct trapframe *frame); u_int intr_next_cpu(void); struct intsrc *intr_lookup_source(int vector); >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Mon Oct 19 14:54:26 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E645A1065737; Mon, 19 Oct 2009 14:54:25 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8CCA7106572B for ; Mon, 19 Oct 2009 14:54:25 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 5F98E8FC21 for ; Mon, 19 Oct 2009 14:54:25 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n9JEsPb4072549 for ; Mon, 19 Oct 2009 14:54:25 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n9JEsPp8072547 for perforce@freebsd.org; Mon, 19 Oct 2009 14:54:25 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Mon, 19 Oct 2009 14:54:25 GMT Message-Id: <200910191454.n9JEsPp8072547@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 169594 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 19 Oct 2009 14:54:26 -0000 http://p4web.freebsd.org/chv.cgi?CH=169594 Change 169594 by rwatson@rwatson_vimage_client on 2009/10/19 14:54:16 Add reference kernel config for amd64 capabilities work. Affected files ... .. //depot/projects/trustedbsd/capabilities/src/sys/amd64/conf/CAPABILITIES#1 add Differences ... From owner-p4-projects@FreeBSD.ORG Mon Oct 19 15:01:33 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id EC1D71065676; Mon, 19 Oct 2009 15:01:32 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B0840106566B for ; Mon, 19 Oct 2009 15:01:32 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 9BD518FC0A for ; Mon, 19 Oct 2009 15:01:32 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n9JF1WwS073025 for ; Mon, 19 Oct 2009 15:01:32 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n9JF1WUq073023 for perforce@freebsd.org; Mon, 19 Oct 2009 15:01:32 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Mon, 19 Oct 2009 15:01:32 GMT Message-Id: <200910191501.n9JF1WUq073023@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 169595 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 19 Oct 2009 15:01:33 -0000 http://p4web.freebsd.org/chv.cgi?CH=169595 Change 169595 by rwatson@rwatson_vimage_client on 2009/10/19 15:01:02 Countless printf(3) format string warning fixes, most inspired by my rediscovery of amd64. Affected files ... .. //depot/projects/trustedbsd/capabilities/src/tools/regression/security/cap_test/cap_test_capabilities.c#5 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/tools/regression/security/cap_test/cap_test_capabilities.c#5 (text+ko) ==== @@ -30,7 +30,7 @@ */ #include -__FBSDID("$P4: //depot/projects/trustedbsd/capabilities/src/tools/regression/security/cap_test/cap_test_capabilities.c#4 $"); +__FBSDID("$P4: //depot/projects/trustedbsd/capabilities/src/tools/regression/security/cap_test/cap_test_capabilities.c#5 $"); #include #include @@ -70,109 +70,109 @@ fd_capcap = cap_new(fd_cap, rights); if ((fd_capcap < 0) || (fd_capcap == fd_cap)) - err(-1, "cap_new: fd_capcap = %i, fd_cap = %i", + err(-1, "cap_new: fd_capcap = %d, fd_cap = %d", fd_capcap, fd_cap); ssize = read(fd_cap, &ch, sizeof(ch)); if ((rights & (CAP_READ | CAP_SEEK)) == (CAP_READ | CAP_SEEK)) { if (ssize < 0) - warnx("rights 0x%llx read failed error %d", rights, + warnx("rights 0x%jx read failed error %d", rights, errno); } else { if (ssize >= 0) - warnx("rights 0x%llx read succeeded", rights); + warnx("rights 0x%jx read succeeded", rights); else if (errno != ENOTCAPABLE) - warnx("rights 0x%llx read wrong error %d", rights, + warnx("rights 0x%jx read wrong error %d", rights, errno); } ssize = pread(fd_cap, &ch, sizeof(ch), 0); ssize2 = pread(fd_cap, &ch, sizeof(ch), 0); if(ssize != ssize2) - err(-1, "pread(fd_capcap) != pread(fd_cap) (%i != %i)", + err(-1, "pread(fd_capcap) != pread(fd_cap) (%zd != %zd)", ssize2, ssize); if (rights & CAP_READ) { if (ssize < 0) - warnx("rights 0x%llx pread failed error %d", rights, + warnx("rights 0x%jx pread failed error %d", rights, errno); } else { if (ssize >= 0) - warnx("rights 0x%llx pread succeeded", rights); + warnx("rights 0x%jx pread succeeded", rights); else if (errno != ENOTCAPABLE) - warnx("rights 0x%llx pread wrong error %d", rights, + warnx("rights 0x%jx pread wrong error %d", rights, errno); } ssize = write(fd_cap, &ch, sizeof(ch)); if ((rights & (CAP_WRITE | CAP_SEEK)) == (CAP_WRITE | CAP_SEEK)) { if (ssize < 0) - warnx("rights 0x%llx write failed error %d", rights, + warnx("rights 0x%jx write failed error %d", rights, errno); } else { if (ssize >= 0) - warnx("rights 0x%llx write succeeded", rights); + warnx("rights 0x%jx write succeeded", rights); else if (errno != ENOTCAPABLE) - warnx("rights 0x%llx write wrong error %d", rights, + warnx("rights 0x%jx write wrong error %d", rights, errno); } ssize = pwrite(fd_cap, &ch, sizeof(ch), 0); if (rights & CAP_WRITE) { if (ssize < 0) - warnx("rights 0x%llx pwrite failed error %d", rights, + warnx("rights 0x%jx pwrite failed error %d", rights, errno); } else { if (ssize >= 0) - warnx("rights 0x%llx pwrite succeeeded", rights); + warnx("rights 0x%jx pwrite succeeeded", rights); else if (errno != ENOTCAPABLE) - warnx("rights 0x%llx pwrite wrong error %d", rights, + warnx("rights 0x%jx pwrite wrong error %d", rights, errno); } off = lseek(fd_cap, 0, SEEK_SET); if (rights & CAP_SEEK) { if (off < 0) - warnx("rights 0x%llx lseek failed error %d", rights, + warnx("rights 0x%jx lseek failed error %d", rights, errno); } else { if (off >= 0) - warnx("rights 0x%llx lseek succeeded", rights); + warnx("rights 0x%jx lseek succeeded", rights); else if (errno != ENOTCAPABLE) - warnx("rights 0x%llx lseek wrong error %d", rights, + warnx("rights 0x%jx lseek wrong error %d", rights, errno); } ret = fchflags(fd_cap, UF_NODUMP); if (rights & CAP_FCHFLAGS) { if (ret < 0) - warnx("rights 0x%llx fchflags failed error %d", + warnx("rights 0x%jx fchflags failed error %d", rights, errno); } else { if (ret == 0) - warnx("rights 0x%llx fchflags succeeded", rights); + warnx("rights 0x%jx fchflags succeeded", rights); } ret = fstat(fd_cap, &sb); if (rights & CAP_FSTAT) { if (ret < 0) - warnx("rights 0x%llx fstat failed error %d", + warnx("rights 0x%jx fstat failed error %d", rights, errno); } else { if (ret == 0) - warnx("rights 0x%llx fstat succeeded", rights); + warnx("rights 0x%jx fstat succeeded", rights); } p = mmap(NULL, getpagesize(), PROT_READ, MAP_SHARED, fd_cap, 0); if ((rights & (CAP_MMAP | CAP_READ)) == (CAP_MMAP | CAP_READ)) { if (p == MAP_FAILED) - warnx("rights 0x%llx mmap read failed error %d", + warnx("rights 0x%jx mmap read failed error %d", rights, errno); else (void)munmap(p, getpagesize()); } else { if (p != MAP_FAILED) { - warnx("rights 0x%llx mmap read succeeded", rights); + warnx("rights 0x%jx mmap read succeeded", rights); (void)munmap(p, getpagesize()); } } @@ -180,13 +180,13 @@ p = mmap(NULL, getpagesize(), PROT_WRITE, MAP_SHARED, fd_cap, 0); if ((rights & (CAP_MMAP | CAP_WRITE)) == (CAP_MMAP | CAP_WRITE)) { if (p == MAP_FAILED) - warnx("rights 0x%llx mmap write failed error %d", + warnx("rights 0x%jx mmap write failed error %d", rights, errno); else (void)munmap(p, getpagesize()); } else { if (p != MAP_FAILED) { - warnx("rights 0x%llx mmap write succeeded", rights); + warnx("rights 0x%jx mmap write succeeded", rights); (void)munmap(p, getpagesize()); } } @@ -194,13 +194,13 @@ p = mmap(NULL, getpagesize(), PROT_EXEC, MAP_SHARED, fd_cap, 0); if ((rights & (CAP_MMAP | CAP_MAPEXEC)) == (CAP_MMAP | CAP_MAPEXEC)) { if (p == MAP_FAILED) - warnx("rights 0x%llx mmap mapexec failed error %d", + warnx("rights 0x%jx mmap mapexec failed error %d", rights, errno); else (void)munmap(p, getpagesize()); } else { if (p != MAP_FAILED) { - warnx("rights 0x%llx mmap mapexec succeeded", rights); + warnx("rights 0x%jx mmap mapexec succeeded", rights); (void)munmap(p, getpagesize()); } } @@ -210,13 +210,13 @@ if ((rights & (CAP_MMAP | CAP_READ | CAP_WRITE)) == (CAP_MMAP | CAP_READ | CAP_WRITE)) { if (p == MAP_FAILED) - warnx("rights 0x%llx mmap read|write failed error %d", + warnx("rights 0x%jx mmap read|write failed error %d", rights, errno); else (void)munmap(p, getpagesize()); } else { if (p != MAP_FAILED) { - warnx("rights 0x%llx mmap read|write succeeded", + warnx("rights 0x%jx mmap read|write succeeded", rights); (void)munmap(p, getpagesize()); } @@ -227,13 +227,13 @@ if ((rights & (CAP_MMAP | CAP_READ | CAP_MAPEXEC)) == (CAP_MMAP | CAP_READ | CAP_MAPEXEC)) { if (p == MAP_FAILED) - warnx("rights 0x%llx mmap read|mapexec failed error %d", + warnx("rights 0x%jx mmap read|mapexec failed error %d", rights, errno); else (void)munmap(p, getpagesize()); } else { if (p != MAP_FAILED) { - warnx("rights 0x%llx mmap read|mapexec succeeded", + warnx("rights 0x%jx mmap read|mapexec succeeded", rights); (void)munmap(p, getpagesize()); } @@ -244,13 +244,13 @@ if ((rights & (CAP_MMAP | CAP_MAPEXEC | CAP_WRITE)) == (CAP_MMAP | CAP_MAPEXEC | CAP_WRITE)) { if (p == MAP_FAILED) - warnx("rights 0x%llx mmap mapexec|write failed " + warnx("rights 0x%jx mmap mapexec|write failed " "error %d", rights, errno); else (void)munmap(p, getpagesize()); } else { if (p != MAP_FAILED) { - warnx("rights 0x%llx mmap mapexec|write succeeded", + warnx("rights 0x%jx mmap mapexec|write succeeded", rights); (void)munmap(p, getpagesize()); } @@ -261,13 +261,13 @@ if ((rights & (CAP_MMAP | CAP_READ | CAP_WRITE | CAP_MAPEXEC)) == (CAP_MMAP | CAP_READ | CAP_WRITE | CAP_MAPEXEC)) { if (p == MAP_FAILED) - warnx("rights 0x%llx mmap read|write|mapexec failed " + warnx("rights 0x%jx mmap read|write|mapexec failed " "error %d", rights, errno); else (void)munmap(p, getpagesize()); } else { if (p != MAP_FAILED) { - warnx("rights 0x%llx mmap read|write|mapexec " + warnx("rights 0x%jx mmap read|write|mapexec " "succeeded", rights); (void)munmap(p, getpagesize()); } @@ -280,41 +280,41 @@ ret = fsync(fd_cap); if (rights & CAP_FSYNC) { if (ret < 0) - warnx("rights 0x%llx fsync failed error %d", + warnx("rights 0x%jx fsync failed error %d", rights, errno); } else { if (ret == 0) - warnx("rights 0x%llx fsync succeeded", rights); + warnx("rights 0x%jx fsync succeeded", rights); } ret = fchown(fd_cap, -1, -1); if (rights & CAP_FCHOWN) { if (ret < 0) - warnx("rights 0x%llx fchown failed error %d", + warnx("rights 0x%jx fchown failed error %d", rights, errno); } else { if (ret == 0) - warnx("rights 0x%llx fchown succeeded", rights); + warnx("rights 0x%jx fchown succeeded", rights); } ret = fchmod(fd_cap, 0644); if (rights & CAP_FCHMOD) { if (ret < 0) - warnx("rights 0x%llx fchmod failed error %d", + warnx("rights 0x%jx fchmod failed error %d", rights, errno); } else { if (ret == 0) - warnx("rights 0x%llx fchmod succeeded", rights); + warnx("rights 0x%jx fchmod succeeded", rights); } ret = ftruncate(fd_cap, 0); if (rights & CAP_FTRUNCATE) { if (ret < 0) - warnx("rights 0x%llx ftruncate failed error %d", + warnx("rights 0x%jx ftruncate failed error %d", rights, errno); } else { if (ret == 0) - warnx("rights 0x%llx ftruncate succeeded", rights); + warnx("rights 0x%jx ftruncate succeeded", rights); } /* XXX flock */ @@ -322,31 +322,31 @@ ret = fstatfs(fd_cap, &sf); if (rights & CAP_FSTATFS) { if (ret < 0) - warnx("rights 0x%llx fstatfs failed error %d", + warnx("rights 0x%jx fstatfs failed error %d", rights, errno); } else { if (ret == 0) - warnx("rights 0x%llx fstatfs succeeded", rights); + warnx("rights 0x%jx fstatfs succeeded", rights); } ret = fpathconf(fd_cap, _PC_NAME_MAX); if (rights & CAP_FPATHCONF) { if (ret < 0) - warnx("rights 0x%llx fpathconf failed error %d", + warnx("rights 0x%jx fpathconf failed error %d", rights, errno); } else { if (ret == 0) - warnx("rights 0x%llx fpathconf succeeded", rights); + warnx("rights 0x%jx fpathconf succeeded", rights); } ret = futimes(fd_cap, NULL); if (rights & CAP_FUTIMES) { if (ret < 0) - warnx("rights 0x%llx futimes failed error %d", + warnx("rights 0x%jx futimes failed error %d", rights, errno); } else { if (ret == 0) - warnx("rights 0x%llx futimes succeeded", rights); + warnx("rights 0x%jx futimes succeeded", rights); } close (fd_cap); From owner-p4-projects@FreeBSD.ORG Mon Oct 19 15:23:55 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 9CC921065672; Mon, 19 Oct 2009 15:23:55 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 61356106566C for ; Mon, 19 Oct 2009 15:23:55 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 4DB0C8FC17 for ; Mon, 19 Oct 2009 15:23:55 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n9JFNsod075303 for ; Mon, 19 Oct 2009 15:23:54 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n9JFNseu075301 for perforce@freebsd.org; Mon, 19 Oct 2009 15:23:54 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Mon, 19 Oct 2009 15:23:54 GMT Message-Id: <200910191523.n9JFNseu075301@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 169596 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 19 Oct 2009 15:23:55 -0000 http://p4web.freebsd.org/chv.cgi?CH=169596 Change 169596 by rwatson@rwatson_vimage_client on 2009/10/19 15:23:30 amd64 also requires capability mode checks. Affected files ... .. //depot/projects/trustedbsd/capabilities/src/sys/amd64/amd64/trap.c#7 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/sys/amd64/amd64/trap.c#7 (text+ko) ==== @@ -44,6 +44,7 @@ * AMD64 Trap and System call handling */ +#include "opt_capabilities.h" #include "opt_clock.h" #include "opt_cpu.h" #include "opt_hwpmc_hooks.h" @@ -68,6 +69,7 @@ #include #include #include +#include #include #include #ifdef KTRACE @@ -969,6 +971,18 @@ td->td_syscalls++; +#ifdef CAPABILITIES + /* + * In capabilities mode, we only allow access to system calls flagged + * SYF_CAPENABLED. + */ + if (error == 0) { + if (!(callp->sy_flags & SYF_CAPENABLED) && + (td->td_ucred->cr_flags & CRED_FLAG_CAPMODE)) + error = ENOSYS; + } +#endif + if (error == 0) { td->td_retval[0] = 0; td->td_retval[1] = frame->tf_rdx; From owner-p4-projects@FreeBSD.ORG Mon Oct 19 15:38:10 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id EE7031065692; Mon, 19 Oct 2009 15:38:09 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B300D1065670 for ; Mon, 19 Oct 2009 15:38:09 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id A05C18FC1B for ; Mon, 19 Oct 2009 15:38:09 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n9JFc9eG076160 for ; Mon, 19 Oct 2009 15:38:09 GMT (envelope-from trasz@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n9JFc9Aj076158 for perforce@freebsd.org; Mon, 19 Oct 2009 15:38:09 GMT (envelope-from trasz@freebsd.org) Date: Mon, 19 Oct 2009 15:38:09 GMT Message-Id: <200910191538.n9JFc9Aj076158@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to trasz@freebsd.org using -f From: Edward Tomasz Napierala To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 169597 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 19 Oct 2009 15:38:10 -0000 http://p4web.freebsd.org/chv.cgi?CH=169597 Change 169597 by trasz@trasz_victim on 2009/10/19 15:37:34 No per-group limits for now. Affected files ... .. //depot/projects/soc2009/trasz_limits/usr.sbin/hrl/hrl.8#3 edit Differences ... ==== //depot/projects/soc2009/trasz_limits/usr.sbin/hrl/hrl.8#3 (text+ko) ==== @@ -68,7 +68,7 @@ .Ar filter from the HRL database. .It Fl l Ar filter -Display resource usage for a subject (process, user, group, login class +Display resource usage for a subject (process, user, login class or jail) matching the .Ar filter . .Pp @@ -76,10 +76,10 @@ Syntax for a rule is subject:subject-id:resource:action=amount/per. .Pp Subject defines the kind of entity the rule applies to. -It can be either process, user, group, login class, or jail. +It can be either process, user, login class, or jail. .Pp -Subject ID identifies the subject. It can be user name, group name, -login class name, or a numerical UID, GID, or JID. +Subject ID identifies the subject. It can be user name, +login class name, or a numerical UID, or JID. .Pp Resource identifies the resource the rule controls. .Pp From owner-p4-projects@FreeBSD.ORG Mon Oct 19 15:39:11 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id DECD31065670; Mon, 19 Oct 2009 15:39:10 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A3541106566B for ; Mon, 19 Oct 2009 15:39:10 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 90F2F8FC14 for ; Mon, 19 Oct 2009 15:39:10 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n9JFdAxN076218 for ; Mon, 19 Oct 2009 15:39:10 GMT (envelope-from trasz@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n9JFdAF3076216 for perforce@freebsd.org; Mon, 19 Oct 2009 15:39:10 GMT (envelope-from trasz@freebsd.org) Date: Mon, 19 Oct 2009 15:39:10 GMT Message-Id: <200910191539.n9JFdAF3076216@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to trasz@freebsd.org using -f From: Edward Tomasz Napierala To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 169598 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 19 Oct 2009 15:39:11 -0000 http://p4web.freebsd.org/chv.cgi?CH=169598 Change 169598 by trasz@trasz_victim on 2009/10/19 15:38:49 Remove completed item. Affected files ... .. //depot/projects/soc2009/trasz_limits/TODO#14 edit Differences ... ==== //depot/projects/soc2009/trasz_limits/TODO#14 (text+ko) ==== @@ -4,11 +4,6 @@ - Bring back per-group limits. - - Fix up (add/remove resource counters) when: - - Removing a group from a process, - - Moving a process into a jail. - - Changing [re]uid; - - Some things need to be accounted for per-euid, and some per-egid. Geez. - In maxproc limit, make sure the 'p' argument is a child process. Otherwise, From owner-p4-projects@FreeBSD.ORG Mon Oct 19 16:07:40 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id EB1D71065679; Mon, 19 Oct 2009 16:07:39 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id AE9EB1065670 for ; Mon, 19 Oct 2009 16:07:39 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 7EDEC8FC0A for ; Mon, 19 Oct 2009 16:07:39 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n9JG7dMM079343 for ; Mon, 19 Oct 2009 16:07:39 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n9JG7cc3079341 for perforce@freebsd.org; Mon, 19 Oct 2009 16:07:39 GMT (envelope-from hselasky@FreeBSD.org) Date: Mon, 19 Oct 2009 16:07:39 GMT Message-Id: <200910191607.n9JG7cc3079341@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 169599 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 19 Oct 2009 16:07:40 -0000 http://p4web.freebsd.org/chv.cgi?CH=169599 Change 169599 by hselasky@hselasky_laptop001 on 2009/10/19 16:07:33 IFC @ 169589 Affected files ... .. //depot/projects/usb/src/sys/amd64/amd64/intr_machdep.c#12 integrate .. //depot/projects/usb/src/sys/amd64/amd64/nexus.c#8 integrate .. //depot/projects/usb/src/sys/amd64/include/intr_machdep.h#10 integrate .. //depot/projects/usb/src/sys/cddl/compat/opensolaris/rpc/xdr.h#4 branch .. //depot/projects/usb/src/sys/dev/gem/if_gem_pci.c#7 integrate .. //depot/projects/usb/src/sys/dev/hwpmc/hwpmc_mod.c#13 integrate .. //depot/projects/usb/src/sys/dev/pci/pci.c#28 integrate .. //depot/projects/usb/src/sys/dev/usb/controller/ehci.c#37 integrate .. //depot/projects/usb/src/sys/dev/usb/controller/ehci.h#13 integrate .. //depot/projects/usb/src/sys/dev/usb/controller/ehci_ixp4xx.c#10 integrate .. //depot/projects/usb/src/sys/dev/usb/controller/ehci_mbus.c#9 integrate .. //depot/projects/usb/src/sys/dev/usb/controller/ehci_pci.c#15 integrate .. //depot/projects/usb/src/sys/dev/usb/controller/ehcireg.h#2 integrate .. //depot/projects/usb/src/sys/dev/usb/controller/ohci.c#29 integrate .. //depot/projects/usb/src/sys/dev/usb/controller/ohci.h#12 integrate .. //depot/projects/usb/src/sys/dev/usb/controller/ohci_atmelarm.c#9 integrate .. //depot/projects/usb/src/sys/dev/usb/controller/ohci_pci.c#12 integrate .. //depot/projects/usb/src/sys/dev/usb/controller/ohcireg.h#2 integrate .. //depot/projects/usb/src/sys/dev/usb/controller/uhci.c#27 integrate .. //depot/projects/usb/src/sys/dev/usb/controller/uhci.h#12 integrate .. //depot/projects/usb/src/sys/dev/usb/controller/uhci_pci.c#12 integrate .. //depot/projects/usb/src/sys/dev/usb/controller/uhcireg.h#2 integrate .. //depot/projects/usb/src/sys/dev/usb/input/ukbd.c#35 integrate .. //depot/projects/usb/src/sys/dev/usb/net/if_cdce.c#23 integrate .. //depot/projects/usb/src/sys/dev/usb/wlan/if_urtw.c#10 integrate .. //depot/projects/usb/src/sys/dev/usb/wlan/if_urtwreg.h#2 integrate .. //depot/projects/usb/src/sys/dev/usb/wlan/if_urtwvar.h#4 integrate .. //depot/projects/usb/src/sys/i386/i386/intr_machdep.c#13 integrate .. //depot/projects/usb/src/sys/i386/i386/nexus.c#7 integrate .. //depot/projects/usb/src/sys/i386/include/intr_machdep.h#9 integrate .. //depot/projects/usb/src/sys/kern/bus_if.m#7 integrate .. //depot/projects/usb/src/sys/kern/imgact_elf.c#16 integrate .. //depot/projects/usb/src/sys/kern/kern_intr.c#16 integrate .. //depot/projects/usb/src/sys/kern/sched_ule.c#19 integrate .. //depot/projects/usb/src/sys/kern/subr_bus.c#32 integrate .. //depot/projects/usb/src/sys/kern/tty.c#31 integrate .. //depot/projects/usb/src/sys/kern/tty_ttydisc.c#8 integrate .. //depot/projects/usb/src/sys/net/pfil.c#5 integrate .. //depot/projects/usb/src/sys/net/pfil.h#6 integrate .. //depot/projects/usb/src/sys/netinet/if_ether.c#30 integrate .. //depot/projects/usb/src/sys/netinet/in.c#38 integrate .. //depot/projects/usb/src/sys/netinet/ip_input.c#32 integrate .. //depot/projects/usb/src/sys/nfsclient/nfs_vnops.c#31 integrate .. //depot/projects/usb/src/sys/powerpc/aim/platform_chrp.c#3 integrate .. //depot/projects/usb/src/sys/sparc64/include/elf.h#6 integrate .. //depot/projects/usb/src/sys/sun4v/include/elf.h#5 integrate .. //depot/projects/usb/src/sys/sys/bus.h#12 integrate .. //depot/projects/usb/src/sys/sys/interrupt.h#9 integrate .. //depot/projects/usb/src/sys/vm/swap_pager.c#17 integrate Differences ... ==== //depot/projects/usb/src/sys/amd64/amd64/intr_machdep.c#12 (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/amd64/amd64/intr_machdep.c,v 1.45 2009/07/01 17:20:07 jhb Exp $ + * $FreeBSD: src/sys/amd64/amd64/intr_machdep.c,v 1.47 2009/10/16 12:00:59 kib Exp $ */ /* @@ -400,6 +400,23 @@ } #endif +/* Add a description to an active interrupt handler. */ +int +intr_describe(u_int vector, void *ih, const char *descr) +{ + struct intsrc *isrc; + int error; + + isrc = intr_lookup_source(vector); + if (isrc == NULL) + return (EINVAL); + error = intr_event_describe_handler(isrc->is_event, ih, descr); + if (error) + return (error); + intrcnt_updatename(isrc); + return (0); +} + #ifdef DDB /* * Dump data about interrupt handlers ==== //depot/projects/usb/src/sys/amd64/amd64/nexus.c#8 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/nexus.c,v 1.80 2008/03/20 21:24:32 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/nexus.c,v 1.81 2009/10/15 14:54:35 jhb Exp $"); /* * This code implements a `root nexus' for Intel Architecture @@ -92,6 +92,9 @@ #endif static int nexus_config_intr(device_t, int, enum intr_trigger, enum intr_polarity); +static int nexus_describe_intr(device_t dev, device_t child, + struct resource *irq, void *cookie, + const char *descr); static int nexus_activate_resource(device_t, device_t, int, int, struct resource *); static int nexus_deactivate_resource(device_t, device_t, int, int, @@ -135,6 +138,7 @@ DEVMETHOD(bus_bind_intr, nexus_bind_intr), #endif DEVMETHOD(bus_config_intr, nexus_config_intr), + DEVMETHOD(bus_describe_intr, nexus_describe_intr), DEVMETHOD(bus_get_resource_list, nexus_get_reslist), DEVMETHOD(bus_set_resource, nexus_set_resource), DEVMETHOD(bus_get_resource, nexus_get_resource), @@ -479,6 +483,14 @@ return (intr_config_intr(irq, trig, pol)); } +static int +nexus_describe_intr(device_t dev, device_t child, struct resource *irq, + void *cookie, const char *descr) +{ + + return (intr_describe(rman_get_start(irq), cookie, descr)); +} + static struct resource_list * nexus_get_reslist(device_t dev, device_t child) { ==== //depot/projects/usb/src/sys/amd64/include/intr_machdep.h#10 (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/amd64/include/intr_machdep.h,v 1.24 2009/07/01 17:20:07 jhb Exp $ + * $FreeBSD: src/sys/amd64/include/intr_machdep.h,v 1.25 2009/10/15 14:54:35 jhb Exp $ */ #ifndef __MACHINE_INTR_MACHDEP_H__ @@ -151,6 +151,7 @@ #endif int intr_config_intr(int vector, enum intr_trigger trig, enum intr_polarity pol); +int intr_describe(u_int vector, void *ih, const char *descr); void intr_execute_handlers(struct intsrc *isrc, struct trapframe *frame); u_int intr_next_cpu(void); struct intsrc *intr_lookup_source(int vector); ==== //depot/projects/usb/src/sys/dev/gem/if_gem_pci.c#7 (text+ko) ==== @@ -29,7 +29,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/gem/if_gem_pci.c,v 1.26 2009/06/23 20:36:59 marius Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/gem/if_gem_pci.c,v 1.27 2009/10/18 17:11:16 nwhitehorn Exp $"); /* * PCI bindings for Apple GMAC, Sun ERI and Sun GEM Ethernet controllers @@ -295,6 +295,16 @@ GEM_PCI_ROM_OFFSET + j + PCI_VPDRES_LARGE_SIZE + PCI_VPD_SIZE, sc->sc_enaddr, ETHER_ADDR_LEN); #endif + /* + * The Xserve G5 has a fake GMAC with an all-zero MAC address. + * Check for this, and don't attach in this case. + */ + + for (i = 0; i < ETHER_ADDR_LEN && sc->sc_enaddr[i] == 0; i++) {} + if (i == ETHER_ADDR_LEN) { + device_printf(dev, "invalid MAC address\n"); + goto fail; + } if (gem_attach(sc) != 0) { device_printf(dev, "could not be attached\n"); ==== //depot/projects/usb/src/sys/dev/hwpmc/hwpmc_mod.c#13 (text+ko) ==== @@ -30,7 +30,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/hwpmc/hwpmc_mod.c,v 1.43 2009/06/25 20:59:37 attilio Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/hwpmc/hwpmc_mod.c,v 1.44 2009/10/18 13:51:49 rpaulo Exp $"); #include #include @@ -504,7 +504,7 @@ pcd = pmc_rowindex_to_classdep[ri]; KASSERT(pcd != NULL, - ("[amd,%d] ri %d null pcd", __LINE__, ri)); + ("[pmc,%d] ri %d null pcd", __LINE__, ri)); *adjri = ri - pcd->pcd_ri; ==== //depot/projects/usb/src/sys/dev/pci/pci.c#28 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/pci/pci.c,v 1.387 2009/09/22 15:43:03 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/pci/pci.c,v 1.388 2009/10/15 20:07:08 thompsa Exp $"); #include "opt_bus.h" ==== //depot/projects/usb/src/sys/dev/usb/controller/ehci.c#37 (text+ko) ==== @@ -44,7 +44,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/usb/controller/ehci.c,v 1.28 2009/10/01 18:37:16 thompsa Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/usb/controller/ehci.c,v 1.29 2009/10/15 20:07:08 thompsa Exp $"); #include #include ==== //depot/projects/usb/src/sys/dev/usb/controller/ehci.h#13 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/dev/usb/controller/ehci.h,v 1.8 2009/05/29 18:46:57 thompsa Exp $ */ +/* $FreeBSD: src/sys/dev/usb/controller/ehci.h,v 1.9 2009/10/15 20:07:08 thompsa Exp $ */ /*- * Copyright (c) 2001 The NetBSD Foundation, Inc. * All rights reserved. ==== //depot/projects/usb/src/sys/dev/usb/controller/ehci_ixp4xx.c#10 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/usb/controller/ehci_ixp4xx.c,v 1.7 2009/06/23 02:19:59 thompsa Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/usb/controller/ehci_ixp4xx.c,v 1.8 2009/10/15 20:07:08 thompsa Exp $"); #include "opt_bus.h" ==== //depot/projects/usb/src/sys/dev/usb/controller/ehci_mbus.c#9 (text+ko) ==== @@ -34,7 +34,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/usb/controller/ehci_mbus.c,v 1.7 2009/06/23 02:19:59 thompsa Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/usb/controller/ehci_mbus.c,v 1.8 2009/10/15 20:07:08 thompsa Exp $"); #include "opt_bus.h" ==== //depot/projects/usb/src/sys/dev/usb/controller/ehci_pci.c#15 (text+ko) ==== @@ -36,7 +36,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/usb/controller/ehci_pci.c,v 1.9 2009/09/28 07:06:47 thompsa Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/usb/controller/ehci_pci.c,v 1.10 2009/10/15 20:07:08 thompsa Exp $"); /* * USB Enhanced Host Controller Driver, a.k.a. USB 2.0 controller. ==== //depot/projects/usb/src/sys/dev/usb/controller/ehcireg.h#2 (text+ko) ==== ==== //depot/projects/usb/src/sys/dev/usb/controller/ohci.c#29 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/usb/controller/ohci.c,v 1.21 2009/07/30 00:14:34 alfred Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/usb/controller/ohci.c,v 1.22 2009/10/15 20:07:08 thompsa Exp $"); /* * USB Open Host Controller driver. ==== //depot/projects/usb/src/sys/dev/usb/controller/ohci.h#12 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/dev/usb/controller/ohci.h,v 1.7 2009/05/29 18:46:57 thompsa Exp $ */ +/* $FreeBSD: src/sys/dev/usb/controller/ohci.h,v 1.8 2009/10/15 20:07:08 thompsa Exp $ */ /*- * Copyright (c) 1998 The NetBSD Foundation, Inc. * All rights reserved. ==== //depot/projects/usb/src/sys/dev/usb/controller/ohci_atmelarm.c#9 (text+ko) ==== @@ -23,7 +23,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/usb/controller/ohci_atmelarm.c,v 1.6 2009/06/23 02:19:59 thompsa Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/usb/controller/ohci_atmelarm.c,v 1.7 2009/10/15 20:07:08 thompsa Exp $"); #include #include ==== //depot/projects/usb/src/sys/dev/usb/controller/ohci_pci.c#12 (text+ko) ==== @@ -36,7 +36,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/usb/controller/ohci_pci.c,v 1.8 2009/07/30 00:12:47 alfred Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/usb/controller/ohci_pci.c,v 1.9 2009/10/15 20:07:08 thompsa Exp $"); /* * USB Open Host Controller driver. ==== //depot/projects/usb/src/sys/dev/usb/controller/ohcireg.h#2 (text+ko) ==== ==== //depot/projects/usb/src/sys/dev/usb/controller/uhci.c#27 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/usb/controller/uhci.c,v 1.21 2009/07/30 00:14:34 alfred Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/usb/controller/uhci.c,v 1.22 2009/10/15 20:07:08 thompsa Exp $"); /* * USB Universal Host Controller driver. ==== //depot/projects/usb/src/sys/dev/usb/controller/uhci.h#12 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/dev/usb/controller/uhci.h,v 1.7 2009/05/29 18:46:57 thompsa Exp $ */ +/* $FreeBSD: src/sys/dev/usb/controller/uhci.h,v 1.8 2009/10/15 20:07:08 thompsa Exp $ */ /*- * Copyright (c) 1998 The NetBSD Foundation, Inc. * All rights reserved. ==== //depot/projects/usb/src/sys/dev/usb/controller/uhci_pci.c#12 (text+ko) ==== @@ -36,7 +36,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/usb/controller/uhci_pci.c,v 1.8 2009/07/30 00:12:47 alfred Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/usb/controller/uhci_pci.c,v 1.9 2009/10/15 20:07:08 thompsa Exp $"); /* Universal Host Controller Interface * ==== //depot/projects/usb/src/sys/dev/usb/controller/uhcireg.h#2 (text+ko) ==== ==== //depot/projects/usb/src/sys/dev/usb/input/ukbd.c#35 (text+ko) ==== @@ -1,5 +1,5 @@ #include -__FBSDID("$FreeBSD: src/sys/dev/usb/input/ukbd.c,v 1.19 2009/10/12 19:19:08 hrs Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/usb/input/ukbd.c,v 1.20 2009/10/15 20:09:27 thompsa Exp $"); /*- ==== //depot/projects/usb/src/sys/dev/usb/net/if_cdce.c#23 (text+ko) ==== @@ -46,7 +46,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/usb/net/if_cdce.c,v 1.16 2009/08/24 05:00:33 alfred Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/usb/net/if_cdce.c,v 1.18 2009/10/15 20:15:29 thompsa Exp $"); #include #include ==== //depot/projects/usb/src/sys/dev/usb/wlan/if_urtw.c#10 (text+ko) ==== @@ -15,7 +15,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/usb/wlan/if_urtw.c,v 1.12 2009/10/14 20:30:27 weongyo Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/usb/wlan/if_urtw.c,v 1.13 2009/10/18 00:11:49 weongyo Exp $"); #include #include #include @@ -76,6 +76,7 @@ URTW_DEBUG_STATE = 0x00000020, /* 802.11 state transitions */ URTW_DEBUG_STAT = 0x00000040, /* statistic */ URTW_DEBUG_INIT = 0x00000080, /* initialization of dev */ + URTW_DEBUG_TXSTATUS = 0x00000100, /* tx status */ URTW_DEBUG_ANY = 0xffffffff }; #define DPRINTF(sc, m, fmt, ...) do { \ @@ -326,13 +327,47 @@ { 0x0c, 0x0850 }, { 0x0d, 0x0cdf }, { 0x0e, 0x002b }, { 0x0f, 0x0114 } }; -static struct urtw_pair urtw_8225v2b_rf_part1[] = { +static struct urtw_pair urtw_8225v2b_rf_part0[] = { { 0x00, 0x00b7 }, { 0x01, 0x0ee0 }, { 0x02, 0x044d }, { 0x03, 0x0441 }, { 0x04, 0x08c3 }, { 0x05, 0x0c72 }, { 0x06, 0x00e6 }, { 0x07, 0x082a }, { 0x08, 0x003f }, { 0x09, 0x0335 }, { 0x0a, 0x09d4 }, { 0x0b, 0x07bb }, { 0x0c, 0x0850 }, { 0x0d, 0x0cdf }, { 0x0e, 0x002b }, { 0x0f, 0x0114 } }; +static struct urtw_pair urtw_8225v2b_rf_part1[] = { + {0x0f0, 0x32}, {0x0f1, 0x32}, {0x0f2, 0x00}, + {0x0f3, 0x00}, {0x0f4, 0x32}, {0x0f5, 0x43}, + {0x0f6, 0x00}, {0x0f7, 0x00}, {0x0f8, 0x46}, + {0x0f9, 0xa4}, {0x0fa, 0x00}, {0x0fb, 0x00}, + {0x0fc, 0x96}, {0x0fd, 0xa4}, {0x0fe, 0x00}, + {0x0ff, 0x00}, {0x158, 0x4b}, {0x159, 0x00}, + {0x15a, 0x4b}, {0x15b, 0x00}, {0x160, 0x4b}, + {0x161, 0x09}, {0x162, 0x4b}, {0x163, 0x09}, + {0x1ce, 0x0f}, {0x1cf, 0x00}, {0x1e0, 0xff}, + {0x1e1, 0x0f}, {0x1e2, 0x00}, {0x1f0, 0x4e}, + {0x1f1, 0x01}, {0x1f2, 0x02}, {0x1f3, 0x03}, + {0x1f4, 0x04}, {0x1f5, 0x05}, {0x1f6, 0x06}, + {0x1f7, 0x07}, {0x1f8, 0x08}, {0x24e, 0x00}, + {0x20c, 0x04}, {0x221, 0x61}, {0x222, 0x68}, + {0x223, 0x6f}, {0x224, 0x76}, {0x225, 0x7d}, + {0x226, 0x84}, {0x227, 0x8d}, {0x24d, 0x08}, + {0x250, 0x05}, {0x251, 0xf5}, {0x252, 0x04}, + {0x253, 0xa0}, {0x254, 0x1f}, {0x255, 0x23}, + {0x256, 0x45}, {0x257, 0x67}, {0x258, 0x08}, + {0x259, 0x08}, {0x25a, 0x08}, {0x25b, 0x08}, + {0x260, 0x08}, {0x261, 0x08}, {0x262, 0x08}, + {0x263, 0x08}, {0x264, 0xcf}, {0x272, 0x56}, + {0x273, 0x9a}, {0x034, 0xf0}, {0x035, 0x0f}, + {0x05b, 0x40}, {0x084, 0x88}, {0x085, 0x24}, + {0x088, 0x54}, {0x08b, 0xb8}, {0x08c, 0x07}, + {0x08d, 0x00}, {0x094, 0x1b}, {0x095, 0x12}, + {0x096, 0x00}, {0x097, 0x06}, {0x09d, 0x1a}, + {0x09f, 0x10}, {0x0b4, 0x22}, {0x0be, 0x80}, + {0x0db, 0x00}, {0x0ee, 0x00}, {0x091, 0x03}, + {0x24c, 0x00}, {0x39f, 0x00}, {0x08c, 0x01}, + {0x08d, 0x10}, {0x08e, 0x08}, {0x08f, 0x00} +}; + static struct urtw_pair urtw_8225v2_rf_part2[] = { { 0x00, 0x01 }, { 0x01, 0x02 }, { 0x02, 0x42 }, { 0x03, 0x00 }, { 0x04, 0x00 }, { 0x05, 0x00 }, { 0x06, 0x40 }, { 0x07, 0x00 }, @@ -478,6 +513,7 @@ static usb_callback_t urtw_bulk_rx_callback; static usb_callback_t urtw_bulk_tx_callback; +static usb_callback_t urtw_bulk_tx_status_callback; static const struct usb_config urtw_8187b_usbconfig[URTW_8187B_N_XFERS] = { [URTW_8187B_BULK_RX] = { @@ -492,6 +528,18 @@ }, .callback = urtw_bulk_rx_callback }, + [URTW_8187B_BULK_TX_STATUS] = { + .type = UE_BULK, + .endpoint = 0x89, + .direction = UE_DIR_IN, + .bufsize = MCLBYTES, + .flags = { + .ext_buffer = 1, + .pipe_bof = 1, + .short_xfer_ok = 1 + }, + .callback = urtw_bulk_tx_status_callback + }, [URTW_8187B_BULK_TX_BE] = { .type = UE_BULK, .endpoint = URTW_8187B_TXPIPE_BE, @@ -703,9 +751,6 @@ static usb_error_t urtw_adapter_start_b(struct urtw_softc *); static usb_error_t urtw_set_mode(struct urtw_softc *, uint32_t); static usb_error_t urtw_8187b_cmd_reset(struct urtw_softc *); -static usb_error_t urtw_write16_i(struct urtw_softc *, int, uint16_t, int); -static usb_error_t urtw_write8_i(struct urtw_softc *, int, uint8_t, int); -static usb_error_t urtw_write32_i(struct urtw_softc *, int, uint32_t, int); static usb_error_t urtw_do_request(struct urtw_softc *, struct usb_device_request *, void *); static usb_error_t urtw_8225v2b_set_txpwrlvl(struct urtw_softc *, int); @@ -713,6 +758,10 @@ static void urtw_abort_xfers(struct urtw_softc *); static struct urtw_data * urtw_getbuf(struct urtw_softc *sc); +static int urtw_compute_txtime(uint16_t, uint16_t, uint8_t, + uint8_t); +static void urtw_updateslot(struct ifnet *); +static void urtw_updateslottask(void *, int); static int urtw_match(device_t dev) @@ -757,6 +806,7 @@ MTX_DEF); usb_callout_init_mtx(&sc->sc_led_ch, &sc->sc_mtx, 0); TASK_INIT(&sc->sc_led_task, 0, urtw_ledtask, sc); + TASK_INIT(&sc->sc_updateslot_task, 0, urtw_updateslottask, sc); callout_init(&sc->sc_watchdog_ch, 0); if (sc->sc_flags & URTW_RTL8187B) { @@ -845,7 +895,7 @@ ic->ic_scan_start = urtw_scan_start; ic->ic_scan_end = urtw_scan_end; ic->ic_set_channel = urtw_set_channel; - + ic->ic_updateslot = urtw_updateslot; ic->ic_vap_create = urtw_vap_create; ic->ic_vap_delete = urtw_vap_delete; ic->ic_update_mcast = urtw_update_mcast; @@ -878,6 +928,7 @@ return (0); urtw_stop(ifp, 1); + ieee80211_draintask(ic, &sc->sc_updateslot_task); ieee80211_draintask(ic, &sc->sc_led_task); usb_callout_drain(&sc->sc_led_ch); @@ -1014,6 +1065,9 @@ if (error != 0) goto fail; + if (sc->sc_flags & URTW_RTL8187B) + usbd_transfer_start(sc->sc_xfer[URTW_8187B_BULK_TX_STATUS]); + ifp->if_drv_flags &= ~IFF_DRV_OACTIVE; ifp->if_drv_flags |= IFF_DRV_RUNNING; @@ -1036,7 +1090,6 @@ urtw_adapter_start_b(struct urtw_softc *sc) { #define N(a) (sizeof(a) / sizeof((a)[0])) - int i; uint8_t data8; usb_error_t error; @@ -1068,81 +1121,12 @@ if (error) goto fail; - urtw_write16_m(sc, 0x2d, 0xfff); - urtw_read8_m(sc, URTW_CW_CONF, &data8); - urtw_write8_m(sc, URTW_CW_CONF, data8 | URTW_CW_CONF_PERPACKET_RETRY); - urtw_read8_m(sc, URTW_TX_AGC_CTL, &data8); - data8 |= URTW_TX_AGC_CTL_PERPACKET_GAIN | - URTW_TX_AGC_CTL_PERPACKET_ANTSEL; - urtw_write8_m(sc, URTW_TX_AGC_CTL, data8); - - error = urtw_write16_i(sc, 0xe0, 0xfff, 1); - if (error) - goto fail; - - urtw_read8_m(sc, URTW_RATE_FALLBACK, &data8); - urtw_write8_m(sc, URTW_RATE_FALLBACK, data8 | URTW_RATE_FALLBACK_ENABLE); - - urtw_write16_m(sc, URTW_ATIM_WND, 2); - urtw_write16_m(sc, URTW_BEACON_INTERVAL, 100); - error = urtw_write16_i(sc, 0xd4, 0xffff, 1); - if (error) - goto fail; - - error = urtw_set_mode(sc, URTW_EPROM_CMD_CONFIG); - if (error) - goto fail; - urtw_read8_m(sc, URTW_CONFIG1, &data8); - urtw_write8_m(sc, URTW_CONFIG1, (data8 & 0x3f) | 0x80); - error = urtw_set_mode(sc, URTW_EPROM_CMD_NORMAL); - if (error) - goto fail; - - urtw_write8_m(sc, URTW_WPA_CONFIG, 0); - for (i = 0; i < N(urtw_8187b_reg_table); i++) { - error = urtw_write8_i(sc, urtw_8187b_reg_table[i][0], - urtw_8187b_reg_table[i][1], urtw_8187b_reg_table[i][2]); - if (error) - goto fail; - } - - urtw_write16_m(sc, URTW_TID_AC_MAP, 0xfa50); - urtw_write16_m(sc, URTW_INT_MIG, 0); - - error = urtw_write32_i(sc, 0xf0, 0, 1); - if (error) - goto fail; - error = urtw_write32_i(sc, 0xf4, 0, 1); - if (error) - goto fail; - error = urtw_write8_i(sc, 0xf8, 0, 1); - if (error) - goto fail; - - urtw_write32_m(sc, URTW_RF_TIMING, 0x00004001); - - error = urtw_write16_i(sc, 0x72, 0x569a, 2); - if (error) - goto fail; - - error = urtw_set_mode(sc, URTW_EPROM_CMD_CONFIG); - if (error) - goto fail; - urtw_read8_m(sc, URTW_CONFIG3, &data8); - urtw_write8_m(sc, URTW_CONFIG3, data8 | URTW_CONFIG3_ANAPARAM_WRITE); - error = urtw_set_mode(sc, URTW_EPROM_CMD_NORMAL); - if (error) - goto fail; - - urtw_write16_m(sc, URTW_RF_PINS_OUTPUT, 0x0480); - urtw_write16_m(sc, URTW_RF_PINS_SELECT, 0x2488); - urtw_write16_m(sc, URTW_RF_PINS_ENABLE, 0x1fff); - usb_pause_mtx(&sc->sc_mtx, 100); - error = sc->sc_rf_init(sc); if (error != 0) goto fail; + urtw_write8_m(sc, URTW_CMD, URTW_CMD_RX_ENABLE | URTW_CMD_TX_ENABLE); + /* fix RTL8187B RX stall */ error = urtw_intr_enable(sc); if (error) goto fail; @@ -1171,42 +1155,21 @@ urtw_read8_m(sc, 0xdb, &data8); urtw_write8_m(sc, 0xdb, data8 | (1 << 2)); - error = urtw_write16_i(sc, 0x72, 0x59fa, 3); - if (error) - goto fail; - error = urtw_write16_i(sc, 0x74, 0x59d2, 3); - if (error) - goto fail; - error = urtw_write16_i(sc, 0x76, 0x59d2, 3); - if (error) - goto fail; - error = urtw_write16_i(sc, 0x78, 0x19fa, 3); - if (error) - goto fail; - error = urtw_write16_i(sc, 0x7a, 0x19fa, 3); - if (error) - goto fail; - error = urtw_write16_i(sc, 0x7c, 0x00d0, 3); - if (error) - goto fail; + urtw_write16_m(sc, 0x372, 0x59fa); + urtw_write16_m(sc, 0x374, 0x59d2); + urtw_write16_m(sc, 0x376, 0x59d2); + urtw_write16_m(sc, 0x378, 0x19fa); + urtw_write16_m(sc, 0x37a, 0x19fa); + urtw_write16_m(sc, 0x37c, 0x00d0); urtw_write8_m(sc, 0x61, 0); - error = urtw_write8_i(sc, 0x80, 0x0f, 1); - if (error) - goto fail; - error = urtw_write8_i(sc, 0x83, 0x03, 1); - if (error) - goto fail; + + urtw_write8_m(sc, 0x180, 0x0f); + urtw_write8_m(sc, 0x183, 0x03); urtw_write8_m(sc, 0xda, 0x10); - error = urtw_write8_i(sc, 0x4d, 0x08, 2); - if (error) - goto fail; + urtw_write8_m(sc, 0x24d, 0x08); + urtw_write32_m(sc, URTW_HSSI_PARA, 0x0600321b); - urtw_write32_m(sc, URTW_HSSI_PARA, 0x0600321B); - - error = urtw_write16_i(sc, 0xec, 0x800, 1); - if (error) - goto fail; - + urtw_write16_m(sc, 0x1ec, 0x800); /* RX MAX SIZE */ fail: return (error); #undef N @@ -1310,41 +1273,11 @@ device_printf(sc->sc_dev, "reset timeout\n"); goto fail; } - - error = urtw_set_mode(sc, URTW_EPROM_CMD_LOAD); - if (error) - goto fail; - - for (i = 0; i < 20; i++) { - usb_pause_mtx(&sc->sc_mtx, 4); - urtw_read8_m(sc, URTW_EPROM_CMD, &data8); - if (!(data8 & URTW_EPROM_CMD_CONFIG)) - break; - } - if (i >= 20) { - device_printf(sc->sc_dev, "eeprom reset timeout\n"); - goto fail; - } - fail: return (error); } static usb_error_t -urtw_write16_i(struct urtw_softc *sc, int val, uint16_t data, int idx) -{ - struct usb_device_request req; - - req.bmRequestType = UT_WRITE_VENDOR_DEVICE; - req.bRequest = URTW_8187_SETREGS_REQ; - USETW(req.wValue, val | 0xff00); - USETW(req.wIndex, idx & 0x3); - USETW(req.wLength, sizeof(uint16_t)); - - return (urtw_do_request(sc, &req, &data)); -} - -static usb_error_t urtw_do_request(struct urtw_softc *sc, struct usb_device_request *req, void *data) { @@ -1367,34 +1300,6 @@ return (err); } -static usb_error_t -urtw_write8_i(struct urtw_softc *sc, int val, uint8_t data, int idx) -{ - struct usb_device_request req; - - req.bmRequestType = UT_WRITE_VENDOR_DEVICE; - req.bRequest = URTW_8187_SETREGS_REQ; - USETW(req.wValue, val | 0xff00); - USETW(req.wIndex, idx & 0x3); - USETW(req.wLength, sizeof(uint8_t)); - - return (urtw_do_request(sc, &req, &data)); -} - -static usb_error_t -urtw_write32_i(struct urtw_softc *sc, int val, uint32_t data, int idx) -{ - struct usb_device_request req; - - req.bmRequestType = UT_WRITE_VENDOR_DEVICE; - req.bRequest = URTW_8187_SETREGS_REQ; - USETW(req.wValue, val | 0xff00); - USETW(req.wIndex, idx & 0x3); - USETW(req.wLength, sizeof(uint32_t)); - - return (urtw_do_request(sc, &req, &data)); -} - static void urtw_stop_locked(struct ifnet *ifp, int disable) { @@ -1534,6 +1439,7 @@ } sc->sc_txtimer = 5; + callout_reset(&sc->sc_watchdog_ch, hz, urtw_watchdog, sc); } URTW_UNLOCK(sc); } @@ -1733,14 +1639,12 @@ urtw_tx_start(struct urtw_softc *sc, struct ieee80211_node *ni, struct mbuf *m0, struct urtw_data *data, int prior) { - int xferlen; struct ifnet *ifp = sc->sc_ifp; struct ieee80211_frame *wh = mtod(m0, struct ieee80211_frame *); struct ieee80211_key *k; const struct ieee80211_txparam *tp; struct ieee80211com *ic = ifp->if_l2com; struct ieee80211vap *vap = ni->ni_vap; - struct urtw_8187b_txhdr *hdr; struct usb_xfer *rtl8187b_pipes[URTW_8187B_TXPIPE_MAX] = { sc->sc_xfer[URTW_8187B_BULK_TX_BE], sc->sc_xfer[URTW_8187B_BULK_TX_BK], @@ -1748,6 +1652,10 @@ sc->sc_xfer[URTW_8187B_BULK_TX_VO] }; struct usb_xfer *xfer; + int dur = 0, rtsdur = 0, rtsenable = 0, ctsenable = 0, rate, + pkttime = 0, txdur = 0, isshort = 0, xferlen; + uint16_t acktime, rtstime, ctstime; + uint32_t flags; usb_error_t error; URTW_ASSERT_LOCKED(sc); @@ -1780,60 +1688,107 @@ ieee80211_radiotap_tx(vap, m0); } + if ((wh->i_fc[10] & IEEE80211_FC0_TYPE_MASK) == IEEE80211_FC0_TYPE_MGT || + (wh->i_fc[0] & IEEE80211_FC0_TYPE_MASK) == IEEE80211_FC0_TYPE_CTL) { + tp = &vap->iv_txparms[ieee80211_chan2mode(ic->ic_curchan)]; + rate = tp->mgmtrate; + } else { + tp = &vap->iv_txparms[ieee80211_chan2mode(ni->ni_chan)]; + /* for data frames */ + if (IEEE80211_IS_MULTICAST(wh->i_addr1)) + rate = tp->mcastrate; + else if (tp->ucastrate != IEEE80211_FIXED_RATE_NONE) + rate = tp->ucastrate; + else + rate = urtw_rtl2rate(sc->sc_currate); + } + + if (IEEE80211_IS_MULTICAST(wh->i_addr1)) + txdur = pkttime = urtw_compute_txtime(m0->m_pkthdr.len + + IEEE80211_CRC_LEN, rate, 0, 0); + else { + acktime = urtw_compute_txtime(14, 2,0, 0); + if ((m0->m_pkthdr.len + 4) > vap->iv_rtsthreshold) { + rtsenable = 1; + ctsenable = 0; + rtstime = urtw_compute_txtime(URTW_ACKCTS_LEN, 2, 0, 0); + ctstime = urtw_compute_txtime(14, 2, 0, 0); + pkttime = urtw_compute_txtime(m0->m_pkthdr.len + + IEEE80211_CRC_LEN, rate, 0, isshort); + rtsdur = ctstime + pkttime + acktime + + 3 * URTW_ASIFS_TIME; + txdur = rtstime + rtsdur; + } else { + rtsenable = ctsenable = rtsdur = 0; + pkttime = urtw_compute_txtime(m0->m_pkthdr.len + + IEEE80211_CRC_LEN, rate, 0, isshort); + txdur = pkttime + URTW_ASIFS_TIME + acktime; + } + + if (wh->i_fc[1] & IEEE80211_FC1_MORE_FRAG) + dur = urtw_compute_txtime(m0->m_pkthdr.len + + IEEE80211_CRC_LEN, rate, 0, isshort) + + 3 * URTW_ASIFS_TIME + + 2 * acktime; + else + dur = URTW_ASIFS_TIME + acktime; + } + *(uint16_t *)wh->i_dur = htole16(dur); + xferlen = m0->m_pkthdr.len; xferlen += (sc->sc_flags & URTW_RTL8187B) ? (4 * 8) : (4 * 3); if ((0 == xferlen % 64) || (0 == xferlen % 512)) xferlen += 1; bzero(data->buf, URTW_TX_MAXSIZE); - data->buf[0] = m0->m_pkthdr.len & 0xff; - data->buf[1] = (m0->m_pkthdr.len & 0x0f00) >> 8; - data->buf[1] |= (1 << 7); - + flags = m0->m_pkthdr.len & 0xfff; + flags |= URTW_TX_FLAG_NO_ENC; if ((ic->ic_flags & IEEE80211_F_SHPREAMBLE) && (ni->ni_capinfo & IEEE80211_CAPINFO_SHORT_PREAMBLE) && (sc->sc_preamble_mode == URTW_PREAMBLE_MODE_SHORT) && (sc->sc_currate != 0)) - data->buf[2] |= 1; - if ((m0->m_pkthdr.len > vap->iv_rtsthreshold) && - prior == URTW_PRIORITY_LOW) { - device_printf(sc->sc_dev, "TODO tx.\n"); - return (EIO); - } + flags |= URTW_TX_FLAG_SPLCP; if (wh->i_fc[1] & IEEE80211_FC1_MORE_FRAG) - data->buf[2] |= (1 << 1); - /* RTS rate - 10 means we use a basic rate. */ - data->buf[2] |= (urtw_rate2rtl(2) << 3); - /* - * XXX currently TX rate control depends on the rate value of - * RX descriptor because I don't know how to we can control TX rate - * in more smart way. Please fix me you find a thing. - */ - data->buf[3] = sc->sc_currate; - if (prior == URTW_PRIORITY_NORMAL) { - tp = &vap->iv_txparms[ieee80211_chan2mode(ni->ni_chan)]; - if (IEEE80211_IS_MULTICAST(wh->i_addr1)) - data->buf[3] = urtw_rate2rtl(tp->mcastrate); - else if (tp->ucastrate != IEEE80211_FIXED_RATE_NONE) - data->buf[3] = urtw_rate2rtl(tp->ucastrate); - } + flags |= URTW_TX_FLAG_MOREFRAG; + + flags |= (sc->sc_currate & 0xf) << URTW_TX_FLAG_TXRATE_SHIFT; if (sc->sc_flags & URTW_RTL8187B) { - hdr = (struct urtw_8187b_txhdr *)data->buf; - hdr->rts_duration = 0; - hdr->len = 0; - hdr->retry = 3 | (7 << 4) | 11; - hdr->tx_duration = ieee80211_compute_duration(ic->ic_rt, - m0->m_pkthdr.len + IEEE80211_CRC_LEN, - urtw_rtl2rate(data->buf[3]), - (ic->ic_flags & IEEE80211_F_SHPREAMBLE) != 0); - /* XXX MUST fill another variables like rts_duration, tx_.. */ - m_copydata(m0, 0, m0->m_pkthdr.len, (uint8_t *)&data->buf[32]); + struct urtw_8187b_txhdr *tx; + + tx = (struct urtw_8187b_txhdr *)data->buf; + if (ctsenable) + flags |= URTW_TX_FLAG_CTS; + if (rtsenable) { + flags |= URTW_TX_FLAG_RTS; + flags |= (urtw_rate2rtl(11) & 0xf) << + URTW_TX_FLAG_RTSRATE_SHIFT; + tx->rtsdur = rtsdur; + } + tx->flag = htole32(flags); + tx->txdur = txdur; + if ((wh->i_fc[0] & IEEE80211_FC0_TYPE_MASK) == + IEEE80211_FC0_TYPE_MGT && + (wh->i_fc[0] & IEEE80211_FC0_SUBTYPE_MASK) == + IEEE80211_FC0_SUBTYPE_PROBE_RESP) + tx->retry = 1; + else + tx->retry = URTW_TX_MAXRETRY; + m_copydata(m0, 0, m0->m_pkthdr.len, (uint8_t *)(tx + 1)); } else { - data->buf[8] = 3; /* CW minimum */ - data->buf[8] |= (7 << 4); /* CW maximum */ - data->buf[9] |= 11; /* retry limitation */ - m_copydata(m0, 0, m0->m_pkthdr.len, (uint8_t *)&data->buf[12]); + struct urtw_8187l_txhdr *tx; + + tx = (struct urtw_8187l_txhdr *)data->buf; + if (rtsenable) { + flags |= URTW_TX_FLAG_RTS; + tx->rtsdur = rtsdur; + } + flags |= (urtw_rate2rtl(11) & 0xf) << URTW_TX_FLAG_RTSRATE_SHIFT; + tx->flag = htole32(flags); + tx->retry = 3; /* CW minimum */ + tx->retry = 7 << 4; /* CW maximum */ + tx->retry = URTW_TX_MAXRETRY << 8; /* retry limitation */ + m_copydata(m0, 0, m0->m_pkthdr.len, (uint8_t *)(tx + 1)); } data->buflen = xferlen; @@ -2054,8 +2009,8 @@ req.bmRequestType = UT_READ_VENDOR_DEVICE; req.bRequest = URTW_8187_GETREGS_REQ; - USETW(req.wValue, val | 0xff00); - USETW(req.wIndex, 0); + USETW(req.wValue, (val & 0xff) | 0xff00); + USETW(req.wIndex, (val >> 8) & 0x3); USETW(req.wLength, sizeof(uint8_t)); error = urtw_do_request(sc, &req, data); @@ -2072,8 +2027,8 @@ req.bmRequestType = UT_READ_VENDOR_DEVICE; req.bRequest = URTW_8187_GETREGS_REQ; - USETW(req.wValue, val | 0xff00); - USETW(req.wIndex, 0); + USETW(req.wValue, (val & 0xff) | 0xff00); + USETW(req.wIndex, (val >> 8) & 0x3); USETW(req.wLength, sizeof(uint16_t)); error = urtw_do_request(sc, &req, data); @@ -2090,8 +2045,8 @@ req.bmRequestType = UT_READ_VENDOR_DEVICE; req.bRequest = URTW_8187_GETREGS_REQ; - USETW(req.wValue, val | 0xff00); - USETW(req.wIndex, 0); + USETW(req.wValue, (val & 0xff) | 0xff00); + USETW(req.wIndex, (val >> 8) & 0x3); USETW(req.wLength, sizeof(uint32_t)); error = urtw_do_request(sc, &req, data); @@ -2107,8 +2062,8 @@ req.bmRequestType = UT_WRITE_VENDOR_DEVICE; req.bRequest = URTW_8187_SETREGS_REQ; - USETW(req.wValue, val | 0xff00); - USETW(req.wIndex, 0); + USETW(req.wValue, (val & 0xff) | 0xff00); + USETW(req.wIndex, (val >> 8) & 0x3); USETW(req.wLength, sizeof(uint8_t)); return (urtw_do_request(sc, &req, &data)); @@ -2123,8 +2078,8 @@ req.bmRequestType = UT_WRITE_VENDOR_DEVICE; req.bRequest = URTW_8187_SETREGS_REQ; - USETW(req.wValue, val | 0xff00); - USETW(req.wIndex, 0); + USETW(req.wValue, (val & 0xff) | 0xff00); + USETW(req.wIndex, (val >> 8) & 0x3); USETW(req.wLength, sizeof(uint16_t)); return (urtw_do_request(sc, &req, &data)); >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Mon Oct 19 16:21:54 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id EEC7010656AB; Mon, 19 Oct 2009 16:21:53 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A6FAE1065692 for ; Mon, 19 Oct 2009 16:21:53 +0000 (UTC) (envelope-from stas@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 94A758FC12 for ; Mon, 19 Oct 2009 16:21:53 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n9JGLrvN080294 for ; Mon, 19 Oct 2009 16:21:53 GMT (envelope-from stas@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n9JGLrPH080292 for perforce@freebsd.org; Mon, 19 Oct 2009 16:21:53 GMT (envelope-from stas@freebsd.org) Date: Mon, 19 Oct 2009 16:21:53 GMT Message-Id: <200910191621.n9JGLrPH080292@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to stas@freebsd.org using -f From: Stanislav Sedov To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 169600 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 19 Oct 2009 16:21:54 -0000 http://p4web.freebsd.org/chv.cgi?CH=169600 Change 169600 by stas@stas_yandex on 2009/10/19 16:21:39 - Partially workaround signal source detection. - Do not set SIGINFO flag on SIG_IGN and SIF_DFL. Affected files ... .. //depot/projects/valgrind/coregrind/m_signals.c#15 edit Differences ... ==== //depot/projects/valgrind/coregrind/m_signals.c#15 (text+ko) ==== @@ -747,7 +747,8 @@ /* We don't set a signal stack, so ignore */ /* always ask for SA_SIGINFO */ - skss_flags |= VKI_SA_SIGINFO; + if (skss_handler != VKI_SIG_IGN && skss_handler != VKI_SIG_DFL) + skss_flags |= VKI_SA_SIGINFO; #ifdef VGO_linux /* use our own restorer */ @@ -1407,7 +1408,11 @@ // them. return ( si_code > VKI_SI_USER ? True : False ); #elif defined(VGO_freebsd) - return ( (si_code & VKI_SI_USER) == 0 ? True : False ); + // It looks like there's no reliable way to say where the signal came from + if (VG_(threads)[tid].status == VgTs_WaitSys) { + return False; + } else + return True; #elif defined(VGO_darwin) // On Darwin 9.6.0, the si_code is completely unreliable. It should be the // case that 0 means "user", and >0 means "kernel". But: From owner-p4-projects@FreeBSD.ORG Mon Oct 19 16:24:57 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 5FFDA1065694; Mon, 19 Oct 2009 16:24:57 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 214F1106566B for ; Mon, 19 Oct 2009 16:24:57 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 0E07B8FC12 for ; Mon, 19 Oct 2009 16:24:57 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n9JGOuuH080463 for ; Mon, 19 Oct 2009 16:24:56 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n9JGOumf080461 for perforce@freebsd.org; Mon, 19 Oct 2009 16:24:56 GMT (envelope-from hselasky@FreeBSD.org) Date: Mon, 19 Oct 2009 16:24:56 GMT Message-Id: <200910191624.n9JGOumf080461@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 169601 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 19 Oct 2009 16:24:57 -0000 http://p4web.freebsd.org/chv.cgi?CH=169601 Change 169601 by hselasky@hselasky_laptop001 on 2009/10/19 16:24:34 USB CORE: - make core debugging parameters tunable - patch from: Andriy Gapon Affected files ... .. //depot/projects/usb/src/sys/dev/usb/controller/ehci.c#38 edit .. //depot/projects/usb/src/sys/dev/usb/controller/ohci.c#30 edit .. //depot/projects/usb/src/sys/dev/usb/controller/uhci.c#28 edit .. //depot/projects/usb/src/sys/dev/usb/input/ukbd.c#36 edit .. //depot/projects/usb/src/sys/dev/usb/storage/umass.c#35 edit .. //depot/projects/usb/src/sys/dev/usb/usb_debug.c#11 edit .. //depot/projects/usb/src/sys/dev/usb/usb_dev.c#38 edit .. //depot/projects/usb/src/sys/dev/usb/usb_generic.c#23 edit .. //depot/projects/usb/src/sys/dev/usb/usb_hub.c#35 edit .. //depot/projects/usb/src/sys/dev/usb/usb_process.c#14 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb/controller/ehci.c#38 (text+ko) ==== @@ -99,6 +99,9 @@ SYSCTL_INT(_hw_usb_ehci, OID_AUTO, no_hs, CTLFLAG_RW, &ehcinohighspeed, 0, "Disable High Speed USB"); +TUNABLE_INT("hw.usb.ehci.debug", &ehcidebug); +TUNABLE_INT("hw.usb.ehci.no_hs", &ehcinohighspeed); + static void ehci_dump_regs(ehci_softc_t *sc); static void ehci_dump_sqh(ehci_softc_t *sc, ehci_qh_t *sqh); ==== //depot/projects/usb/src/sys/dev/usb/controller/ohci.c#30 (text+ko) ==== @@ -84,6 +84,9 @@ SYSCTL_NODE(_hw_usb, OID_AUTO, ohci, CTLFLAG_RW, 0, "USB ohci"); SYSCTL_INT(_hw_usb_ohci, OID_AUTO, debug, CTLFLAG_RW, &ohcidebug, 0, "ohci debug level"); + +TUNABLE_INT("hw.usb.ohci.debug", &ohcidebug); + static void ohci_dumpregs(ohci_softc_t *); static void ohci_dump_tds(ohci_td_t *); static uint8_t ohci_dump_td(ohci_td_t *); ==== //depot/projects/usb/src/sys/dev/usb/controller/uhci.c#28 (text+ko) ==== @@ -91,6 +91,10 @@ &uhcidebug, 0, "uhci debug level"); SYSCTL_INT(_hw_usb_uhci, OID_AUTO, loop, CTLFLAG_RW, &uhcinoloop, 0, "uhci noloop"); + +TUNABLE_INT("hw.usb.uhci.debug", &uhcidebug); +TUNABLE_INT("hw.usb.uhci.loop", &uhcinoloop); + static void uhci_dumpregs(uhci_softc_t *sc); static void uhci_dump_tds(uhci_td_t *td); ==== //depot/projects/usb/src/sys/dev/usb/input/ukbd.c#36 (text+ko) ==== @@ -105,6 +105,8 @@ SYSCTL_INT(_hw_usb_ukbd, OID_AUTO, no_leds, CTLFLAG_RW, &ukbd_no_leds, 0, "Disables setting of keyboard leds"); +TUNABLE_INT("hw.usb.ukbd.debug", &ukbd_debug); +TUNABLE_INT("hw.usb.ukbd.no_leds", &ukbd_no_leds); #endif #define UPROTO_BOOT_KEYBOARD 1 ==== //depot/projects/usb/src/sys/dev/usb/storage/umass.c#35 (text+ko) ==== @@ -175,6 +175,8 @@ SYSCTL_NODE(_hw_usb, OID_AUTO, umass, CTLFLAG_RW, 0, "USB umass"); SYSCTL_INT(_hw_usb_umass, OID_AUTO, debug, CTLFLAG_RW, &umass_debug, 0, "umass debug level"); + +TUNABLE_INT("hw.usb.umass.debug", &umass_debug); #else #define DIF(...) do { } while (0) #define DPRINTF(...) do { } while (0) ==== //depot/projects/usb/src/sys/dev/usb/usb_debug.c#11 (text+ko) ==== @@ -67,6 +67,8 @@ SYSCTL_INT(_hw_usb, OID_AUTO, debug, CTLFLAG_RW, &usb_debug, 0, "Debug level"); +TUNABLE_INT("hw.usb.debug", &usb_debug); + /*------------------------------------------------------------------------* * usb_dump_iface * ==== //depot/projects/usb/src/sys/dev/usb/usb_dev.c#38 (text+ko) ==== @@ -85,6 +85,8 @@ SYSCTL_NODE(_hw_usb, OID_AUTO, dev, CTLFLAG_RW, 0, "USB device"); SYSCTL_INT(_hw_usb_dev, OID_AUTO, debug, CTLFLAG_RW, &usb_fifo_debug, 0, "Debug Level"); + +TUNABLE_INT("hw.usb.dev.debug", &usb_fifo_debug); #endif #if ((__FreeBSD_version >= 700001) || (__FreeBSD_version == 0) || \ ==== //depot/projects/usb/src/sys/dev/usb/usb_generic.c#23 (text+ko) ==== @@ -130,6 +130,8 @@ SYSCTL_NODE(_hw_usb, OID_AUTO, ugen, CTLFLAG_RW, 0, "USB generic"); SYSCTL_INT(_hw_usb_ugen, OID_AUTO, debug, CTLFLAG_RW, &ugen_debug, 0, "Debug level"); + +TUNABLE_INT("hw.usb.ugen.debug", &ugen_debug); #endif ==== //depot/projects/usb/src/sys/dev/usb/usb_hub.c#35 (text+ko) ==== @@ -79,6 +79,8 @@ SYSCTL_NODE(_hw_usb, OID_AUTO, uhub, CTLFLAG_RW, 0, "USB HUB"); SYSCTL_INT(_hw_usb_uhub, OID_AUTO, debug, CTLFLAG_RW, &uhub_debug, 0, "Debug level"); + +TUNABLE_INT("hw.usb.uhub.debug", &uhub_debug); #endif #if USB_HAVE_POWERD ==== //depot/projects/usb/src/sys/dev/usb/usb_process.c#14 (text+ko) ==== @@ -83,6 +83,8 @@ SYSCTL_NODE(_hw_usb, OID_AUTO, proc, CTLFLAG_RW, 0, "USB process"); SYSCTL_INT(_hw_usb_proc, OID_AUTO, debug, CTLFLAG_RW, &usb_proc_debug, 0, "Debug level"); + +TUNABLE_INT("hw.usb.proc.debug", &usb_proc_debug); #endif /*------------------------------------------------------------------------* From owner-p4-projects@FreeBSD.ORG Mon Oct 19 18:38:18 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E77AC1065676; Mon, 19 Oct 2009 18:38:17 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id AB88E106566C for ; Mon, 19 Oct 2009 18:38:17 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 800EA8FC13 for ; Mon, 19 Oct 2009 18:38:17 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n9JIcHDV000741 for ; Mon, 19 Oct 2009 18:38:17 GMT (envelope-from trasz@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n9JIcHo6000739 for perforce@freebsd.org; Mon, 19 Oct 2009 18:38:17 GMT (envelope-from trasz@freebsd.org) Date: Mon, 19 Oct 2009 18:38:17 GMT Message-Id: <200910191838.n9JIcHo6000739@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to trasz@freebsd.org using -f From: Edward Tomasz Napierala To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 169603 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 19 Oct 2009 18:38:18 -0000 http://p4web.freebsd.org/chv.cgi?CH=169603 Change 169603 by trasz@trasz_victim on 2009/10/19 18:38:00 Fix comments and HRL_HC_PARENTS_MAX value. Affected files ... .. //depot/projects/soc2009/trasz_limits/sys/sys/hrl.h#40 edit Differences ... ==== //depot/projects/soc2009/trasz_limits/sys/sys/hrl.h#40 (text+ko) ==== @@ -63,7 +63,7 @@ */ struct hrl_rule { int hr_subject_type; -#if 1 +#ifdef DIAGNOSTIC struct { #else union { @@ -123,20 +123,28 @@ #define HRL_AMOUNT_UNDEFINED -1 -#define HRL_HC_PARENTS_MAX 32 +/* + * Processes may have at most three parent containers - prison, uidinfo, + * and loginclass. Other subjects have less - struct prison may have only + * one parent container, loginclass and uidinfo structures have none. + * This may change when - and if - we add per-group resource limits. + */ +#define HRL_HC_PARENTS_MAX 3 /* * 'hrl_container' defines resource consumption for a particular * subject, such as process or jail. Containers form a graph - each * container has zero or more subcontainers and zero or more * "containing" containers (parents). For example, container for - * an uidinfo can have several subcontainers for processes for that + * an uidinfo can have several subcontainers for processes of that * user. On the other hand, each process can have several containing - * containers, one per every group this process belongs to. + * containers - one for jail the process is in, one for the user, + * one for every group this process belongs to (note that per-group + * limits are not implemented yet). * * Every process has exactly one container assigned to it. Containers - * for other objects are created when there is a rule which requires it. - * For example, uidinfo will have container assigned only if there + * for other objects are initialized when there is a rule which requires + * it. For example, uidinfo will have container assigned only if there * is a rule this uidinfo is subject to, and 'hr_per' for this rule * is HRL_SUBJECT_TYPE_USER. */ @@ -146,7 +154,7 @@ }; /* - * 'hrl_limit' connects rule with every subject it's related to. + * 'hrl_limit' connects a rule with every subject it's related to. * For example, rule 'user:X:openfiles:deny=N/process' is linked * with uidinfo for user X, and to each process of that user. */ From owner-p4-projects@FreeBSD.ORG Mon Oct 19 19:59:39 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 081F01065676; Mon, 19 Oct 2009 19:59:39 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C0B621065670 for ; Mon, 19 Oct 2009 19:59:38 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id AF5268FC1D for ; Mon, 19 Oct 2009 19:59:38 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n9JJxcnD006664 for ; Mon, 19 Oct 2009 19:59:38 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n9JJxc9i006662 for perforce@freebsd.org; Mon, 19 Oct 2009 19:59:38 GMT (envelope-from hselasky@FreeBSD.org) Date: Mon, 19 Oct 2009 19:59:38 GMT Message-Id: <200910191959.n9JJxc9i006662@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 169605 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 19 Oct 2009 19:59:39 -0000 http://p4web.freebsd.org/chv.cgi?CH=169605 Change 169605 by hselasky@hselasky_laptop001 on 2009/10/19 19:59:35 LibUSB: - clamp timeout variable in user-space aswell as in kernel-space, so that large timeouts get the maximum timeout. Affected files ... .. //depot/projects/usb/src/lib/libusb/libusb20_ugen20.c#8 edit Differences ... ==== //depot/projects/usb/src/lib/libusb/libusb20_ugen20.c#8 (text+ko) ==== @@ -800,7 +800,11 @@ if (xfer->flags & LIBUSB20_TRANSFER_DO_CLEAR_STALL) { fsep->flags |= USB_FS_FLAG_CLEAR_STALL; } - fsep->timeout = xfer->timeout; + /* NOTE: The "fsep->timeout" variable is 16-bit. */ + if (xfer->timeout > 65535) + fsep->timeout = 65535; + else + fsep->timeout = xfer->timeout; temp.ep_index = xfer->trIndex; From owner-p4-projects@FreeBSD.ORG Mon Oct 19 21:56:50 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 1EC9B10656B9; Mon, 19 Oct 2009 21:56:50 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A1F51106568B for ; Mon, 19 Oct 2009 21:56:49 +0000 (UTC) (envelope-from thompsa@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 7618F8FC1C for ; Mon, 19 Oct 2009 21:56:49 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n9JLun4E027364 for ; Mon, 19 Oct 2009 21:56:49 GMT (envelope-from thompsa@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n9JLun5Z027362 for perforce@freebsd.org; Mon, 19 Oct 2009 21:56:49 GMT (envelope-from thompsa@freebsd.org) Date: Mon, 19 Oct 2009 21:56:49 GMT Message-Id: <200910192156.n9JLun5Z027362@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to thompsa@freebsd.org using -f From: Andrew Thompson To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 169609 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 19 Oct 2009 21:56:50 -0000 http://p4web.freebsd.org/chv.cgi?CH=169609 Change 169609 by thompsa@thompsa_burger on 2009/10/19 21:56:18 uch341.c is now dead. Affected files ... .. //depot/projects/usb/src/sys/dev/usb/serial/uch341.c#5 delete Differences ... From owner-p4-projects@FreeBSD.ORG Tue Oct 20 11:15:08 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 589881065692; Tue, 20 Oct 2009 11:15:08 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id EC68E10656A3 for ; Tue, 20 Oct 2009 11:15:07 +0000 (UTC) (envelope-from rene@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id DA8ED8FC2E for ; Tue, 20 Oct 2009 11:15:07 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n9KBF7nT036812 for ; Tue, 20 Oct 2009 11:15:07 GMT (envelope-from rene@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n9KBF7Wj036810 for perforce@freebsd.org; Tue, 20 Oct 2009 11:15:07 GMT (envelope-from rene@FreeBSD.org) Date: Tue, 20 Oct 2009 11:15:07 GMT Message-Id: <200910201115.n9KBF7Wj036810@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to rene@FreeBSD.org using -f From: Rene Ladan To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 169617 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 20 Oct 2009 11:15:08 -0000 http://p4web.freebsd.org/chv.cgi?CH=169617 Change 169617 by rene@rene_self on 2009/10/20 11:15:01 IFC Affected files ... .. //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/printing/chapter.sgml#4 integrate .. //depot/projects/docproj_nl/www/en/internal/Makefile#2 integrate .. //depot/projects/docproj_nl/www/en/internal/i18n.sgml#1 branch .. //depot/projects/docproj_nl/www/en/internal/policies.sgml#2 integrate .. //depot/projects/docproj_nl/www/nl/administration.sgml#12 integrate Differences ... ==== //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/printing/chapter.sgml#4 (text+ko) ==== @@ -1,7 +1,7 @@ @@ -4555,6 +4555,23 @@ url="http://www.cups.org/">. + + + HPLIP + + HPLIP + + HPLIP, the HP &linux; Imaging and + Printing system, is an HP-developed suite of programs that + supports printing, scanning and fax facilities for HP appliances. + This suite of programs utilizes + the CUPS printing system as a backend + for some of its printing features. + + The main site for HPLIP + is . + + ==== //depot/projects/docproj_nl/www/en/internal/Makefile#2 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: www/en/internal/Makefile,v 1.47 2007/02/18 12:40:45 simon Exp $ +# $FreeBSD: www/en/internal/Makefile,v 1.48 2009/10/19 07:26:46 murray Exp $ .if exists(../Makefile.conf) .include "../Makefile.conf" @@ -22,6 +22,7 @@ DOCS+= doceng.sgml DOCS+= policies.sgml DOCS+= fortunes.sgml +DOCS+= i18n.sgml INDEXLINK= internal.html ==== //depot/projects/docproj_nl/www/en/internal/policies.sgml#2 (text+ko) ==== @@ -1,6 +1,6 @@ - + ]> @@ -38,6 +38,7 @@ Core's Voting Procedures, the Fortune File Policy, +Internationalization Policy, and the Problem Report Handling Guidelines.

    ==== //depot/projects/docproj_nl/www/nl/administration.sgml#12 (text+ko) ==== @@ -1,5 +1,5 @@ + %developers; From owner-p4-projects@FreeBSD.ORG Tue Oct 20 15:51:46 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id DD90110656A8; Tue, 20 Oct 2009 15:51:45 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 91FA91065676 for ; Tue, 20 Oct 2009 15:51:45 +0000 (UTC) (envelope-from gk@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 4823D8FC0A for ; Tue, 20 Oct 2009 15:51:44 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n9KFphi7068420 for ; Tue, 20 Oct 2009 15:51:43 GMT (envelope-from gk@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n9KFphrm068418 for perforce@freebsd.org; Tue, 20 Oct 2009 15:51:43 GMT (envelope-from gk@FreeBSD.org) Date: Tue, 20 Oct 2009 15:51:43 GMT Message-Id: <200910201551.n9KFphrm068418@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gk@FreeBSD.org using -f From: Gleb Kurtsou To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 169618 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 20 Oct 2009 15:51:46 -0000 http://p4web.freebsd.org/chv.cgi?CH=169618 Change 169618 by gk@gk_h1 on 2009/10/20 15:51:26 enable dircache for pefs_enccn_get move salsa20 into crypto module move hmac implementation from g_eli to crypto/hmac/hmac_sha512 add passphrase length argument to g_eli pkcs5v2_genkey Affected files ... .. //depot/projects/soc2009/gk_pefs/sbin/pefs/Makefile#6 edit .. //depot/projects/soc2009/gk_pefs/sbin/pefs/pefs_key.c#9 edit .. //depot/projects/soc2009/gk_pefs/sys/crypto/hmac/hmac_sha512.c#1 add .. //depot/projects/soc2009/gk_pefs/sys/crypto/hmac/hmac_sha512.h#1 add .. //depot/projects/soc2009/gk_pefs/sys/crypto/salsa20/salsa20.c#4 edit .. //depot/projects/soc2009/gk_pefs/sys/crypto/salsa20/salsa20.h#3 edit .. //depot/projects/soc2009/gk_pefs/sys/fs/pefs/pefs_crypto.c#17 edit .. //depot/projects/soc2009/gk_pefs/sys/fs/pefs/pefs_vfsops.c#14 edit .. //depot/projects/soc2009/gk_pefs/sys/fs/pefs/pefs_vnops.c#25 edit Differences ... ==== //depot/projects/soc2009/gk_pefs/sbin/pefs/Makefile#6 (text+ko) ==== @@ -2,13 +2,13 @@ MOUNT= ${.CURDIR}/../mount SYS= ${.CURDIR}/../../sys -.PATH: ${MOUNT} ${SYS}/geom/eli ${SYS}/crypto/sha2 +.PATH: ${MOUNT} ${SYS}/geom/eli ${SYS}/crypto/hmac ${SYS}/crypto/sha2 PROG= pefs SRCS= pefs_ctl.c pefs_key.c pefs_keychain.c pefs_mount.c SRCS+= getmntopts.c -SRCS+= g_eli_crypto.c sha2.c -SRCS+= pkcs5v2-x.c # Should patch original pkcs5v2.c instead +SRCS+= hmac_sha512.c sha2.c +SRCS+= pkcs5v2.c LINKS= ${BINDIR}/pefs ${BINDIR}/mount_pefs NO_MAN= ==== //depot/projects/soc2009/gk_pefs/sbin/pefs/pefs_key.c#9 (text+ko) ==== @@ -28,6 +28,7 @@ __FBSDID("$FreeBSD$"); #include +#include #include #include #include @@ -39,13 +40,13 @@ #include #include -#include +#include #include +#include #include #include "pefs_ctl.h" -#include "pkcs5v2-x.h" #define PEFS_KEY_PROMPT_DEFAULT "passphrase" @@ -126,7 +127,7 @@ pefs_key_get(struct pefs_xkey *xk, const char *prompt, int verify, struct pefs_keyparam *kp) { - struct hmac_ctx ctx; + struct hmac_sha512_ctx ctx; char promptbuf[64], buf[BUFSIZ], buf2[BUFSIZ], *p; ssize_t done; int fd, i; @@ -143,7 +144,7 @@ } } - g_eli_crypto_hmac_init(&ctx, NULL, 0); + hmac_sha512_init(&ctx, NULL, 0); if (kp->kp_keyfile != NULL && kp->kp_keyfile[0] == '\0') kp->kp_keyfile = NULL; @@ -161,7 +162,7 @@ kp->kp_keyfile); } while ((done = read(fd, buf, sizeof(buf))) > 0) - g_eli_crypto_hmac_update(&ctx, buf, done); + hmac_sha512_update(&ctx, buf, done); bzero(buf, sizeof(buf)); if (done == -1) err(EX_IOERR, "cannot read keyfile %s", kp->kp_keyfile); @@ -192,20 +193,20 @@ } bzero(buf2, sizeof(buf2)); if (kp->kp_iterations == 0) { - g_eli_crypto_hmac_update(&ctx, buf, strlen(buf)); + hmac_sha512_update(&ctx, buf, strlen(buf)); } else { pkcs5v2_genkey(xk->pxk_key, PEFS_KEY_SIZE, buf, 0, buf, strlen(buf), kp->kp_iterations); - g_eli_crypto_hmac_update(&ctx, xk->pxk_key, + hmac_sha512_update(&ctx, xk->pxk_key, PEFS_KEY_SIZE); } bzero(buf, sizeof(buf)); } - g_eli_crypto_hmac_final(&ctx, xk->pxk_key, PEFS_KEY_SIZE); + hmac_sha512_final(&ctx, xk->pxk_key, PEFS_KEY_SIZE); - g_eli_crypto_hmac_init(&ctx, xk->pxk_key, PEFS_KEY_SIZE); - g_eli_crypto_hmac_update(&ctx, "", 8); - g_eli_crypto_hmac_final(&ctx, xk->pxk_keyid, PEFS_KEYID_SIZE); + hmac_sha512_init(&ctx, xk->pxk_key, PEFS_KEY_SIZE); + hmac_sha512_update(&ctx, "", 8); + hmac_sha512_final(&ctx, xk->pxk_keyid, PEFS_KEYID_SIZE); return (0); } @@ -216,7 +217,7 @@ { const int keysize = 128 / 8; const int datasize = sizeof(struct pefs_xkeyenc) - PEFS_KEYENC_MAC_SIZE; - struct hmac_ctx hmac_ctx; + struct hmac_sha512_ctx hmac_ctx; u_char *data = (u_char *) xe; EVP_CIPHER_CTX ctx; u_char key[keysize]; @@ -226,10 +227,10 @@ pkcs5v2_genkey(key, keysize, xk_parent->pxk_keyid, PEFS_KEYID_SIZE, xk_parent->pxk_key, PEFS_KEY_SIZE, PEFS_KEYENC_ITERATIONS); - g_eli_crypto_hmac_init(&hmac_ctx, key, keysize); + hmac_sha512_init(&hmac_ctx, key, keysize); if (!enc) { - g_eli_crypto_hmac_update(&hmac_ctx, data, datasize); - g_eli_crypto_hmac_final(&hmac_ctx, mac, PEFS_KEYENC_MAC_SIZE); + hmac_sha512_update(&hmac_ctx, data, datasize); + hmac_sha512_final(&hmac_ctx, mac, PEFS_KEYENC_MAC_SIZE); bzero(&hmac_ctx, sizeof(hmac_ctx)); if (memcmp(mac, xe->mac, PEFS_KEYENC_MAC_SIZE) != 0) return (-1); @@ -257,8 +258,8 @@ EVP_CIPHER_CTX_cleanup(&ctx); if (enc) { - g_eli_crypto_hmac_update(&hmac_ctx, data, datasize); - g_eli_crypto_hmac_final(&hmac_ctx, xe->mac, + hmac_sha512_update(&hmac_ctx, data, datasize); + hmac_sha512_final(&hmac_ctx, xe->mac, PEFS_KEYENC_MAC_SIZE); bzero(&hmac_ctx, sizeof(hmac_ctx)); } ==== //depot/projects/soc2009/gk_pefs/sys/crypto/salsa20/salsa20.c#4 (text+ko) ==== @@ -192,7 +192,8 @@ if (__predict_false(!x->j[8])) { x->j[9] = PLUSONE(x->j[9]); /* - * stopping at 2^70 bytes per nonce is user's responsibility + * stopping at 2^70 bytes per nonce is user's + * responsibility */ } ==== //depot/projects/soc2009/gk_pefs/sys/crypto/salsa20/salsa20.h#3 (text+ko) ==== @@ -4,8 +4,8 @@ * Public domain. */ -#ifndef _SALSA20_H -#define _SALSA20_H +#ifndef _SYS_CRYPTO_SALSA20_H +#define _SYS_CRYPTO_SALSA20_H #define SALSA20_MAXKEYSIZE 256 #define SALSA20_IVSIZE 64 ==== //depot/projects/soc2009/gk_pefs/sys/fs/pefs/pefs_crypto.c#17 (text+ko) ==== @@ -41,11 +41,11 @@ #include #include +#include #include #include #include -#include #include #define PEFS_CTR_BLOCK_SIZE 16 @@ -82,7 +82,7 @@ camellia_ctx pctx_camellia; rijndael_ctx pctx_aes; salsa20_ctx pctx_salsa; - struct pefs_hmac_ctx pctx_hmac; + struct hmac_sha512_ctx pctx_hmac; vmac_ctx_t pctx_vmac; } o; }; @@ -193,30 +193,30 @@ idx = 1; bzero(key, PEFS_KEY_SIZE); - pefs_hmac_init(&ctx->o.pctx_hmac, masterkey, PEFS_KEY_SIZE); - pefs_hmac_update(&ctx->o.pctx_hmac, key, PEFS_KEY_SIZE); - pefs_hmac_update(&ctx->o.pctx_hmac, magic_ctxinfo_data_key, + hmac_sha512_init(&ctx->o.pctx_hmac, masterkey, PEFS_KEY_SIZE); + hmac_sha512_update(&ctx->o.pctx_hmac, key, PEFS_KEY_SIZE); + hmac_sha512_update(&ctx->o.pctx_hmac, magic_ctxinfo_data_key, PEFS_TWEAK_SIZE); - pefs_hmac_update(&ctx->o.pctx_hmac, &idx, sizeof(idx)); - pefs_hmac_final(&ctx->o.pctx_hmac, key, PEFS_KEY_SIZE); + hmac_sha512_update(&ctx->o.pctx_hmac, &idx, sizeof(idx)); + hmac_sha512_final(&ctx->o.pctx_hmac, key, PEFS_KEY_SIZE); pk->pk_alg->pa_keysetup(pk->pk_data_ctx, key, pk->pk_keybits); idx = 2; - pefs_hmac_init(&ctx->o.pctx_hmac, masterkey, PEFS_KEY_SIZE); - pefs_hmac_update(&ctx->o.pctx_hmac, key, PEFS_KEY_SIZE); - pefs_hmac_update(&ctx->o.pctx_hmac, magic_ctxinfo_name_key, + hmac_sha512_init(&ctx->o.pctx_hmac, masterkey, PEFS_KEY_SIZE); + hmac_sha512_update(&ctx->o.pctx_hmac, key, PEFS_KEY_SIZE); + hmac_sha512_update(&ctx->o.pctx_hmac, magic_ctxinfo_name_key, PEFS_TWEAK_SIZE); - pefs_hmac_update(&ctx->o.pctx_hmac, &idx, sizeof(idx)); - pefs_hmac_final(&ctx->o.pctx_hmac, key, PEFS_KEY_SIZE); + hmac_sha512_update(&ctx->o.pctx_hmac, &idx, sizeof(idx)); + hmac_sha512_final(&ctx->o.pctx_hmac, key, PEFS_KEY_SIZE); pefs_aes_keysetup(pk->pk_name_ctx, key, 128); idx = 3; - pefs_hmac_init(&ctx->o.pctx_hmac, masterkey, PEFS_KEY_SIZE); - pefs_hmac_update(&ctx->o.pctx_hmac, key, PEFS_KEY_SIZE); - pefs_hmac_update(&ctx->o.pctx_hmac, magic_ctxinfo_name_key, + hmac_sha512_init(&ctx->o.pctx_hmac, masterkey, PEFS_KEY_SIZE); + hmac_sha512_update(&ctx->o.pctx_hmac, key, PEFS_KEY_SIZE); + hmac_sha512_update(&ctx->o.pctx_hmac, magic_ctxinfo_name_key, PEFS_TWEAK_SIZE); - pefs_hmac_update(&ctx->o.pctx_hmac, &idx, sizeof(idx)); - pefs_hmac_final(&ctx->o.pctx_hmac, key, PEFS_KEY_SIZE); + hmac_sha512_update(&ctx->o.pctx_hmac, &idx, sizeof(idx)); + hmac_sha512_final(&ctx->o.pctx_hmac, key, PEFS_KEY_SIZE); vmac_set_key(key, &pk->pk_name_csum_ctx->o.pctx_vmac); pefs_ctx_free(ctx); ==== //depot/projects/soc2009/gk_pefs/sys/fs/pefs/pefs_vfsops.c#14 (text+ko) ==== @@ -324,5 +324,4 @@ VFS_SET(pefs_vfsops, pefs, VFCF_LOOPBACK); MODULE_DEPEND(pefs, crypto, 1, 1, 1); -MODULE_DEPEND(pefs, salsa20, 1, 1, 1); ==== //depot/projects/soc2009/gk_pefs/sys/fs/pefs/pefs_vnops.c#25 (text+ko) ==== @@ -112,6 +112,18 @@ return (va.va_gen); } +static inline int +pefs_tkey_cmp(struct pefs_tkey *a, struct pefs_tkey *b) +{ + int r; + + r = (intptr_t)a->ptk_key - (intptr_t)b->ptk_key; + if (r == 0) + r = memcmp(a->ptk_tweak, b->ptk_tweak, PEFS_TWEAK_SIZE); + + return (r); +} + static struct pefs_dircache_entry * pefs_cache_dirent(struct pefs_dircache *pd, struct dirent *de, struct pefs_ctx *ctx, struct pefs_key *pk) @@ -349,10 +361,12 @@ } static int -pefs_enccn_get(struct pefs_enccn *pec, struct vnode *vp, +pefs_enccn_get(struct pefs_enccn *pec, struct vnode *dvp, struct vnode *vp, struct componentname *cnp) { + struct pefs_node *dpn = VP_TO_PN(dvp); struct pefs_node *pn = VP_TO_PN(vp); + struct pefs_dircache_entry *cache; int error; if ((pn->pn_flags & PN_HASKEY) == 0) { @@ -361,6 +375,21 @@ return (0); } + if (pefs_dircache_enable) { + pefs_dircache_lock(dpn->pn_dircache); + /* Do not check if cache valid check keys are equal instead */ + cache = pefs_dircache_lookup(dpn->pn_dircache, + cnp->cn_nameptr, cnp->cn_namelen); + if (cache != NULL && + pefs_tkey_cmp(&cache->pde_tkey, &pn->pn_tkey) == 0) { + pefs_enccn_set(pec, &pn->pn_tkey, + cache->pde_encname, cache->pde_encnamelen, cnp); + pefs_dircache_unlock(dpn->pn_dircache); + return (0); + } + pefs_dircache_unlock(dpn->pn_dircache); + } + error = pefs_enccn_create(pec, pn->pn_tkey.ptk_key, pn->pn_tkey.ptk_tweak, cnp); PEFSDEBUG("pefs_enccn_get: create: %s -> %s\n", @@ -872,7 +901,7 @@ goto bad; } - error = pefs_enccn_get(&fenccn, fvp, fcnp); + error = pefs_enccn_get(&fenccn, fdvp, fvp, fcnp); if (error != 0) { goto bad; } @@ -903,7 +932,7 @@ * After rename fvp will contain invalid key/tweak * because it is rename of fvp. */ - error = pefs_enccn_get(&tenccn, tvp, tcnp); + error = pefs_enccn_get(&tenccn, tdvp, tvp, tcnp); } else if (fvp->v_type == VDIR && tvp->v_type != VDIR) { error = ENOTDIR; } else if (fvp->v_type != VDIR && tvp->v_type == VDIR) { @@ -946,13 +975,13 @@ if (tvp != NULL && tvp->v_type != VDIR) { /* * Remove old file. Double rename is not performed to - * save data in case of error + * prevent data loss in case of error */ pefs_enccn_free(&tenccn); ASSERT_VOP_UNLOCKED(tdvp, "pefs_rename"); ASSERT_VOP_LOCKED(tvp, "pefs_rename"); vn_lock(tdvp, LK_EXCLUSIVE | LK_RETRY); - error = pefs_enccn_get(&tenccn, tvp, tcnp); + error = pefs_enccn_get(&tenccn, tdvp, tvp, tcnp); if (error == 0) { error = VOP_REMOVE(ltdvp, PEFS_LOWERVP(tvp), &tenccn.pec_cn); @@ -1447,7 +1476,7 @@ if (pefs_no_keys(vp)) return (EROFS); pefs_enccn_init(&enccn); - error = pefs_enccn_get(&enccn, vp, cnp); + error = pefs_enccn_get(&enccn, dvp, vp, cnp); if (error != 0) { PEFSDEBUG("pefs_rmdir: pefs_enccn_get failed: %d\n", error); return (error); @@ -1511,7 +1540,7 @@ if (pefs_no_keys(dvp)) return (EROFS); pefs_enccn_init(&enccn); - error = pefs_enccn_get(&enccn, vp, cnp); + error = pefs_enccn_get(&enccn, dvp, vp, cnp); if (error != 0) { return (error); } @@ -2029,7 +2058,7 @@ error = VOP_ACCESS(vp, VWRITE, cred, td); if (error == 0) - error = pefs_enccn_get(&fenccn, vp, &cn); + error = pefs_enccn_get(&fenccn, dvp, vp, &cn); if (error != 0) { VOP_UNLOCK(vp, 0); VOP_UNLOCK(dvp, 0); From owner-p4-projects@FreeBSD.ORG Tue Oct 20 16:23:16 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 140211065692; Tue, 20 Oct 2009 16:23:16 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id CCC2A106568D for ; Tue, 20 Oct 2009 16:23:15 +0000 (UTC) (envelope-from stas@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id A12088FC08 for ; Tue, 20 Oct 2009 16:23:15 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n9KGNF8G071350 for ; Tue, 20 Oct 2009 16:23:15 GMT (envelope-from stas@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n9KGNFPe071348 for perforce@freebsd.org; Tue, 20 Oct 2009 16:23:15 GMT (envelope-from stas@freebsd.org) Date: Tue, 20 Oct 2009 16:23:15 GMT Message-Id: <200910201623.n9KGNFPe071348@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to stas@freebsd.org using -f From: Stanislav Sedov To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 169619 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 20 Oct 2009 16:23:16 -0000 http://p4web.freebsd.org/chv.cgi?CH=169619 Change 169619 by stas@stas_yandex on 2009/10/20 16:22:38 - Use correct check for SA_NODEFER. Affected files ... .. //depot/projects/valgrind/none/tests/sigstackgrowth.c#5 edit Differences ... ==== //depot/projects/valgrind/none/tests/sigstackgrowth.c#5 (text+ko) ==== @@ -48,7 +48,7 @@ deep = &here - SIZE; sa.sa_handler = handler; -#if defined(SA_NOMASK) +#if defined(SA_NODEFER) sa.sa_flags = SA_NODEFER; #endif sigemptyset(&sa.sa_mask); From owner-p4-projects@FreeBSD.ORG Tue Oct 20 17:11:03 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id C4EC51065697; Tue, 20 Oct 2009 17:11:03 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 88F181065679 for ; Tue, 20 Oct 2009 17:11:03 +0000 (UTC) (envelope-from stas@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 761208FC1D for ; Tue, 20 Oct 2009 17:11:03 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n9KHB3Yv085691 for ; Tue, 20 Oct 2009 17:11:03 GMT (envelope-from stas@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n9KHB3JH085689 for perforce@freebsd.org; Tue, 20 Oct 2009 17:11:03 GMT (envelope-from stas@freebsd.org) Date: Tue, 20 Oct 2009 17:11:03 GMT Message-Id: <200910201711.n9KHB3JH085689@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to stas@freebsd.org using -f From: Stanislav Sedov To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 169620 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 20 Oct 2009 17:11:04 -0000 http://p4web.freebsd.org/chv.cgi?CH=169620 Change 169620 by stas@stas_yandex on 2009/10/20 17:10:59 - Use "standard" vmmap sysctls instead of compatible one. This allows to avoid the dependency on COMPAT_6 and get rid of hand-crufted 32-bit conversion stuff. Reported by: Robert Jenssen Affected files ... .. //depot/projects/valgrind/coregrind/m_aspacemgr/aspacemgr-linux.c#8 edit .. //depot/projects/valgrind/include/vki/vki-freebsd.h#20 edit Differences ... ==== //depot/projects/valgrind/coregrind/m_aspacemgr/aspacemgr-linux.c#8 (text+ko) ==== @@ -3527,67 +3527,6 @@ /* static ... to keep it out of the stack frame. */ static Char procmap_buf[M_PROCMAP_BUF]; - #if defined(VGP_x86_freebsd) - static Bool test_is32on64(void) - { - Int oid[2]; - vki_size_t len; - char machbuf[32]; - static Int is32on64 = -1; - SysRes sres; - - if (is32on64 == -1) { - oid[0] = VKI_CTL_HW; - oid[1] = VKI_HW_MACHINE; - len = sizeof(machbuf); - sres = VG_(do_syscall6)(__NR___sysctl, (UWord)oid, 2, (UWord)machbuf, (UWord)&len -, 0, 0); - if (!sr_isError(sres)) { - machbuf[31] = '\0'; - if (VG_(strcmp)(machbuf, "amd64") == 0) - is32on64 = 1; - else - is32on64 = 0; - } else { - is32on64 = -2; - } - } - if (is32on64 == 1) { - return True; - } else { - return False; - } - } - - static void fix_32on64(vki_size_t *len) - { - struct vki_kinfo_vmentry_32on64 *kve64, t; - struct vki_kinfo_vmentry *kve32; - Int i; - - aspacem_assert(sizeof(struct vki_kinfo_vmentry) < sizeof(struct vki_kinfo_vmentry_32on64)); - kve64 = (struct vki_kinfo_vmentry_32on64 *)procmap_buf; - kve32 = (struct vki_kinfo_vmentry *)procmap_buf; - aspacem_assert(sizeof(kve32->kve_path) == sizeof(kve64->kve_path)); - for (i = 0; i < *len / sizeof(struct vki_kinfo_vmentry_32on64); i++, kve32++, kve64++ -) { - t = *kve64; - aspacem_assert(t.kve_start < 0x100000000ull); - aspacem_assert(t.kve_end < 0x100000000ull); - aspacem_assert(t.kve_structsize == sizeof(struct vki_kinfo_vmentry_32on64)); - kve32->kve_structsize = sizeof(struct vki_kinfo_vmentry); - kve32->kve_start = (void *)(UWord)t.kve_start; - kve32->kve_end = (void *)(UWord)t.kve_end; - kve32->kve_protection = t.kve_protection; - VG_(memcpy)(kve32->kve_path, t.kve_path, sizeof(t.kve_path)); - kve32->kve_offset = t.kve_offset; - kve32->kve_fsid = t.kve_fsid; - kve32->kve_fileid = t.kve_fileid; - } - *len = *len * sizeof(struct vki_kinfo_vmentry) / sizeof(struct vki_kinfo_vmentry_32on64); - } - #endif - static void parse_procselfmaps ( void (*record_mapping)( Addr addr, SizeT len, UInt prot, ULong dev, ULong ino, Off64T offset, @@ -3598,6 +3537,7 @@ Int i; Addr start, endPlusOne, gapStart; UChar* filename; + char *p; UInt prot; ULong foffset, dev, ino; struct vki_kinfo_vmentry *kve; @@ -3616,22 +3556,14 @@ sres = VG_(do_syscall6)(__NR___sysctl, (UWord)oid, 4, (UWord)procmap_buf, (UWord)&len, 0, 0); if (sr_isError(sres)) { - VG_(debugLog)(0, "procselfmaps", "sysctl %ld\n", sr_Err(sres)); + VG_(debugLog)(0, "procselfmaps", "sysctll %ld\n", sr_Err(sres)); ML_(am_exit)(1); } - #if defined(VGP_x86_freebsd) - if (test_is32on64()) - fix_32on64(&len); - #endif - gapStart = Addr_MIN; i = 0; - kve = (struct vki_kinfo_vmentry *)procmap_buf; - for (i = 0; i < (len / sizeof(*kve)); i++, kve++) { - if (kve->kve_structsize != sizeof(*kve)) { - VG_(debugLog)(0, "procselfmaps", "sysctl out of sync\n"); - ML_(am_exit)(1); - } + p = procmap_buf; + while (p < (char *)procmap_buf + len) { + kve = (struct vki_kinfo_vmentry *)p; start = (UWord)kve->kve_start; endPlusOne = (UWord)kve->kve_end; foffset = kve->kve_offset; @@ -3656,6 +3588,7 @@ prot, dev, ino, foffset, filename ); gapStart = endPlusOne; + p += kve->kve_structsize; } if (record_gap && gapStart < Addr_MAX) ==== //depot/projects/valgrind/include/vki/vki-freebsd.h#20 (text+ko) ==== @@ -1887,20 +1887,20 @@ struct vki_kinfo_vmentry { int kve_structsize; int kve_type; - void * kve_start; - void * kve_end; + ULong kve_start; + ULong kve_end; + Off64T kve_offset; + ULong kve_fileid; + UInt kve_fsid; int kve_flags; int kve_resident; int kve_private_resident; int kve_protection; int kve_ref_count; int kve_shadow_count; + int _kve_pad0; + int kve_ispare[16]; char kve_path[VKI_PATH_MAX]; - void * kve_pspare[8]; - Off64T kve_offset; - ULong kve_fileid; - UInt kve_fsid; - int kve_ispare[3]; }; struct vki_kinfo_file { @@ -1922,28 +1922,6 @@ char kf_path[VKI_PATH_MAX]; /* Path to file, if any. */ }; -#if defined(VGP_x86_freebsd) -/* Special case.. adapt to what the 64 bit kernel gives us */ -struct vki_kinfo_vmentry_32on64 { - int kve_structsize; - int kve_type; - ULong kve_start; - ULong kve_end; - int kve_flags; - int kve_resident; - int kve_private_resident; - int kve_protection; - int kve_ref_count; - int kve_shadow_count; - char kve_path[VKI_PATH_MAX]; - ULong kve_pspare[8]; - Off64T kve_offset; - ULong kve_fileid; - UInt kve_fsid; - int kve_ispare[3]; -}; -#endif - //---------------------------------------------------------------------- // From sys/kenv.h //---------------------------------------------------------------------- @@ -1959,7 +1937,7 @@ #define VKI_CTL_KERN 1 #define VKI_CTL_HW 6 #define VKI_KERN_PROC 14 -#define VKI_KERN_PROC_VMMAP 13 +#define VKI_KERN_PROC_VMMAP 32 #define VKI_KERN_PROC_FILEDESC 33 #define VKI_HW_MACHINE 1 From owner-p4-projects@FreeBSD.ORG Tue Oct 20 17:29:23 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 757951065679; Tue, 20 Oct 2009 17:29:23 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3A1241065672 for ; Tue, 20 Oct 2009 17:29:23 +0000 (UTC) (envelope-from stas@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 27B288FC08 for ; Tue, 20 Oct 2009 17:29:23 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n9KHTLTV086815 for ; Tue, 20 Oct 2009 17:29:21 GMT (envelope-from stas@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n9KHTLnw086813 for perforce@freebsd.org; Tue, 20 Oct 2009 17:29:21 GMT (envelope-from stas@freebsd.org) Date: Tue, 20 Oct 2009 17:29:21 GMT Message-Id: <200910201729.n9KHTLnw086813@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to stas@freebsd.org using -f From: Stanislav Sedov To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 169621 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 20 Oct 2009 17:29:23 -0000 http://p4web.freebsd.org/chv.cgi?CH=169621 Change 169621 by stas@stas_yandex on 2009/10/20 17:28:23 - Use larger buffer for vmmap sysctl: valgrind tends to create a lot of mappings. Affected files ... .. //depot/projects/valgrind/coregrind/m_aspacemgr/aspacemgr-linux.c#9 edit Differences ... ==== //depot/projects/valgrind/coregrind/m_aspacemgr/aspacemgr-linux.c#9 (text+ko) ==== @@ -3522,7 +3522,7 @@ #elif defined(VGO_freebsd) /* Size of a smallish table used to read /proc/self/map entries. */ - #define M_PROCMAP_BUF 1000000 + #define M_PROCMAP_BUF 10485760 /* 10M */ /* static ... to keep it out of the stack frame. */ static Char procmap_buf[M_PROCMAP_BUF]; From owner-p4-projects@FreeBSD.ORG Tue Oct 20 17:47:41 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E53581065696; Tue, 20 Oct 2009 17:47:40 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A9CBC106566C for ; Tue, 20 Oct 2009 17:47:40 +0000 (UTC) (envelope-from stas@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 7E30E8FC1B for ; Tue, 20 Oct 2009 17:47:40 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n9KHleLm087933 for ; Tue, 20 Oct 2009 17:47:40 GMT (envelope-from stas@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n9KHle6q087931 for perforce@freebsd.org; Tue, 20 Oct 2009 17:47:40 GMT (envelope-from stas@freebsd.org) Date: Tue, 20 Oct 2009 17:47:40 GMT Message-Id: <200910201747.n9KHle6q087931@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to stas@freebsd.org using -f From: Stanislav Sedov To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 169622 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 20 Oct 2009 17:47:41 -0000 http://p4web.freebsd.org/chv.cgi?CH=169622 Change 169622 by stas@stas_yandex on 2009/10/20 17:46:43 - Fix execve test. Affected files ... .. //depot/projects/valgrind/none/tests/execve.stderr.exp#3 edit Differences ... ==== //depot/projects/valgrind/none/tests/execve.stderr.exp#3 (text+ko) ==== @@ -1,1 +1,4 @@ +execve(0x........(./execve), 0x........, 0x........) failed, errno 14 +EXEC FAILED: I can't recover from execve() failing, so I'm dying. +Add more stringent tests in PRE(sys_execve), or work out how to recover. From owner-p4-projects@FreeBSD.ORG Tue Oct 20 20:04:57 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A3DB6106568D; Tue, 20 Oct 2009 20:04:57 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 688B2106566C for ; Tue, 20 Oct 2009 20:04:57 +0000 (UTC) (envelope-from truncs@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 567AD8FC1D for ; Tue, 20 Oct 2009 20:04:57 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n9KK4vv6099798 for ; Tue, 20 Oct 2009 20:04:57 GMT (envelope-from truncs@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n9KK4v0r099796 for perforce@freebsd.org; Tue, 20 Oct 2009 20:04:57 GMT (envelope-from truncs@FreeBSD.org) Date: Tue, 20 Oct 2009 20:04:57 GMT Message-Id: <200910202004.n9KK4v0r099796@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to truncs@FreeBSD.org using -f From: Aditya Sarawgi To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 169623 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 20 Oct 2009 20:04:58 -0000 http://p4web.freebsd.org/chv.cgi?CH=169623 Change 169623 by truncs@aditya on 2009/10/20 20:04:03 Unlock fs when allocation fails due to lack of space. Affected files ... .. //depot/projects/soc2009/soc_ext2fs/src/sys/fs/ext2fs/ext2_alloc.c#13 edit Differences ... ==== //depot/projects/soc2009/soc_ext2fs/src/sys/fs/ext2fs/ext2_alloc.c#13 (text+ko) ==== @@ -136,6 +136,7 @@ return (0); } nospace: + EXT2_UNLOCK(ump); ext2_fserr(fs, cred->cr_uid, "file system full"); uprintf("\n%s: write failed, file system is full\n", fs->e2fs_fsmnt); return (ENOSPC); From owner-p4-projects@FreeBSD.ORG Tue Oct 20 20:46:39 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 607D01065695; Tue, 20 Oct 2009 20:46:39 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 25241106568F for ; Tue, 20 Oct 2009 20:46:39 +0000 (UTC) (envelope-from truncs@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 12E448FC0A for ; Tue, 20 Oct 2009 20:46:39 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n9KKkcaw002459 for ; Tue, 20 Oct 2009 20:46:38 GMT (envelope-from truncs@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n9KKkcV1002457 for perforce@freebsd.org; Tue, 20 Oct 2009 20:46:38 GMT (envelope-from truncs@FreeBSD.org) Date: Tue, 20 Oct 2009 20:46:38 GMT Message-Id: <200910202046.n9KKkcV1002457@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to truncs@FreeBSD.org using -f From: Aditya Sarawgi To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 169624 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 20 Oct 2009 20:46:39 -0000 http://p4web.freebsd.org/chv.cgi?CH=169624 Change 169624 by truncs@aditya on 2009/10/20 20:45:48 declare "uid" as uid_t instead of u_int, and fix format string accordingly Ref: http://www.openbsd.org/cgi-bin/cvsweb/src/sys/ufs/ext2fs/ext2fs_alloc.c.diff?r1=1.23;r2=1.24 Affected files ... .. //depot/projects/soc2009/soc_ext2fs/src/sys/fs/ext2fs/ext2_alloc.c#14 edit Differences ... ==== //depot/projects/soc2009/soc_ext2fs/src/sys/fs/ext2fs/ext2_alloc.c#14 (text+ko) ==== @@ -53,7 +53,7 @@ static daddr_t ext2_alloccg(struct inode *, int, daddr_t, int); static u_long ext2_dirpref(struct inode *); -static void ext2_fserr(struct m_ext2fs *, u_int, char *); +static void ext2_fserr(struct m_ext2fs *, uid_t, char *); static u_long ext2_hashalloc(struct inode *, int, long, int, daddr_t (*)(struct inode *, int, daddr_t, int)); @@ -952,11 +952,11 @@ static void ext2_fserr(fs, uid, cp) struct m_ext2fs *fs; - u_int uid; + uid_t uid; char *cp; { - log(LOG_ERR, "uid %d on %s: %s\n", uid, fs->e2fs_fsmnt, cp); + log(LOG_ERR, "uid %u on %s: %s\n", uid, fs->e2fs_fsmnt, cp); } int From owner-p4-projects@FreeBSD.ORG Tue Oct 20 20:48:41 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 9FEBA106568D; Tue, 20 Oct 2009 20:48:41 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 644291065693 for ; Tue, 20 Oct 2009 20:48:41 +0000 (UTC) (envelope-from truncs@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 520D78FC1B for ; Tue, 20 Oct 2009 20:48:41 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n9KKmfK1012798 for ; Tue, 20 Oct 2009 20:48:41 GMT (envelope-from truncs@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n9KKmfw7012796 for perforce@freebsd.org; Tue, 20 Oct 2009 20:48:41 GMT (envelope-from truncs@FreeBSD.org) Date: Tue, 20 Oct 2009 20:48:41 GMT Message-Id: <200910202048.n9KKmfw7012796@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to truncs@FreeBSD.org using -f From: Aditya Sarawgi To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 169625 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 20 Oct 2009 20:48:42 -0000 http://p4web.freebsd.org/chv.cgi?CH=169625 Change 169625 by truncs@aditya on 2009/10/20 20:47:46 Apply locks to ext2_balloc. Affected files ... .. //depot/projects/soc2009/soc_ext2fs/src/sys/fs/ext2fs/ext2_balloc.c#6 edit Differences ... ==== //depot/projects/soc2009/soc_ext2fs/src/sys/fs/ext2fs/ext2_balloc.c#6 (text+ko) ==== @@ -64,6 +64,7 @@ int flags; { struct m_ext2fs *fs; + struct ext2mount *ump; int32_t nb; struct buf *bp, *nbp; struct vnode *vp = ITOV(ip); @@ -75,6 +76,7 @@ if (lbn < 0) return (EFBIG); fs = ip->i_e2fs; + ump = ip->i_ump; /* * check if this is a sequential block allocation. @@ -133,6 +135,7 @@ nsize = fragroundup(fs, size); else nsize = fs->e2fs_bsize; + EXT2_LOCK(ump); error = ext2_alloc(ip, lbn, ext2_blkpref(ip, lbn, (int)lbn, &ip->i_db[0], 0), nsize, cred, &newb); @@ -177,7 +180,8 @@ after i_db[11], but it's not utterly clear whether this also applies to i_ib[1] and i_ib[0] */ - + + EXT2_LOCK(ump); pref = ext2_blkpref(ip, lbn, indirs[0].in_off + EXT2_NDIR_BLOCKS, &ip->i_db[0], 0); #endif @@ -228,7 +232,8 @@ */ pref = ext2_blkpref(ip, lbn, indirs[i].in_off, bap, bp->b_lblkno); -#else +#else + EXT2_LOCK(ump); pref = ext2_blkpref(ip, lbn, 0, (int32_t *)0, 0); #endif if ((error = @@ -264,6 +269,7 @@ * Get the data block, allocating if necessary. */ if (nb == 0) { + EXT2_LOCK(ump); pref = ext2_blkpref(ip, lbn, indirs[i].in_off, &bap[0], bp->b_lblkno); if ((error = ext2_alloc(ip, From owner-p4-projects@FreeBSD.ORG Tue Oct 20 20:53:47 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id DF7AA1065679; Tue, 20 Oct 2009 20:53:46 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A4312106566B for ; Tue, 20 Oct 2009 20:53:46 +0000 (UTC) (envelope-from truncs@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 91F408FC12 for ; Tue, 20 Oct 2009 20:53:46 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n9KKrk5m013110 for ; Tue, 20 Oct 2009 20:53:46 GMT (envelope-from truncs@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n9KKrk4i013108 for perforce@freebsd.org; Tue, 20 Oct 2009 20:53:46 GMT (envelope-from truncs@FreeBSD.org) Date: Tue, 20 Oct 2009 20:53:46 GMT Message-Id: <200910202053.n9KKrk4i013108@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to truncs@FreeBSD.org using -f From: Aditya Sarawgi To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 169627 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 20 Oct 2009 20:53:47 -0000 http://p4web.freebsd.org/chv.cgi?CH=169627 Change 169627 by truncs@aditya on 2009/10/20 20:53:30 - Remove unused variable "eoff" - Don't explicitly typecast "pref" to long Affected files ... .. //depot/projects/soc2009/soc_ext2fs/src/sys/fs/ext2fs/ext2_alloc.c#15 edit Differences ... ==== //depot/projects/soc2009/soc_ext2fs/src/sys/fs/ext2fs/ext2_alloc.c#15 (text+ko) ==== @@ -187,7 +187,7 @@ struct ext2mount *ump; struct cluster_save *buflist; struct indir start_ap[NIADDR + 1], end_ap[NIADDR + 1], *idp; - int32_t start_lbn, end_lbn, soff, eoff, newblk, blkno =0; + int32_t start_lbn, end_lbn, soff, newblk, blkno =0; int i, len, start_lvl, end_lvl, pref, ssize; vp = ap->a_vp; @@ -258,7 +258,7 @@ /* * Search the block map looking for an allocation of the desired size. */ - if ((newblk = (int32_t)ext2_hashalloc(ip, dtog(fs, pref), (long)pref, + if ((newblk = (int32_t)ext2_hashalloc(ip, dtog(fs, pref), pref, len, ext2_clusteralloc)) == 0){ EXT2_UNLOCK(ump); goto fail; From owner-p4-projects@FreeBSD.ORG Tue Oct 20 20:58:52 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 577441065694; Tue, 20 Oct 2009 20:58:52 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1BE511065692 for ; Tue, 20 Oct 2009 20:58:52 +0000 (UTC) (envelope-from rene@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 09B0F8FC20 for ; Tue, 20 Oct 2009 20:58:52 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n9KKwpxI013429 for ; Tue, 20 Oct 2009 20:58:51 GMT (envelope-from rene@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n9KKwpCp013427 for perforce@freebsd.org; Tue, 20 Oct 2009 20:58:51 GMT (envelope-from rene@FreeBSD.org) Date: Tue, 20 Oct 2009 20:58:51 GMT Message-Id: <200910202058.n9KKwpCp013427@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to rene@FreeBSD.org using -f From: Rene Ladan To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 169628 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 20 Oct 2009 20:58:52 -0000 http://p4web.freebsd.org/chv.cgi?CH=169628 Change 169628 by rene@rene_self on 2009/10/20 20:58:18 MFen handbook/printing 1.120 -> 1.121 Affected files ... .. //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/printing/chapter.sgml#5 edit Differences ... ==== //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/printing/chapter.sgml#5 (text+ko) ==== @@ -2,10 +2,9 @@ The FreeBSD Documentation Project $FreeBSD: doc/nl_NL.ISO8859-1/books/handbook/printing/chapter.sgml,v 1.4 2008/10/18 14:27:07 remko Exp $ - $FreeBSDnl: doc/nl_NL.ISO8859-1/books/handbook/printing/chapter.sgml,v 1.45 2006/08/25 16:32:29 remko Exp $ %SOURCE% en_US.ISO8859-1/books/handbook/printing/chapter.sgml - %SRCID% 1.120 + %SRCID% 1.121 --> @@ -5056,6 +5055,24 @@ . + + + HPLIP + + HPLIP + + + HPLIP, het HP &linux; Imaging and + Printing systeem, is een suite van programma's ontwikkeld door HP + dat printen, scannen en faxen voor toepassingen van HP ondersteunt. + Deze suite van programma's maakt gebruikt van het printsysteem + CUPS als een backend voor sommige van + de printmogelijkheden. + + De thuispagina voor HPLIP is . + + From owner-p4-projects@FreeBSD.ORG Wed Oct 21 11:16:08 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B2FA71065672; Wed, 21 Oct 2009 11:16:08 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6EA2E106566B for ; Wed, 21 Oct 2009 11:16:08 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 5BFA38FC08 for ; Wed, 21 Oct 2009 11:16:08 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n9LBG8GP012093 for ; Wed, 21 Oct 2009 11:16:08 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n9LBG85l012091 for perforce@freebsd.org; Wed, 21 Oct 2009 11:16:08 GMT (envelope-from pgj@FreeBSD.org) Date: Wed, 21 Oct 2009 11:16:08 GMT Message-Id: <200910211116.n9LBG85l012091@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 169635 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 21 Oct 2009 11:16:08 -0000 http://p4web.freebsd.org/chv.cgi?CH=169635 Change 169635 by pgj@beehive on 2009/10/21 11:16:00 IFC Affected files ... .. //depot/projects/docproj_hu/www/en/internal/Makefile#2 integrate .. //depot/projects/docproj_hu/www/en/internal/i18n.sgml#1 branch .. //depot/projects/docproj_hu/www/en/internal/policies.sgml#2 integrate .. //depot/projects/docproj_hu/www/hu/administration.sgml#23 integrate .. //depot/projects/docproj_hu/www/share/sgml/events.xml#20 integrate Differences ... ==== //depot/projects/docproj_hu/www/en/internal/Makefile#2 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: www/en/internal/Makefile,v 1.47 2007/02/18 12:40:45 simon Exp $ +# $FreeBSD: www/en/internal/Makefile,v 1.48 2009/10/19 07:26:46 murray Exp $ .if exists(../Makefile.conf) .include "../Makefile.conf" @@ -22,6 +22,7 @@ DOCS+= doceng.sgml DOCS+= policies.sgml DOCS+= fortunes.sgml +DOCS+= i18n.sgml INDEXLINK= internal.html ==== //depot/projects/docproj_hu/www/en/internal/policies.sgml#2 (text+ko) ==== @@ -1,6 +1,6 @@ - + ]> @@ -38,6 +38,7 @@ Core's Voting Procedures, the Fortune File Policy, +Internationalization Policy, and the Problem Report Handling Guidelines.

    ==== //depot/projects/docproj_hu/www/hu/administration.sgml#23 (text+ko) ==== @@ -1,5 +1,5 @@ + ==== //depot/projects/docproj_hu/www/share/sgml/events.xml#20 (text+ko) ==== @@ -10,10 +10,132 @@ - $FreeBSD: www/share/sgml/events.xml,v 1.75 2009/08/20 19:57:47 kib Exp $ + $FreeBSD: www/share/sgml/events.xml,v 1.76 2009/10/20 08:50:12 brueffer Exp $ + + BSDCan 2013 + http://www.bsdcan.org/ + + 2013 + 5 + 13 + + + 2013 + 5 + 17 + + + Canada + Ottawa + University of Ottawa + + BSDCan is a developers conference with a strong focus + on emerging technologies, research projects, and works in + progress. It also features Userland infrastructure projects and + invites contributions from both free software developers and those + from commercial vendors. + + + + BSDCan 2012 + http://www.bsdcan.org/ + + 2012 + 5 + 15 + + + 2012 + 5 + 18 + + + Canada + Ottawa + University of Ottawa + + BSDCan is a developers conference with a strong focus + on emerging technologies, research projects, and works in + progress. It also features Userland infrastructure projects and + invites contributions from both free software developers and those + from commercial vendors. + + + + BSDCan 2011 + http://www.bsdcan.org/ + + 2011 + 5 + 10 + + + 2011 + 5 + 13 + + + Canada + Ottawa + University of Ottawa + + BSDCan is a developers conference with a strong focus + on emerging technologies, research projects, and works in + progress. It also features Userland infrastructure projects and + invites contributions from both free software developers and those + from commercial vendors. + + + + EuroBSDCon 2010 + http://2010.eurobsdcon.org/ + + 2010 + 10 + 8 + + + 2010 + 10 + 10 + + + Germany + Karlsruhe + + The ninth annual European BSD Conference will take place + in Karlsruhe, Germany in October, 2010, and include a technical + track, tutorials, and FreeBSD developer summit. + + + + BSDCan 2010 + http://www.bsdcan.org/ + + 2010 + 5 + 11 + + + 2010 + 5 + 14 + + + Canada + Ottawa + University of Ottawa + + BSDCan is a developers conference with a strong focus + on emerging technologies, research projects, and works in + progress. It also features Userland infrastructure projects and + invites contributions from both free software developers and those + from commercial vendors. + + OpenRheinRuhr 2009 http://www.openrheinruhr.de/ @@ -151,7 +273,7 @@ University of Cambridge - The ninth annual European BSD Conference will take place + The eighth annual European BSD Conference will take place in Cambridge, England in September, 2009, and include a technical track, tutorials, and FreeBSD developer summit. From owner-p4-projects@FreeBSD.ORG Wed Oct 21 11:56:49 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 68B4F1065679; Wed, 21 Oct 2009 11:56:49 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2C262106566C for ; Wed, 21 Oct 2009 11:56:49 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 195838FC0C for ; Wed, 21 Oct 2009 11:56:49 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n9LBumAo014639 for ; Wed, 21 Oct 2009 11:56:48 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n9LBumWD014637 for perforce@freebsd.org; Wed, 21 Oct 2009 11:56:48 GMT (envelope-from pgj@FreeBSD.org) Date: Wed, 21 Oct 2009 11:56:48 GMT Message-Id: <200910211156.n9LBumWD014637@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 169636 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 21 Oct 2009 11:56:49 -0000 http://p4web.freebsd.org/chv.cgi?CH=169636 Change 169636 by pgj@beehive on 2009/10/21 11:55:54 MFen (www): 1.75 -> 1.76 hu/share/sgml/events.xml Affected files ... .. //depot/projects/docproj_hu/www/hu/share/sgml/events.xml#17 edit Differences ... ==== //depot/projects/docproj_hu/www/hu/share/sgml/events.xml#17 (text+ko) ==== @@ -11,7 +11,7 @@ @@ -21,6 +21,157 @@ + + BSDCan 2013 + http://www.bsdcan.org/ + + 2013 + 5 + 13 + + + 2013 + 5 + 17 + + + Kanada + Ottawa + Ottawai Egyetem + + A BSDCan konferenciát elsõsorban + fejlesztõk számára rendezik, amelynek + középpontjában az újonnan + felbukkanó technológiák, + különbözõ kutatási projektek és + más folyamatban levõ munkák állnak. + Emellett még szerepet kapnak a felhasználói + programok infrastruktúrájával kapcsolatos + projektek, illetve nyitott a szabad és kereskedelmi + szoftverek fejlesztõi felé + egyaránt. + + + + BSDCan 2012 + http://www.bsdcan.org/ + + 2012 + 5 + 15 + + + 2012 + 5 + 18 + + + Kanada + Ottawa + Ottawai Egyetem + + A BSDCan konferenciát elsõsorban + fejlesztõk számára rendezik, amelynek + középpontjában az újonnan + felbukkanó technológiák, + különbözõ kutatási projektek és + más folyamatban levõ munkák állnak. + Emellett még szerepet kapnak a felhasználói + programok infrastruktúrájával kapcsolatos + projektek, illetve nyitott a szabad és kereskedelmi + szoftverek fejlesztõi felé + egyaránt. + + + + BSDCan 2011 + http://www.bsdcan.org/ + + 2011 + 5 + 10 + + + 2011 + 5 + 13 + + + Kanada + Ottawa + Ottawai Egyetem + + A BSDCan konferenciát elsõsorban + fejlesztõk számára rendezik, amelynek + középpontjában az újonnan + felbukkanó technológiák, + különbözõ kutatási projektek és + más folyamatban levõ munkák állnak. + Emellett még szerepet kapnak a felhasználói + programok infrastruktúrájával kapcsolatos + projektek, illetve nyitott a szabad és kereskedelmi + szoftverek fejlesztõi felé + egyaránt. + + + + EuroBSDCon 2010 + http://2010.eurobsdcon.org/ + + 2010 + 10 + 8 + + + 2010 + 10 + 10 + + + Németország + Karlsruhe + + 2010 októberében a + németországi Karlsruhe ad otthont a kilencedik + alkalommal megrendezendõ éves európai BSD + konferenciának, amely magában foglal szakmai + témájú elõadásokat, + különféle oktatásokat és egy &os; + fejlesztõi + csúcstalálkozót. + + + + BSDCan 2010 + http://www.bsdcan.org/ + + 2010 + 5 + 11 + + + 2010 + 5 + 14 + + + Kanada + Ottawa + Ottawai Egyetem + + A BSDCan konferenciát elsõsorban + fejlesztõk számára rendezik, amelynek + középpontjában az újonnan + felbukkanó technológiák, + különbözõ kutatási projektek és + más folyamatban levõ munkák állnak. + Emellett még szerepet kapnak a felhasználói + programok infrastruktúrájával kapcsolatos + projektek, illetve nyitott a szabad és kereskedelmi + szoftverek fejlesztõi felé + egyaránt. + + OpenReinRuhr 2009 http://www.openrheinruhr.de/ @@ -174,7 +325,7 @@ Cambridge-i Egyetem - A kilencedik évente megrendezett európai + A nyolcadik, évente megrendezett európai BSD konferenciát ezúttal az angliai Cambridge-ben tartják 2009 szeptemberében. Tervezett programjai között szerepel például egy szakmai From owner-p4-projects@FreeBSD.ORG Wed Oct 21 12:25:18 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 128961065679; Wed, 21 Oct 2009 12:25:18 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id CB412106566B for ; Wed, 21 Oct 2009 12:25:17 +0000 (UTC) (envelope-from mav@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 9F1FD8FC1B for ; Wed, 21 Oct 2009 12:25:17 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n9LCPHik017391 for ; Wed, 21 Oct 2009 12:25:17 GMT (envelope-from mav@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n9LCPHfO017389 for perforce@freebsd.org; Wed, 21 Oct 2009 12:25:17 GMT (envelope-from mav@freebsd.org) Date: Wed, 21 Oct 2009 12:25:17 GMT Message-Id: <200910211225.n9LCPHfO017389@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mav@freebsd.org using -f From: Alexander Motin To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 169637 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 21 Oct 2009 12:25:18 -0000 http://p4web.freebsd.org/chv.cgi?CH=169637 Change 169637 by mav@mav_mavbook on 2009/10/21 12:24:34 Reclear status after xpt_freeze_simq() could change it. Do minor formatting. Affected files ... .. //depot/projects/scottl-camlock/src/sys/dev/ahci/ahci.c#69 edit Differences ... ==== //depot/projects/scottl-camlock/src/sys/dev/ahci/ahci.c#69 (text+ko) ==== @@ -966,9 +966,9 @@ /* Process command errors */ if (istatus & (AHCI_P_IX_OF | AHCI_P_IX_IF | AHCI_P_IX_HBD | AHCI_P_IX_HBF | AHCI_P_IX_TFE)) { -device_printf(dev, "%s ERROR is %08x cs %08x ss %08x rs %08x tfd %02x serr %08x\n", - __func__, istatus, cstatus, sstatus, ch->rslots, ATA_INL(ch->r_mem, AHCI_P_TFD), - serr); +//device_printf(dev, "%s ERROR is %08x cs %08x ss %08x rs %08x tfd %02x serr %08x\n", +// __func__, istatus, cstatus, sstatus, ch->rslots, ATA_INL(ch->r_mem, AHCI_P_TFD), +// serr); ccs = (ATA_INL(ch->r_mem, AHCI_P_CMD) & AHCI_P_CMD_CCS_MASK) >> AHCI_P_CMD_CCS_SHIFT; err = ch->rslots & (cstatus | sstatus); @@ -1271,11 +1271,10 @@ } device_printf(dev, "Timeout on slot %d\n", slot->slot); -device_printf(dev, "%s is %08x cs %08x ss %08x rs %08x tfd %02x serr %08x\n", - __func__, ATA_INL(ch->r_mem, AHCI_P_IS), - ATA_INL(ch->r_mem, AHCI_P_CI), - ATA_INL(ch->r_mem, AHCI_P_SACT), ch->rslots, ATA_INL(ch->r_mem, AHCI_P_TFD), - ATA_INL(ch->r_mem, AHCI_P_SERR)); + device_printf(dev, "is %08x cs %08x ss %08x rs %08x tfd %02x serr %08x\n", + ATA_INL(ch->r_mem, AHCI_P_IS), ATA_INL(ch->r_mem, AHCI_P_CI), + ATA_INL(ch->r_mem, AHCI_P_SACT), ch->rslots, + ATA_INL(ch->r_mem, AHCI_P_TFD), ATA_INL(ch->r_mem, AHCI_P_SERR)); /* Kick controller into sane state. */ ahci_stop(ch->dev); ahci_start(ch->dev); @@ -1378,6 +1377,7 @@ case AHCI_ERR_SATA: if (!ch->readlog) { xpt_freeze_simq(ch->sim, 1); + ccb->ccb_h.status &= ~CAM_STATUS_MASK; ccb->ccb_h.status |= CAM_RELEASE_SIMQ; } ccb->ccb_h.status |= CAM_UNCOR_PARITY; @@ -1385,6 +1385,7 @@ case AHCI_ERR_TIMEOUT: if (!ch->readlog) { xpt_freeze_simq(ch->sim, 1); + ccb->ccb_h.status &= ~CAM_STATUS_MASK; ccb->ccb_h.status |= CAM_RELEASE_SIMQ; } ccb->ccb_h.status |= CAM_CMD_TIMEOUT; From owner-p4-projects@FreeBSD.ORG Wed Oct 21 16:33:27 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 646AA1065679; Wed, 21 Oct 2009 16:33:27 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 28BC3106566B for ; Wed, 21 Oct 2009 16:33:27 +0000 (UTC) (envelope-from stas@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 162828FC16 for ; Wed, 21 Oct 2009 16:33:27 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n9LGXQvw048731 for ; Wed, 21 Oct 2009 16:33:26 GMT (envelope-from stas@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n9LGXQML048729 for perforce@freebsd.org; Wed, 21 Oct 2009 16:33:26 GMT (envelope-from stas@freebsd.org) Date: Wed, 21 Oct 2009 16:33:26 GMT Message-Id: <200910211633.n9LGXQML048729@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to stas@freebsd.org using -f From: Stanislav Sedov To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 169648 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 21 Oct 2009 16:33:27 -0000 http://p4web.freebsd.org/chv.cgi?CH=169648 Change 169648 by stas@stas_yandex on 2009/10/21 16:33:04 - Add FreeBSD-specific expectations for shell tests. Affected files ... .. //depot/projects/valgrind/none/tests/shell#3 edit .. //depot/projects/valgrind/none/tests/shell.stderr.exp-freebsd#1 add .. //depot/projects/valgrind/none/tests/shell.stdout.exp-freebsd#1 add .. //depot/projects/valgrind/none/tests/shell_dir.stderr.exp-freebsd#1 add Differences ... ==== //depot/projects/valgrind/none/tests/shell#3 (text+kox) ==== @@ -6,8 +6,11 @@ # Shell scripts that should fail #---------------------------------------------------------------------------- -echo "Execute a directory" -./x86/ +os=$(uname -s) +if [ "${os}" != "FreeBSD" ]; then + echo "Execute a directory" + ./x86/ +fi echo "Execute a non-executable file" ./shell.vgtest From owner-p4-projects@FreeBSD.ORG Wed Oct 21 20:30:25 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 79DCB106568B; Wed, 21 Oct 2009 20:30:25 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3E7161065676 for ; Wed, 21 Oct 2009 20:30:25 +0000 (UTC) (envelope-from thompsa@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 138D88FC0A for ; Wed, 21 Oct 2009 20:30:25 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n9LKUOQu080122 for ; Wed, 21 Oct 2009 20:30:24 GMT (envelope-from thompsa@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n9LKUOf5080120 for perforce@freebsd.org; Wed, 21 Oct 2009 20:30:24 GMT (envelope-from thompsa@freebsd.org) Date: Wed, 21 Oct 2009 20:30:24 GMT Message-Id: <200910212030.n9LKUOf5080120@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to thompsa@freebsd.org using -f From: Andrew Thompson To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 169660 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 21 Oct 2009 20:30:25 -0000 http://p4web.freebsd.org/chv.cgi?CH=169660 Change 169660 by thompsa@thompsa_burger on 2009/10/21 20:29:47 Nuke dead file. Affected files ... .. //depot/projects/usb/src/sys/modules/usb/uch341/Makefile#4 delete Differences ... From owner-p4-projects@FreeBSD.ORG Wed Oct 21 20:31:26 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 9FBA9106568D; Wed, 21 Oct 2009 20:31:26 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 647971065692 for ; Wed, 21 Oct 2009 20:31:26 +0000 (UTC) (envelope-from thompsa@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 394B78FC1B for ; Wed, 21 Oct 2009 20:31:26 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n9LKVQ8o080179 for ; Wed, 21 Oct 2009 20:31:26 GMT (envelope-from thompsa@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n9LKVQTe080177 for perforce@freebsd.org; Wed, 21 Oct 2009 20:31:26 GMT (envelope-from thompsa@freebsd.org) Date: Wed, 21 Oct 2009 20:31:26 GMT Message-Id: <200910212031.n9LKVQTe080177@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to thompsa@freebsd.org using -f From: Andrew Thompson To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 169661 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 21 Oct 2009 20:31:26 -0000 http://p4web.freebsd.org/chv.cgi?CH=169661 Change 169661 by thompsa@thompsa_burger on 2009/10/21 20:31:22 Nuke dead file Affected files ... .. //depot/projects/usb/src/lib/libusb/libusb10.3#4 delete Differences ... From owner-p4-projects@FreeBSD.ORG Wed Oct 21 20:38:34 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 5B6DA106568F; Wed, 21 Oct 2009 20:38:34 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 06A781065672 for ; Wed, 21 Oct 2009 20:38:34 +0000 (UTC) (envelope-from thompsa@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id E36698FC29 for ; Wed, 21 Oct 2009 20:38:33 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n9LKcXCi080716 for ; Wed, 21 Oct 2009 20:38:33 GMT (envelope-from thompsa@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n9LKcX1W080714 for perforce@freebsd.org; Wed, 21 Oct 2009 20:38:33 GMT (envelope-from thompsa@freebsd.org) Date: Wed, 21 Oct 2009 20:38:33 GMT Message-Id: <200910212038.n9LKcX1W080714@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to thompsa@freebsd.org using -f From: Andrew Thompson To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 169663 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 21 Oct 2009 20:38:34 -0000 http://p4web.freebsd.org/chv.cgi?CH=169663 Change 169663 by thompsa@thompsa_burger on 2009/10/21 20:38:11 IFC @169658 Affected files ... .. //depot/projects/usb/src/sys/amd64/amd64/pmap.c#32 integrate .. //depot/projects/usb/src/sys/arm/arm/pmap.c#22 integrate .. //depot/projects/usb/src/sys/arm/mv/mv_machdep.c#8 integrate .. //depot/projects/usb/src/sys/cam/ata/ata_da.c#5 integrate .. //depot/projects/usb/src/sys/cam/ata/ata_xpt.c#4 integrate .. //depot/projects/usb/src/sys/cam/cam_xpt.c#23 integrate .. //depot/projects/usb/src/sys/cam/cam_xpt_internal.h#3 integrate .. //depot/projects/usb/src/sys/compat/x86bios/x86bios.c#2 integrate .. //depot/projects/usb/src/sys/compat/x86bios/x86bios.h#2 integrate .. //depot/projects/usb/src/sys/compat/x86bios/x86bios_alloc.c#2 delete .. //depot/projects/usb/src/sys/conf/NOTES#47 integrate .. //depot/projects/usb/src/sys/conf/files#83 integrate .. //depot/projects/usb/src/sys/conf/files.amd64#26 integrate .. //depot/projects/usb/src/sys/conf/files.i386#31 integrate .. //depot/projects/usb/src/sys/conf/options#41 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/changes.txt#3 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/common/adfile.c#3 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/common/adisasm.c#4 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/common/adwalk.c#3 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/common/dmextern.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/common/dmtable.c#4 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/common/getopt.c#4 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/compiler/aslload.c#5 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/debugger/dbcmds.c#3 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/debugger/dbinput.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/disassembler/dmutils.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/disassembler/dmwalk.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/dispatcher/dswload.c#3 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/events/evregion.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/include/acapps.h#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/include/acdebug.h#3 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/include/acdisasm.h#3 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/include/acglobal.h#3 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/include/aclocal.h#3 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/include/acpixf.h#3 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/namespace/nsrepair.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/utilities/utglobal.c#3 integrate .. //depot/projects/usb/src/sys/contrib/x86emu/x86emu_util.c#2 delete .. //depot/projects/usb/src/sys/dev/ahci/ahci.c#4 integrate .. //depot/projects/usb/src/sys/dev/ahci/ahci.h#3 integrate .. //depot/projects/usb/src/sys/dev/aic7xxx/aicasm/aicasm.c#3 integrate .. //depot/projects/usb/src/sys/dev/atkbdc/atkbd.c#7 integrate .. //depot/projects/usb/src/sys/dev/bce/if_bce.c#23 integrate .. //depot/projects/usb/src/sys/dev/bce/if_bcereg.h#14 integrate .. //depot/projects/usb/src/sys/dev/bge/if_bge.c#22 integrate .. //depot/projects/usb/src/sys/dev/dpms/dpms.c#3 integrate .. //depot/projects/usb/src/sys/dev/drm/mach64_state.c#3 integrate .. //depot/projects/usb/src/sys/dev/fb/vesa.c#3 integrate .. //depot/projects/usb/src/sys/dev/hwpmc/hwpmc_mod.c#14 integrate .. //depot/projects/usb/src/sys/dev/ips/ips_disk.c#2 integrate .. //depot/projects/usb/src/sys/dev/mpt/mpt.c#9 integrate .. //depot/projects/usb/src/sys/dev/mpt/mpt.h#11 integrate .. //depot/projects/usb/src/sys/dev/mpt/mpt_cam.c#12 integrate .. //depot/projects/usb/src/sys/dev/mpt/mpt_raid.c#11 integrate .. //depot/projects/usb/src/sys/dev/mxge/if_mxge.c#18 integrate .. //depot/projects/usb/src/sys/dev/mxge/if_mxge_var.h#16 integrate .. //depot/projects/usb/src/sys/dev/pci/vga_pci.c#4 integrate .. //depot/projects/usb/src/sys/dev/siis/siis.c#4 integrate .. //depot/projects/usb/src/sys/dev/usb/serial/uchcom.c#16 integrate .. //depot/projects/usb/src/sys/dev/usb/storage/umass.c#36 integrate .. //depot/projects/usb/src/sys/dev/usb/usbdevs#82 integrate .. //depot/projects/usb/src/sys/fs/nfsclient/nfs_clport.c#5 integrate .. //depot/projects/usb/src/sys/fs/nfsclient/nfs_clstate.c#8 integrate .. //depot/projects/usb/src/sys/fs/nfsclient/nfs_clsubs.c#3 integrate .. //depot/projects/usb/src/sys/i386/conf/NOTES#27 integrate .. //depot/projects/usb/src/sys/i386/i386/pmap.c#28 integrate .. //depot/projects/usb/src/sys/i386/xen/pmap.c#15 integrate .. //depot/projects/usb/src/sys/ia64/ia64/pmap.c#16 integrate .. //depot/projects/usb/src/sys/ia64/include/asm.h#2 integrate .. //depot/projects/usb/src/sys/kern/init_main.c#17 integrate .. //depot/projects/usb/src/sys/kern/stack_protector.c#2 integrate .. //depot/projects/usb/src/sys/kern/sys_process.c#14 integrate .. //depot/projects/usb/src/sys/kern/tty.c#32 integrate .. //depot/projects/usb/src/sys/mips/mips/pmap.c#13 integrate .. //depot/projects/usb/src/sys/modules/Makefile#45 integrate .. //depot/projects/usb/src/sys/modules/dpms/Makefile#3 integrate .. //depot/projects/usb/src/sys/modules/usb/Makefile#23 integrate .. //depot/projects/usb/src/sys/modules/usb/ucom/Makefile#3 integrate .. //depot/projects/usb/src/sys/modules/vesa/Makefile#3 integrate .. //depot/projects/usb/src/sys/modules/x86bios/Makefile#3 integrate .. //depot/projects/usb/src/sys/net/flowtable.c#13 integrate .. //depot/projects/usb/src/sys/net/pfil.c#6 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211_hwmp.c#5 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211_mesh.c#5 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211_mesh.h#5 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211_output.c#28 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211_proto.h#20 integrate .. //depot/projects/usb/src/sys/netinet/if_ether.c#31 integrate .. //depot/projects/usb/src/sys/powerpc/aim/mmu_oea.c#9 integrate .. //depot/projects/usb/src/sys/powerpc/aim/mmu_oea64.c#5 integrate .. //depot/projects/usb/src/sys/powerpc/booke/pmap.c#17 integrate .. //depot/projects/usb/src/sys/powerpc/include/pmap.h#9 integrate .. //depot/projects/usb/src/sys/powerpc/powerpc/mmu_if.m#7 integrate .. //depot/projects/usb/src/sys/powerpc/powerpc/pmap_dispatch.c#11 integrate .. //depot/projects/usb/src/sys/powerpc/powerpc/uio_machdep.c#6 integrate .. //depot/projects/usb/src/sys/sparc64/sparc64/pmap.c#14 integrate .. //depot/projects/usb/src/sys/sun4v/sun4v/pmap.c#10 integrate .. //depot/projects/usb/src/sys/sys/kernel.h#17 integrate .. //depot/projects/usb/src/sys/sys/ttyqueue.h#4 integrate .. //depot/projects/usb/src/sys/tools/fw_stub.awk#4 integrate .. //depot/projects/usb/src/sys/vm/pmap.h#7 integrate .. //depot/projects/usb/src/sys/vm/vm_extern.h#11 integrate .. //depot/projects/usb/src/sys/vm/vm_glue.c#11 integrate Differences ... ==== //depot/projects/usb/src/sys/amd64/amd64/pmap.c#32 (text+ko) ==== @@ -77,7 +77,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.674 2009/09/28 17:10:27 alc Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.675 2009/10/21 18:38:02 marcel Exp $"); /* * Manages physical address maps. @@ -4810,6 +4810,11 @@ critical_exit(); } +void +pmap_sync_icache(pmap_t pm, vm_offset_t va, vm_size_t sz) +{ +} + /* * Increase the starting virtual address of the given mapping if a * different alignment might result in more superpage mappings. ==== //depot/projects/usb/src/sys/arm/arm/pmap.c#22 (text+ko) ==== @@ -147,7 +147,7 @@ #include "opt_vm.h" #include -__FBSDID("$FreeBSD: src/sys/arm/arm/pmap.c,v 1.115 2009/10/05 10:08:58 stas Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/pmap.c,v 1.116 2009/10/21 18:38:02 marcel Exp $"); #include #include #include @@ -2863,14 +2863,14 @@ if (pvzone != NULL && (m = vm_phys_paddr_to_vm_page(pa))) { vm_page_lock_queues(); if (!TAILQ_EMPTY(&m->md.pv_list) || m->md.pv_kva) { - /* release vm_page lock for pv_entry UMA */ + /* release vm_page lock for pv_entry UMA */ vm_page_unlock_queues(); if ((pve = pmap_get_pv_entry()) == NULL) panic("pmap_kenter_internal: no pv entries"); vm_page_lock_queues(); PMAP_LOCK(pmap_kernel()); pmap_enter_pv(m, pve, pmap_kernel(), va, - PVF_WRITE | PVF_UNMAN); + PVF_WRITE | PVF_UNMAN); pmap_fix_cache(m, pmap_kernel(), va); PMAP_UNLOCK(pmap_kernel()); } else { @@ -4567,6 +4567,12 @@ } +void +pmap_sync_icache(pmap_t pm, vm_offset_t va, vm_size_t sz) +{ +} + + /* * Increase the starting virtual address of the given mapping if a * different alignment might result in more superpage mappings. ==== //depot/projects/usb/src/sys/arm/mv/mv_machdep.c#8 (text+ko) ==== @@ -39,7 +39,7 @@ #include "opt_ddb.h" #include -__FBSDID("$FreeBSD: src/sys/arm/mv/mv_machdep.c,v 1.7 2009/08/25 09:30:03 raj Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/mv/mv_machdep.c,v 1.9 2009/10/21 18:44:00 marcel Exp $"); #define _ARM32_BUS_DMA_PRIVATE #include ==== //depot/projects/usb/src/sys/cam/ata/ata_da.c#5 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/cam/ata/ata_da.c,v 1.5 2009/10/09 09:29:59 pjd Exp $"); +__FBSDID("$FreeBSD: src/sys/cam/ata/ata_da.c,v 1.6 2009/10/21 14:20:55 mav Exp $"); #include @@ -63,37 +63,32 @@ #define ATA_MAX_28BIT_LBA 268435455UL typedef enum { - ADA_STATE_NORMAL + ADA_STATE_NORMAL, + ADA_STATE_SET_MULTI } ada_state; typedef enum { ADA_FLAG_PACK_INVALID = 0x001, ADA_FLAG_CAN_48BIT = 0x002, ADA_FLAG_CAN_FLUSHCACHE = 0x004, - ADA_FLAG_CAN_NCQ = 0x008, - ADA_FLAG_TAGGED_QUEUING = 0x010, + ADA_FLAG_CAN_NCQ = 0x008, + ADA_FLAG_CAN_DMA = 0x010, ADA_FLAG_NEED_OTAG = 0x020, ADA_FLAG_WENT_IDLE = 0x040, - ADA_FLAG_RETRY_UA = 0x080, ADA_FLAG_OPEN = 0x100, ADA_FLAG_SCTX_INIT = 0x200 } ada_flags; typedef enum { - ADA_Q_NONE = 0x00, - ADA_Q_NO_SYNC_CACHE = 0x01, - ADA_Q_NO_6_BYTE = 0x02, - ADA_Q_NO_PREVENT = 0x04 + ADA_Q_NONE = 0x00 } ada_quirks; typedef enum { - ADA_CCB_PROBE = 0x01, - ADA_CCB_PROBE2 = 0x02, + ADA_CCB_SET_MULTI = 0x01, ADA_CCB_BUFFER_IO = 0x03, ADA_CCB_WAITING = 0x04, ADA_CCB_DUMP = 0x05, ADA_CCB_TYPE_MASK = 0x0F, - ADA_CCB_RETRY_UA = 0x10 } ada_ccb_state; /* Offsets into our private area for storing information */ @@ -117,6 +112,7 @@ ada_quirks quirks; int ordered_tag_count; int outstanding_cmds; + int secsperint; struct disk_params params; struct disk *disk; union ccb saved_ccb; @@ -289,8 +285,7 @@ else ata_28bit_cmd(&ccb->ataio, ATA_FLUSHCACHE, 0, 0, 0); cam_periph_runccb(ccb, /*error_routine*/NULL, /*cam_flags*/0, - /*sense_flags*/SF_RETRY_UA, - softc->disk->d_devstat); + /*sense_flags*/0, softc->disk->d_devstat); if ((ccb->ccb_h.status & CAM_STATUS_MASK) != CAM_REQ_CMP) xpt_print(periph->path, "Synchronize cache failed\n"); @@ -331,20 +326,7 @@ cam_periph_lock(periph); -#if 0 - /* - * check it's not too big a transfer for our adapter - */ - scsi_minphys(bp,&sd_switch); -#endif - /* - * Mask interrupts so that the pack cannot be invalidated until - * after we are in the queue. Otherwise, we might not properly - * clean up one of the buffers. - */ - - /* * If the device has been made invalid, error out */ if ((softc->flags & ADA_FLAG_PACK_INVALID)) { @@ -551,11 +533,6 @@ if (cgd->protocol != PROTO_ATA) break; -// if (SID_TYPE(&cgd->inq_data) != T_DIRECT -// && SID_TYPE(&cgd->inq_data) != T_RBC -// && SID_TYPE(&cgd->inq_data) != T_OPTICAL) -// break; - /* * Allocate a peripheral instance for * this device and start the probe @@ -576,18 +553,18 @@ case AC_SENT_BDR: case AC_BUS_RESET: { - struct ada_softc *softc; - struct ccb_hdr *ccbh; + struct ada_softc *softc = (struct ada_softc *)periph->softc; - softc = (struct ada_softc *)periph->softc; + cam_periph_async(periph, code, path, arg); + if (softc->state != ADA_STATE_NORMAL) + break; /* - * Don't fail on the expected unit attention - * that will occur. + * Restore device configuration. */ - softc->flags |= ADA_FLAG_RETRY_UA; - LIST_FOREACH(ccbh, &softc->pending_ccbs, periph_links.le) - ccbh->ccb_state |= ADA_CCB_RETRY_UA; - /* FALLTHROUGH*/ + softc->state = ADA_STATE_SET_MULTI; + cam_periph_acquire(periph); + xpt_schedule(periph, 0); + break; } default: cam_periph_async(periph, code, path, arg); @@ -651,14 +628,15 @@ if (softc == NULL) { printf("adaregister: Unable to probe new device. " - "Unable to allocate softc\n"); + "Unable to allocate softc\n"); return(CAM_REQ_CMP_ERR); } LIST_INIT(&softc->pending_ccbs); - softc->state = ADA_STATE_NORMAL; bioq_init(&softc->bio_queue); + if (cgd->ident_data.capabilities1 & ATA_SUPPORT_DMA) + softc->flags |= ADA_FLAG_CAN_DMA; if (cgd->ident_data.support.command2 & ATA_SUPPORT_ADDRESS48) softc->flags |= ADA_FLAG_CAN_48BIT; if (cgd->ident_data.support.command2 & ATA_SUPPORT_FLUSHCACHE) @@ -666,8 +644,8 @@ if (cgd->ident_data.satacapabilities & ATA_SUPPORT_NCQ && cgd->ident_data.queue >= 31) softc->flags |= ADA_FLAG_CAN_NCQ; -// if ((cgd->inq_data.flags & SID_CmdQue) != 0) -// softc->flags |= ADA_FLAG_TAGGED_QUEUING; + softc->secsperint = max(1, min(cgd->ident_data.sectors_intr, 16)); + softc->state = ADA_STATE_SET_MULTI; periph->softc = softc; @@ -713,9 +691,9 @@ else if (maxio > MAXPHYS) maxio = MAXPHYS; /* for safety */ if (cgd->ident_data.support.command2 & ATA_SUPPORT_ADDRESS48) - maxio = min(maxio, 65535 * 512); + maxio = min(maxio, 65536 * 512); else /* 28bit ATA command limit */ - maxio = min(maxio, 255 * 512); + maxio = min(maxio, 256 * 512); softc->disk->d_maxsize = maxio; softc->disk->d_unit = periph->unit_number; softc->disk->d_flags = 0; @@ -730,8 +708,6 @@ /* XXX: these are not actually "firmware" values, so they may be wrong */ softc->disk->d_fwsectors = softc->params.secs_per_track; softc->disk->d_fwheads = softc->params.heads; -// softc->disk->d_devstat->block_size = softc->params.secsize; -// softc->disk->d_devstat->flags &= ~DEVSTAT_BS_UNAVAILABLE; disk_create(softc->disk, DISK_VERSION); mtx_lock(periph->sim->mtx); @@ -766,8 +742,8 @@ * to finish the probe. The reference will be dropped in adadone at * the end of probe. */ -// (void)cam_periph_hold(periph, PRIBIO); -// xpt_schedule(periph, /*priority*/5); + cam_periph_acquire(periph); + xpt_schedule(periph, /*priority*/5); /* * Schedule a periodic event to occasionally send an @@ -784,10 +760,9 @@ static void adastart(struct cam_periph *periph, union ccb *start_ccb) { - struct ada_softc *softc; + struct ada_softc *softc = (struct ada_softc *)periph->softc; + struct ccb_ataio *ataio = &start_ccb->ataio; - softc = (struct ada_softc *)periph->softc; - switch (softc->state) { case ADA_STATE_NORMAL: { @@ -809,7 +784,6 @@ } else if (bp == NULL) { xpt_release_ccb(start_ccb); } else { - struct ccb_ataio *ataio = &start_ccb->ataio; u_int8_t tag_code; bioq_remove(&softc->bio_queue, bp); @@ -817,9 +791,9 @@ if ((softc->flags & ADA_FLAG_NEED_OTAG) != 0) { softc->flags &= ~ADA_FLAG_NEED_OTAG; softc->ordered_tag_count++; - tag_code = 0;//MSG_ORDERED_Q_TAG; + tag_code = 0; } else { - tag_code = 0;//MSG_SIMPLE_Q_TAG; + tag_code = 1; } switch (bp->bio_cmd) { case BIO_READ: @@ -838,7 +812,7 @@ bp->bio_bcount, ada_default_timeout*1000); - if (softc->flags & ADA_FLAG_CAN_NCQ) { + if ((softc->flags & ADA_FLAG_CAN_NCQ) && tag_code) { if (bp->bio_cmd == BIO_READ) { ata_ncq_cmd(ataio, ATA_READ_FPDMA_QUEUED, lba, count); @@ -848,21 +822,43 @@ } } else if ((softc->flags & ADA_FLAG_CAN_48BIT) && (lba + count >= ATA_MAX_28BIT_LBA || - count >= 256)) { - if (bp->bio_cmd == BIO_READ) { - ata_48bit_cmd(ataio, ATA_READ_DMA48, - 0, lba, count); + count > 256)) { + if (softc->flags & ADA_FLAG_CAN_DMA) { + if (bp->bio_cmd == BIO_READ) { + ata_48bit_cmd(ataio, ATA_READ_DMA48, + 0, lba, count); + } else { + ata_48bit_cmd(ataio, ATA_WRITE_DMA48, + 0, lba, count); + } } else { - ata_48bit_cmd(ataio, ATA_WRITE_DMA48, - 0, lba, count); + if (bp->bio_cmd == BIO_READ) { + ata_48bit_cmd(ataio, ATA_READ_MUL48, + 0, lba, count); + } else { + ata_48bit_cmd(ataio, ATA_WRITE_MUL48, + 0, lba, count); + } } } else { - if (bp->bio_cmd == BIO_READ) { - ata_28bit_cmd(ataio, ATA_READ_DMA, - 0, lba, count); + if (count == 256) + count = 0; + if (softc->flags & ADA_FLAG_CAN_DMA) { + if (bp->bio_cmd == BIO_READ) { + ata_28bit_cmd(ataio, ATA_READ_DMA, + 0, lba, count); + } else { + ata_28bit_cmd(ataio, ATA_WRITE_DMA, + 0, lba, count); + } } else { - ata_28bit_cmd(ataio, ATA_WRITE_DMA, - 0, lba, count); + if (bp->bio_cmd == BIO_READ) { + ata_28bit_cmd(ataio, ATA_READ_MUL, + 0, lba, count); + } else { + ata_28bit_cmd(ataio, ATA_WRITE_MUL, + 0, lba, count); + } } } } @@ -872,7 +868,7 @@ 1, adadone, CAM_DIR_NONE, - tag_code, + 0, NULL, 0, ada_default_timeout*1000); @@ -893,12 +889,6 @@ &start_ccb->ccb_h, periph_links.le); softc->outstanding_cmds++; - /* We expect a unit attention from this device */ - if ((softc->flags & ADA_FLAG_RETRY_UA) != 0) { - start_ccb->ccb_h.ccb_state |= ADA_CCB_RETRY_UA; - softc->flags &= ~ADA_FLAG_RETRY_UA; - } - start_ccb->ccb_h.ccb_bp = bp; bp = bioq_first(&softc->bio_queue); @@ -911,7 +901,22 @@ } break; } + case ADA_STATE_SET_MULTI: + { + cam_fill_ataio(ataio, + ada_retry_count, + adadone, + CAM_DIR_NONE, + 0, + NULL, + 0, + ada_default_timeout*1000); + + ata_28bit_cmd(ataio, ATA_SET_MULTI, 0, 0, softc->secsperint); + start_ccb->ccb_h.ccb_state = ADA_CCB_SET_MULTI; + xpt_action(start_ccb); } + } } static void @@ -931,16 +936,12 @@ if ((done_ccb->ccb_h.status & CAM_STATUS_MASK) != CAM_REQ_CMP) { int error; - error = adaerror(done_ccb, CAM_RETRY_SELTO, 0); + error = adaerror(done_ccb, 0, 0); if (error == ERESTART) { - /* - * A retry was scheuled, so - * just return. - */ + /* A retry was scheduled, so just return. */ return; } if (error != 0) { - if (error == ENXIO) { /* * Catastrophic error. Mark our pack as @@ -1002,6 +1003,35 @@ wakeup(&done_ccb->ccb_h.cbfcnp); return; } + case ADA_CCB_SET_MULTI: + { + if ((done_ccb->ccb_h.status & CAM_STATUS_MASK) == CAM_REQ_CMP) { + } else { + int error; + + error = adaerror(done_ccb, 0, 0); + if (error == ERESTART) { + /* A retry was scheduled, so just return. */ + return; + } + } + softc->state = ADA_STATE_NORMAL; + /* + * Since our peripheral may be invalidated by an error + * above or an external event, we must release our CCB + * before releasing the probe lock on the peripheral. + * The peripheral will only go away once the last lock + * is removed, and we need it around for the CCB release + * operation. + */ + xpt_release_ccb(done_ccb); + if (bioq_first(&softc->bio_queue) != NULL) { + /* Have more work to do, so ensure we stay scheduled */ + xpt_schedule(periph, 1); + } + cam_periph_release_locked(periph); + return; + } case ADA_CCB_DUMP: /* No-op. We're polling */ return; @@ -1049,10 +1079,6 @@ lbasize = (u_int32_t)cgd->ident_data.lba_size_1 | ((u_int32_t)cgd->ident_data.lba_size_2 << 16); - /* does this device need oldstyle CHS addressing */ -// if (!ad_version(cgd->ident_data.version_major) || !lbasize) -// atadev->flags |= ATA_D_USE_CHS; - /* use the 28bit LBA size if valid or bigger than the CHS mapping */ if (cgd->ident_data.cylinders == 16383 || dp->sectors < lbasize) dp->sectors = lbasize; ==== //depot/projects/usb/src/sys/cam/ata/ata_xpt.c#4 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/cam/ata/ata_xpt.c,v 1.5 2009/08/30 16:31:25 mav Exp $"); +__FBSDID("$FreeBSD: src/sys/cam/ata/ata_xpt.c,v 1.7 2009/10/21 15:27:48 mav Exp $"); #include #include @@ -62,7 +62,6 @@ #include #include -#include #include #include /* for xpt_print below */ #include "opt_cam.h" @@ -755,11 +754,8 @@ strlen(path->device->serial_num); } - path->device->flags |= CAM_DEV_INQUIRY_DATA_VALID; - - scsi_find_quirk(path->device); + path->device->flags |= CAM_DEV_IDENTIFY_DATA_VALID; ata_device_transport(path); - PROBE_SET_ACTION(softc, PROBE_SETMODE); xpt_release_ccb(done_ccb); xpt_schedule(periph, priority); @@ -793,7 +789,7 @@ case PROBE_SETMODE: { if ((done_ccb->ccb_h.status & CAM_STATUS_MASK) == CAM_REQ_CMP) { - if (path->device->protocol == PROTO_ATA) { +modedone: if (path->device->protocol == PROTO_ATA) { path->device->flags &= ~CAM_DEV_UNCONFIGURED; done_ccb->ccb_h.func_code = XPT_GDEV_TYPE; xpt_action(done_ccb); @@ -815,6 +811,10 @@ xpt_release_devq(done_ccb->ccb_h.path, /*count*/1, /*run_queue*/TRUE); } + /* Old PIO2 devices may not support mode setting. */ + if (ata_max_pmode(ident_buf) <= ATA_PIO2 && + (ident_buf->capabilities1 & ATA_SUPPORT_IORDY) == 0) + goto modedone; goto device_fail; } case PROBE_INQUIRY: @@ -854,8 +854,7 @@ } scsi_find_quirk(path->device); - -// scsi_devise_transport(path); + ata_device_transport(path); path->device->flags &= ~CAM_DEV_UNCONFIGURED; done_ccb->ccb_h.func_code = XPT_GDEV_TYPE; xpt_action(done_ccb); @@ -876,7 +875,7 @@ } case PROBE_PM_PID: if ((done_ccb->ccb_h.status & CAM_STATUS_MASK) == CAM_REQ_CMP) { - if ((path->device->flags & CAM_DEV_INQUIRY_DATA_VALID) == 0) + if ((path->device->flags & CAM_DEV_IDENTIFY_DATA_VALID) == 0) bzero(ident_buf, sizeof(*ident_buf)); softc->pm_pid = (done_ccb->ataio.res.lba_high << 24) + (done_ccb->ataio.res.lba_mid << 16) + @@ -940,7 +939,7 @@ softc->pm_ports = 5; printf("PM ports: %d\n", softc->pm_ports); ident_buf->config = softc->pm_ports; - path->device->flags |= CAM_DEV_INQUIRY_DATA_VALID; + path->device->flags |= CAM_DEV_IDENTIFY_DATA_VALID; softc->pm_step = 0; PROBE_SET_ACTION(softc, PROBE_PM_RESET); xpt_release_ccb(done_ccb); @@ -1170,7 +1169,10 @@ } scan_info->request_ccb = request_ccb; scan_info->cpi = &work_ccb->cpi; - scan_info->found = 0x8001; + if (scan_info->cpi->transport == XPORT_ATA) + scan_info->found = 0x0003; + else + scan_info->found = 0x8001; scan_info->counter = 0; /* If PM supported, probe it first. */ if (scan_info->cpi->hba_inquiry & PI_SATAPM) @@ -1212,7 +1214,8 @@ take_next: /* Take next device. Wrap from 15 (PM) to 0. */ scan_info->counter = (scan_info->counter + 1 ) & 0x0f; - if (scan_info->counter >= scan_info->cpi->max_target+1) { + if (scan_info->counter > scan_info->cpi->max_target - + ((scan_info->cpi->hba_inquiry & PI_SATAPM) ? 1 : 0)) { xpt_free_ccb(work_ccb); xpt_free_ccb((union ccb *)scan_info->cpi); request_ccb = scan_info->request_ccb; @@ -1399,68 +1402,29 @@ ata_device_transport(struct cam_path *path) { struct ccb_pathinq cpi; -// struct ccb_trans_settings cts; - struct scsi_inquiry_data *inq_buf; + struct ccb_trans_settings cts; + struct scsi_inquiry_data *inq_buf = NULL; + struct ata_params *ident_buf = NULL; /* Get transport information from the SIM */ xpt_setup_ccb(&cpi.ccb_h, path, /*priority*/1); cpi.ccb_h.func_code = XPT_PATH_INQ; xpt_action((union ccb *)&cpi); - inq_buf = NULL; -// if ((path->device->flags & CAM_DEV_INQUIRY_DATA_VALID) != 0) -// inq_buf = &path->device->inq_data; -// path->device->protocol = cpi.protocol; -// path->device->protocol_version = -// inq_buf != NULL ? SID_ANSI_REV(inq_buf) : cpi.protocol_version; path->device->transport = cpi.transport; - path->device->transport_version = cpi.transport_version; -#if 0 - /* - * Any device not using SPI3 features should - * be considered SPI2 or lower. - */ - if (inq_buf != NULL) { - if (path->device->transport == XPORT_SPI - && (inq_buf->spi3data & SID_SPI_MASK) == 0 - && path->device->transport_version > 2) - path->device->transport_version = 2; - } else { - struct cam_ed* otherdev; - - for (otherdev = TAILQ_FIRST(&path->target->ed_entries); - otherdev != NULL; - otherdev = TAILQ_NEXT(otherdev, links)) { - if (otherdev != path->device) - break; - } - - if (otherdev != NULL) { - /* - * Initially assume the same versioning as - * prior luns for this target. - */ - path->device->protocol_version = - otherdev->protocol_version; - path->device->transport_version = - otherdev->transport_version; - } else { - /* Until we know better, opt for safty */ - path->device->protocol_version = 2; - if (path->device->transport == XPORT_SPI) - path->device->transport_version = 2; - else - path->device->transport_version = 0; - } + if ((path->device->flags & CAM_DEV_INQUIRY_DATA_VALID) != 0) + inq_buf = &path->device->inq_data; + if ((path->device->flags & CAM_DEV_IDENTIFY_DATA_VALID) != 0) + ident_buf = &path->device->ident_data; + if (path->device->protocol == PROTO_ATA) { + path->device->protocol_version = ident_buf ? + ata_version(ident_buf->version_major) : cpi.protocol_version; + } else if (path->device->protocol == PROTO_SCSI) { + path->device->protocol_version = inq_buf ? + SID_ANSI_REV(inq_buf) : cpi.protocol_version; } - - /* - * XXX - * For a device compliant with SPC-2 we should be able - * to determine the transport version supported by - * scrutinizing the version descriptors in the - * inquiry buffer. - */ + path->device->transport_version = ident_buf ? + ata_version(ident_buf->version_major) : cpi.transport_version; /* Tell the controller what we think */ xpt_setup_ccb(&cts.ccb_h, path, /*priority*/1); @@ -1473,7 +1437,6 @@ cts.proto_specific.valid = 0; cts.xport_specific.valid = 0; xpt_action((union ccb *)&cts); -#endif } static void @@ -1629,114 +1592,6 @@ scsi->flags &= ~CTS_SCSI_FLAGS_TAG_ENB; } - /* SPI specific sanity checking */ - if (cts->transport == XPORT_SPI && async_update == FALSE) { - u_int spi3caps; - struct ccb_trans_settings_spi *spi; - struct ccb_trans_settings_spi *cur_spi; - - spi = &cts->xport_specific.spi; - - cur_spi = &cur_cts.xport_specific.spi; - - /* Fill in any gaps in what the user gave us */ - if ((spi->valid & CTS_SPI_VALID_SYNC_RATE) == 0) - spi->sync_period = cur_spi->sync_period; - if ((cur_spi->valid & CTS_SPI_VALID_SYNC_RATE) == 0) - spi->sync_period = 0; - if ((spi->valid & CTS_SPI_VALID_SYNC_OFFSET) == 0) - spi->sync_offset = cur_spi->sync_offset; - if ((cur_spi->valid & CTS_SPI_VALID_SYNC_OFFSET) == 0) - spi->sync_offset = 0; - if ((spi->valid & CTS_SPI_VALID_PPR_OPTIONS) == 0) - spi->ppr_options = cur_spi->ppr_options; - if ((cur_spi->valid & CTS_SPI_VALID_PPR_OPTIONS) == 0) - spi->ppr_options = 0; - if ((spi->valid & CTS_SPI_VALID_BUS_WIDTH) == 0) - spi->bus_width = cur_spi->bus_width; - if ((cur_spi->valid & CTS_SPI_VALID_BUS_WIDTH) == 0) - spi->bus_width = 0; - if ((spi->valid & CTS_SPI_VALID_DISC) == 0) { - spi->flags &= ~CTS_SPI_FLAGS_DISC_ENB; - spi->flags |= cur_spi->flags & CTS_SPI_FLAGS_DISC_ENB; - } - if ((cur_spi->valid & CTS_SPI_VALID_DISC) == 0) - spi->flags &= ~CTS_SPI_FLAGS_DISC_ENB; - if (((device->flags & CAM_DEV_INQUIRY_DATA_VALID) != 0 - && (inq_data->flags & SID_Sync) == 0 - && cts->type == CTS_TYPE_CURRENT_SETTINGS) - || ((cpi.hba_inquiry & PI_SDTR_ABLE) == 0)) { - /* Force async */ - spi->sync_period = 0; - spi->sync_offset = 0; - } - - switch (spi->bus_width) { - case MSG_EXT_WDTR_BUS_32_BIT: - if (((device->flags & CAM_DEV_INQUIRY_DATA_VALID) == 0 - || (inq_data->flags & SID_WBus32) != 0 - || cts->type == CTS_TYPE_USER_SETTINGS) - && (cpi.hba_inquiry & PI_WIDE_32) != 0) - break; - /* Fall Through to 16-bit */ - case MSG_EXT_WDTR_BUS_16_BIT: - if (((device->flags & CAM_DEV_INQUIRY_DATA_VALID) == 0 - || (inq_data->flags & SID_WBus16) != 0 - || cts->type == CTS_TYPE_USER_SETTINGS) - && (cpi.hba_inquiry & PI_WIDE_16) != 0) { - spi->bus_width = MSG_EXT_WDTR_BUS_16_BIT; - break; - } - /* Fall Through to 8-bit */ - default: /* New bus width?? */ - case MSG_EXT_WDTR_BUS_8_BIT: - /* All targets can do this */ - spi->bus_width = MSG_EXT_WDTR_BUS_8_BIT; - break; - } - - spi3caps = cpi.xport_specific.spi.ppr_options; - if ((device->flags & CAM_DEV_INQUIRY_DATA_VALID) != 0 - && cts->type == CTS_TYPE_CURRENT_SETTINGS) - spi3caps &= inq_data->spi3data; - - if ((spi3caps & SID_SPI_CLOCK_DT) == 0) - spi->ppr_options &= ~MSG_EXT_PPR_DT_REQ; - - if ((spi3caps & SID_SPI_IUS) == 0) - spi->ppr_options &= ~MSG_EXT_PPR_IU_REQ; - - if ((spi3caps & SID_SPI_QAS) == 0) - spi->ppr_options &= ~MSG_EXT_PPR_QAS_REQ; - - /* No SPI Transfer settings are allowed unless we are wide */ - if (spi->bus_width == 0) - spi->ppr_options = 0; - - if ((spi->valid & CTS_SPI_VALID_DISC) - && ((spi->flags & CTS_SPI_FLAGS_DISC_ENB) == 0)) { - /* - * Can't tag queue without disconnection. - */ - scsi->flags &= ~CTS_SCSI_FLAGS_TAG_ENB; - scsi->valid |= CTS_SCSI_VALID_TQ; - } - - /* - * If we are currently performing tagged transactions to - * this device and want to change its negotiation parameters, - * go non-tagged for a bit to give the controller a chance to - * negotiate unhampered by tag messages. - */ - if (cts->type == CTS_TYPE_CURRENT_SETTINGS - && (device->inq_flags & SID_CmdQue) != 0 - && (scsi->flags & CTS_SCSI_FLAGS_TAG_ENB) != 0 - && (spi->flags & (CTS_SPI_VALID_SYNC_RATE| - CTS_SPI_VALID_SYNC_OFFSET| - CTS_SPI_VALID_BUS_WIDTH)) != 0) - scsi_toggle_tags(cts->ccb_h.path); - } - if (cts->type == CTS_TYPE_CURRENT_SETTINGS && (scsi->valid & CTS_SCSI_VALID_TQ) != 0) { int device_tagenb; ==== //depot/projects/usb/src/sys/cam/cam_xpt.c#23 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/cam/cam_xpt.c,v 1.224 2009/09/15 00:15:24 ken Exp $"); +__FBSDID("$FreeBSD: src/sys/cam/cam_xpt.c,v 1.225 2009/10/21 15:57:16 mav Exp $"); #include #include @@ -4148,8 +4148,6 @@ sendq->qfrozen_cnt--; if (sendq->qfrozen_cnt == 0) { - struct cam_eb *bus; - /* * If there is a timeout scheduled to release this * sim queue, remove it. The queue frozen count is @@ -4159,15 +4157,17 @@ callout_stop(&sim->callout); sim->flags &= ~CAM_SIM_REL_TIMEOUT_PENDING; } - bus = xpt_find_bus(sim->path_id); if (run_queue) { + struct cam_eb *bus; + /* * Now that we are unfrozen run the send queue. */ + bus = xpt_find_bus(sim->path_id); xpt_run_dev_sendq(bus); + xpt_release_bus(bus); } - xpt_release_bus(bus); } } } ==== //depot/projects/usb/src/sys/cam/cam_xpt_internal.h#3 (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/cam/cam_xpt_internal.h,v 1.2 2009/09/06 19:06:50 mav Exp $ + * $FreeBSD: src/sys/cam/cam_xpt_internal.h,v 1.3 2009/10/21 15:27:48 mav Exp $ */ #ifndef _CAM_CAM_XPT_INTERNAL_H @@ -116,6 +116,7 @@ #define CAM_DEV_INQUIRY_DATA_VALID 0x40 #define CAM_DEV_IN_DV 0x80 #define CAM_DEV_DV_HIT_BOTTOM 0x100 +#define CAM_DEV_IDENTIFY_DATA_VALID 0x200 u_int32_t tag_delay_count; #define CAM_TAG_DELAY_COUNT 5 u_int32_t tag_saved_openings; ==== //depot/projects/usb/src/sys/compat/x86bios/x86bios.c#2 (text+ko) ==== @@ -1,5 +1,6 @@ /*- * Copyright (c) 2009 Alex Keda + * Copyright (c) 2009 Jung-uk Kim * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -22,39 +23,162 @@ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. - * */ #include -__FBSDID("$FreeBSD: src/sys/compat/x86bios/x86bios.c,v 1.5 2009/09/28 08:14:15 delphij Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/x86bios/x86bios.c,v 1.7 2009/10/19 21:01:42 jkim Exp $"); #include "opt_x86bios.h" #include +#include #include #include +#include #include #include +#include + +#include +#include +#include + >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Thu Oct 22 07:33:30 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4DD511065679; Thu, 22 Oct 2009 07:33:30 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id ED092106566C for ; Thu, 22 Oct 2009 07:33:29 +0000 (UTC) (envelope-from mav@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id D93838FC17 for ; Thu, 22 Oct 2009 07:33:29 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n9M7XTxG069807 for ; Thu, 22 Oct 2009 07:33:29 GMT (envelope-from mav@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n9M7XS8j069805 for perforce@freebsd.org; Thu, 22 Oct 2009 07:33:28 GMT (envelope-from mav@freebsd.org) Date: Thu, 22 Oct 2009 07:33:28 GMT Message-Id: <200910220733.n9M7XS8j069805@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mav@freebsd.org using -f From: Alexander Motin To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 169671 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 22 Oct 2009 07:33:30 -0000 http://p4web.freebsd.org/chv.cgi?CH=169671 Change 169671 by mav@mav_mavbook on 2009/10/22 07:32:55 IFC Affected files ... .. //depot/projects/scottl-camlock/src/Makefile.inc1#8 integrate .. //depot/projects/scottl-camlock/src/ObsoleteFiles.inc#16 integrate .. //depot/projects/scottl-camlock/src/bin/cat/Makefile#3 integrate .. //depot/projects/scottl-camlock/src/bin/csh/iconv_stub.c#2 integrate .. //depot/projects/scottl-camlock/src/bin/ls/ls.c#3 integrate .. //depot/projects/scottl-camlock/src/bin/sh/parser.c#6 integrate .. //depot/projects/scottl-camlock/src/bin/uuidgen/Makefile#2 integrate .. //depot/projects/scottl-camlock/src/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c#2 integrate .. //depot/projects/scottl-camlock/src/contrib/gcc/config/i386/i386.c#3 integrate .. //depot/projects/scottl-camlock/src/contrib/openpam/doc/man/pam.conf.5#3 integrate .. //depot/projects/scottl-camlock/src/crypto/openssh/sshd_config#4 integrate .. //depot/projects/scottl-camlock/src/etc/defaults/rc.conf#10 integrate .. //depot/projects/scottl-camlock/src/etc/gettytab#2 integrate .. //depot/projects/scottl-camlock/src/etc/rc.d/bgfsck#3 integrate .. //depot/projects/scottl-camlock/src/etc/rc.d/cleartmp#3 integrate .. //depot/projects/scottl-camlock/src/etc/rc.d/faith#3 integrate .. //depot/projects/scottl-camlock/src/etc/rc.d/fsck#4 integrate .. //depot/projects/scottl-camlock/src/etc/rc.d/hostid#5 integrate .. //depot/projects/scottl-camlock/src/etc/rc.d/hostname#4 integrate .. //depot/projects/scottl-camlock/src/etc/rc.d/ldconfig#3 integrate .. //depot/projects/scottl-camlock/src/etc/rc.d/motd#3 integrate .. //depot/projects/scottl-camlock/src/etc/rc.d/mountcritlocal#3 integrate .. //depot/projects/scottl-camlock/src/etc/rc.d/moused#4 integrate .. //depot/projects/scottl-camlock/src/etc/rc.d/netif#8 integrate .. //depot/projects/scottl-camlock/src/etc/rc.d/newsyslog#3 integrate .. //depot/projects/scottl-camlock/src/etc/rc.d/nfsclient#3 integrate .. //depot/projects/scottl-camlock/src/etc/rc.d/pf#7 integrate .. //depot/projects/scottl-camlock/src/etc/rc.d/savecore#3 integrate .. //depot/projects/scottl-camlock/src/etc/rc.d/stf#3 integrate .. //depot/projects/scottl-camlock/src/etc/rc.subr#7 integrate .. //depot/projects/scottl-camlock/src/games/number/Makefile#2 integrate .. //depot/projects/scottl-camlock/src/games/number/number.c#2 integrate .. //depot/projects/scottl-camlock/src/kerberos5/lib/libgssapi_krb5/Makefile#2 integrate .. //depot/projects/scottl-camlock/src/kerberos5/lib/libgssapi_spnego/Makefile#2 integrate .. //depot/projects/scottl-camlock/src/lib/libc/gen/getcwd.c#2 integrate .. //depot/projects/scottl-camlock/src/lib/libc/include/namespace.h#3 integrate .. //depot/projects/scottl-camlock/src/lib/libc/include/un-namespace.h#3 integrate .. //depot/projects/scottl-camlock/src/lib/libc/nls/C.msg#2 integrate .. //depot/projects/scottl-camlock/src/lib/libc/sys/Symbol.map#9 integrate .. //depot/projects/scottl-camlock/src/lib/libc/sys/intro.2#4 integrate .. //depot/projects/scottl-camlock/src/lib/libc/sys/nanosleep.2#2 integrate .. //depot/projects/scottl-camlock/src/lib/libfetch/common.c#3 integrate .. //depot/projects/scottl-camlock/src/lib/libthr/pthread.map#3 integrate .. //depot/projects/scottl-camlock/src/lib/libthr/thread/thr_private.h#3 integrate .. //depot/projects/scottl-camlock/src/lib/libthr/thread/thr_syscalls.c#3 integrate .. //depot/projects/scottl-camlock/src/libexec/rtld-elf/rtld.c#6 integrate .. //depot/projects/scottl-camlock/src/release/doc/README#2 integrate .. //depot/projects/scottl-camlock/src/release/doc/en_US.ISO8859-1/errata/article.sgml#2 integrate .. //depot/projects/scottl-camlock/src/release/doc/share/mk/doc.relnotes.mk#2 integrate .. //depot/projects/scottl-camlock/src/release/doc/share/sgml/release.dsl#3 integrate .. //depot/projects/scottl-camlock/src/release/doc/share/sgml/release.ent#3 integrate .. //depot/projects/scottl-camlock/src/release/scripts/package-split.py#5 integrate .. //depot/projects/scottl-camlock/src/sbin/Makefile.inc#2 integrate .. //depot/projects/scottl-camlock/src/sbin/adjkerntz/Makefile#2 integrate .. //depot/projects/scottl-camlock/src/sbin/atacontrol/Makefile#2 integrate .. //depot/projects/scottl-camlock/src/sbin/atm/atmconfig/Makefile#2 integrate .. //depot/projects/scottl-camlock/src/sbin/badsect/Makefile#2 integrate .. //depot/projects/scottl-camlock/src/sbin/bsdlabel/Makefile#3 integrate .. //depot/projects/scottl-camlock/src/sbin/camcontrol/Makefile#3 integrate .. //depot/projects/scottl-camlock/src/sbin/ccdconfig/Makefile#2 integrate .. //depot/projects/scottl-camlock/src/sbin/clri/Makefile#2 integrate .. //depot/projects/scottl-camlock/src/sbin/comcontrol/Makefile#2 integrate .. //depot/projects/scottl-camlock/src/sbin/conscontrol/Makefile#2 integrate .. //depot/projects/scottl-camlock/src/sbin/dhclient/Makefile#2 integrate .. //depot/projects/scottl-camlock/src/sbin/dhclient/bpf.c#3 integrate .. //depot/projects/scottl-camlock/src/sbin/dhclient/dhcpd.h#2 integrate .. //depot/projects/scottl-camlock/src/sbin/dhclient/packet.c#2 integrate .. //depot/projects/scottl-camlock/src/sbin/dmesg/Makefile#2 integrate .. //depot/projects/scottl-camlock/src/sbin/dump/Makefile#2 integrate .. //depot/projects/scottl-camlock/src/sbin/dumpfs/Makefile#2 integrate .. //depot/projects/scottl-camlock/src/sbin/dumpfs/dumpfs.c#3 integrate .. //depot/projects/scottl-camlock/src/sbin/dumpon/Makefile#2 integrate .. //depot/projects/scottl-camlock/src/sbin/geom/Makefile#3 integrate .. //depot/projects/scottl-camlock/src/sbin/geom/Makefile.inc#2 integrate .. //depot/projects/scottl-camlock/src/sbin/geom/class/part/gpart.8#2 integrate .. //depot/projects/scottl-camlock/src/sbin/ggate/Makefile.inc#2 integrate .. //depot/projects/scottl-camlock/src/sbin/growfs/Makefile#2 integrate .. //depot/projects/scottl-camlock/src/sbin/gvinum/Makefile#2 integrate .. //depot/projects/scottl-camlock/src/sbin/ifconfig/af_nd6.c#2 integrate .. //depot/projects/scottl-camlock/src/sbin/ifconfig/ifieee80211.c#8 integrate .. //depot/projects/scottl-camlock/src/sbin/init/Makefile#3 integrate .. //depot/projects/scottl-camlock/src/sbin/ipf/Makefile.inc#2 integrate .. //depot/projects/scottl-camlock/src/sbin/iscontrol/Makefile#2 integrate .. //depot/projects/scottl-camlock/src/sbin/kldunload/Makefile#2 integrate .. //depot/projects/scottl-camlock/src/sbin/ldconfig/Makefile#2 integrate .. //depot/projects/scottl-camlock/src/sbin/md5/Makefile#2 integrate .. //depot/projects/scottl-camlock/src/sbin/mdconfig/Makefile#2 integrate .. //depot/projects/scottl-camlock/src/sbin/mdmfs/Makefile#2 integrate .. //depot/projects/scottl-camlock/src/sbin/mksnap_ffs/Makefile#3 integrate .. //depot/projects/scottl-camlock/src/sbin/mount/Makefile#2 integrate .. //depot/projects/scottl-camlock/src/sbin/mount_autofs/Makefile#2 integrate .. //depot/projects/scottl-camlock/src/sbin/mount_cd9660/Makefile#2 integrate .. //depot/projects/scottl-camlock/src/sbin/mount_ext2fs/Makefile#2 integrate .. //depot/projects/scottl-camlock/src/sbin/mount_msdosfs/Makefile#2 integrate .. //depot/projects/scottl-camlock/src/sbin/mount_nullfs/Makefile#2 integrate .. //depot/projects/scottl-camlock/src/sbin/mount_reiserfs/Makefile#2 integrate .. //depot/projects/scottl-camlock/src/sbin/mount_unionfs/Makefile#2 integrate .. //depot/projects/scottl-camlock/src/sbin/newfs_msdos/Makefile#2 integrate .. //depot/projects/scottl-camlock/src/sbin/nfsiod/Makefile#2 integrate .. //depot/projects/scottl-camlock/src/sbin/pfctl/Makefile#3 integrate .. //depot/projects/scottl-camlock/src/sbin/rcorder/Makefile#2 integrate .. //depot/projects/scottl-camlock/src/sbin/reboot/Makefile#2 integrate .. //depot/projects/scottl-camlock/src/sbin/recoverdisk/Makefile#2 integrate .. //depot/projects/scottl-camlock/src/sbin/routed/Makefile#3 integrate .. //depot/projects/scottl-camlock/src/sbin/savecore/Makefile#2 integrate .. //depot/projects/scottl-camlock/src/sbin/sconfig/Makefile#2 integrate .. //depot/projects/scottl-camlock/src/sbin/shutdown/Makefile#2 integrate .. //depot/projects/scottl-camlock/src/sbin/spppcontrol/Makefile#2 integrate .. //depot/projects/scottl-camlock/src/sbin/swapon/Makefile#3 integrate .. //depot/projects/scottl-camlock/src/sbin/sysctl/sysctl.c#4 integrate .. //depot/projects/scottl-camlock/src/sbin/tunefs/Makefile#2 integrate .. //depot/projects/scottl-camlock/src/sbin/tunefs/tunefs.8#3 integrate .. //depot/projects/scottl-camlock/src/share/man/man4/Makefile#13 integrate .. //depot/projects/scottl-camlock/src/share/man/man4/hifn.4#3 integrate .. //depot/projects/scottl-camlock/src/share/man/man4/ichwd.4#2 integrate .. //depot/projects/scottl-camlock/src/share/man/man4/lindev.4#2 integrate .. //depot/projects/scottl-camlock/src/share/man/man4/malo.4#2 integrate .. //depot/projects/scottl-camlock/src/share/man/man4/sbp_targ.4#2 integrate .. //depot/projects/scottl-camlock/src/share/man/man4/targ.4#2 integrate .. //depot/projects/scottl-camlock/src/share/man/man4/urtw.4#4 integrate .. //depot/projects/scottl-camlock/src/share/man/man9/BUS_BIND_INTR.9#1 branch .. //depot/projects/scottl-camlock/src/share/man/man9/BUS_DESCRIBE_INTR.9#1 branch .. //depot/projects/scottl-camlock/src/share/man/man9/Makefile#11 integrate .. //depot/projects/scottl-camlock/src/share/misc/bsd-family-tree#5 integrate .. //depot/projects/scottl-camlock/src/share/misc/committers-src.dot#7 integrate .. //depot/projects/scottl-camlock/src/share/mk/bsd.sys.mk#3 integrate .. //depot/projects/scottl-camlock/src/share/zoneinfo/Makefile#3 integrate .. //depot/projects/scottl-camlock/src/share/zoneinfo/asia#8 integrate .. //depot/projects/scottl-camlock/src/share/zoneinfo/australasia#6 integrate .. //depot/projects/scottl-camlock/src/sys/amd64/acpica/acpi_machdep.c#11 integrate .. //depot/projects/scottl-camlock/src/sys/amd64/acpica/acpi_wakecode.S#3 integrate .. //depot/projects/scottl-camlock/src/sys/amd64/acpica/acpi_wakeup.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/amd64/amd64/intr_machdep.c#19 integrate .. //depot/projects/scottl-camlock/src/sys/amd64/amd64/nexus.c#16 integrate .. //depot/projects/scottl-camlock/src/sys/amd64/amd64/pmap.c#35 integrate .. //depot/projects/scottl-camlock/src/sys/amd64/conf/GENERIC#28 integrate .. //depot/projects/scottl-camlock/src/sys/amd64/include/atomic.h#9 integrate .. //depot/projects/scottl-camlock/src/sys/amd64/include/elf.h#5 integrate .. //depot/projects/scottl-camlock/src/sys/amd64/include/intr_machdep.h#18 integrate .. //depot/projects/scottl-camlock/src/sys/arm/arm/pmap.c#25 integrate .. //depot/projects/scottl-camlock/src/sys/arm/conf/HL200#4 integrate .. //depot/projects/scottl-camlock/src/sys/arm/conf/KB920X#11 integrate .. //depot/projects/scottl-camlock/src/sys/arm/include/elf.h#7 integrate .. //depot/projects/scottl-camlock/src/sys/arm/mv/mv_machdep.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/boot/i386/zfsboot/zfsboot.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/cam/ata/ata_da.c#30 integrate .. //depot/projects/scottl-camlock/src/sys/cam/ata/ata_xpt.c#40 integrate .. //depot/projects/scottl-camlock/src/sys/cam/cam_xpt.c#106 integrate .. //depot/projects/scottl-camlock/src/sys/cam/cam_xpt_internal.h#9 integrate .. //depot/projects/scottl-camlock/src/sys/cam/scsi/scsi_low.c#17 integrate .. //depot/projects/scottl-camlock/src/sys/cddl/compat/opensolaris/kern/opensolaris_policy.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/cddl/compat/opensolaris/sys/policy.h#3 integrate .. //depot/projects/scottl-camlock/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c#13 integrate .. //depot/projects/scottl-camlock/src/sys/compat/x86bios/x86bios.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/compat/x86bios/x86bios.h#4 integrate .. //depot/projects/scottl-camlock/src/sys/compat/x86bios/x86bios_alloc.c#3 delete .. //depot/projects/scottl-camlock/src/sys/conf/NOTES#37 integrate .. //depot/projects/scottl-camlock/src/sys/conf/files#49 integrate .. //depot/projects/scottl-camlock/src/sys/conf/files.amd64#25 integrate .. //depot/projects/scottl-camlock/src/sys/conf/files.i386#25 integrate .. //depot/projects/scottl-camlock/src/sys/conf/options#34 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/changes.txt#3 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/common/adfile.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/common/adisasm.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/common/adwalk.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/common/dmextern.c#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/common/dmtable.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/common/getopt.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/compiler/aslload.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/debugger/dbcmds.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/debugger/dbinput.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/disassembler/dmutils.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/disassembler/dmwalk.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/dispatcher/dswload.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/events/evregion.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/include/acapps.h#2 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/include/acdebug.h#3 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/include/acdisasm.h#3 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/include/acglobal.h#3 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/include/aclocal.h#3 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/include/acpixf.h#3 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/namespace/nsrepair.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/dev/acpica/utilities/utglobal.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/x86emu/x86emu_util.c#3 delete .. //depot/projects/scottl-camlock/src/sys/dev/agp/agp_i810.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/ahci/ahci.c#70 integrate .. //depot/projects/scottl-camlock/src/sys/dev/ahci/ahci.h#24 integrate .. //depot/projects/scottl-camlock/src/sys/dev/aic7xxx/aicasm/aicasm.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/dev/ath/ath_hal/ah_eeprom_v4k.c#1 branch .. //depot/projects/scottl-camlock/src/sys/dev/ath/ath_hal/ah_eeprom_v4k.h#1 branch .. //depot/projects/scottl-camlock/src/sys/dev/atkbdc/atkbd.c#9 integrate .. //depot/projects/scottl-camlock/src/sys/dev/bce/if_bce.c#16 integrate .. //depot/projects/scottl-camlock/src/sys/dev/bce/if_bcereg.h#11 integrate .. //depot/projects/scottl-camlock/src/sys/dev/bge/if_bge.c#25 integrate .. //depot/projects/scottl-camlock/src/sys/dev/dpms/dpms.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/drm/drm_pciids.h#12 integrate .. //depot/projects/scottl-camlock/src/sys/dev/drm/i915_drv.h#8 integrate .. //depot/projects/scottl-camlock/src/sys/dev/drm/mach64_state.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/fb/vesa.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/fdc/fdc.c#15 integrate .. //depot/projects/scottl-camlock/src/sys/dev/gem/if_gem_pci.c#9 integrate .. //depot/projects/scottl-camlock/src/sys/dev/hwpmc/hwpmc_mod.c#12 integrate .. //depot/projects/scottl-camlock/src/sys/dev/ips/ips_disk.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/mpt/mpt.c#21 integrate .. //depot/projects/scottl-camlock/src/sys/dev/mpt/mpt.h#24 integrate .. //depot/projects/scottl-camlock/src/sys/dev/mpt/mpt_cam.c#31 integrate .. //depot/projects/scottl-camlock/src/sys/dev/mpt/mpt_raid.c#18 integrate .. //depot/projects/scottl-camlock/src/sys/dev/mxge/if_mxge.c#22 integrate .. //depot/projects/scottl-camlock/src/sys/dev/mxge/if_mxge_var.h#16 integrate .. //depot/projects/scottl-camlock/src/sys/dev/pci/pci.c#26 integrate .. //depot/projects/scottl-camlock/src/sys/dev/pci/vga_pci.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/dev/ppbus/lpt.c#12 integrate .. //depot/projects/scottl-camlock/src/sys/dev/ppbus/pcfclock.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/dev/siis/siis.c#9 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/controller/ehci.c#9 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/controller/ehci.h#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/controller/ehci_ixp4xx.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/controller/ehci_mbus.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/controller/ehci_pci.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/controller/ehcireg.h#1 branch .. //depot/projects/scottl-camlock/src/sys/dev/usb/controller/ohci.c#8 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/controller/ohci.h#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/controller/ohci_atmelarm.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/controller/ohci_pci.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/controller/ohcireg.h#1 branch .. //depot/projects/scottl-camlock/src/sys/dev/usb/controller/uhci.c#8 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/controller/uhci.h#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/controller/uhci_pci.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/controller/uhcireg.h#1 branch .. //depot/projects/scottl-camlock/src/sys/dev/usb/input/ukbd.c#10 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/net/if_cdce.c#10 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/serial/uch341.c#2 delete .. //depot/projects/scottl-camlock/src/sys/dev/usb/serial/uchcom.c#8 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/storage/umass.c#11 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/usbdevs#31 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/wlan/if_rum.c#8 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/wlan/if_uath.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/wlan/if_upgt.c#9 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/wlan/if_ural.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/wlan/if_urtw.c#8 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/wlan/if_urtwreg.h#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/wlan/if_urtwvar.h#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/wlan/if_zyd.c#10 integrate .. //depot/projects/scottl-camlock/src/sys/fs/nfsclient/nfs_clport.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/fs/nfsclient/nfs_clstate.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/fs/nfsclient/nfs_clsubs.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/fs/tmpfs/tmpfs.h#5 integrate .. //depot/projects/scottl-camlock/src/sys/fs/tmpfs/tmpfs_subr.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/fs/tmpfs/tmpfs_vnops.c#9 integrate .. //depot/projects/scottl-camlock/src/sys/geom/concat/g_concat.c#10 integrate .. //depot/projects/scottl-camlock/src/sys/geom/label/g_label.c#9 integrate .. //depot/projects/scottl-camlock/src/sys/geom/part/g_part.c#9 integrate .. //depot/projects/scottl-camlock/src/sys/geom/part/g_part_gpt.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/geom/shsec/g_shsec.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/geom/stripe/g_stripe.c#10 integrate .. //depot/projects/scottl-camlock/src/sys/geom/uzip/g_uzip.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/i386/conf/GENERIC#27 integrate .. //depot/projects/scottl-camlock/src/sys/i386/conf/NOTES#26 integrate .. //depot/projects/scottl-camlock/src/sys/i386/i386/intr_machdep.c#19 integrate .. //depot/projects/scottl-camlock/src/sys/i386/i386/nexus.c#15 integrate .. //depot/projects/scottl-camlock/src/sys/i386/i386/pmap.c#36 integrate .. //depot/projects/scottl-camlock/src/sys/i386/include/atomic.h#11 integrate .. //depot/projects/scottl-camlock/src/sys/i386/include/elf.h#5 integrate .. //depot/projects/scottl-camlock/src/sys/i386/include/intr_machdep.h#18 integrate .. //depot/projects/scottl-camlock/src/sys/i386/xen/pmap.c#10 integrate .. //depot/projects/scottl-camlock/src/sys/ia64/ia64/pmap.c#21 integrate .. //depot/projects/scottl-camlock/src/sys/ia64/include/asm.h#3 integrate .. //depot/projects/scottl-camlock/src/sys/ia64/include/elf.h#5 integrate .. //depot/projects/scottl-camlock/src/sys/kern/bus_if.m#10 integrate .. //depot/projects/scottl-camlock/src/sys/kern/imgact_elf.c#14 integrate .. //depot/projects/scottl-camlock/src/sys/kern/init_main.c#21 integrate .. //depot/projects/scottl-camlock/src/sys/kern/kern_event.c#22 integrate .. //depot/projects/scottl-camlock/src/sys/kern/kern_exit.c#24 integrate .. //depot/projects/scottl-camlock/src/sys/kern/kern_intr.c#20 integrate .. //depot/projects/scottl-camlock/src/sys/kern/kern_sig.c#23 integrate .. //depot/projects/scottl-camlock/src/sys/kern/kern_thr.c#19 integrate .. //depot/projects/scottl-camlock/src/sys/kern/sched_ule.c#23 integrate .. //depot/projects/scottl-camlock/src/sys/kern/stack_protector.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/kern/subr_bus.c#34 integrate .. //depot/projects/scottl-camlock/src/sys/kern/subr_trap.c#15 integrate .. //depot/projects/scottl-camlock/src/sys/kern/sys_process.c#17 integrate .. //depot/projects/scottl-camlock/src/sys/kern/tty.c#22 integrate .. //depot/projects/scottl-camlock/src/sys/kern/tty_ttydisc.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/mips/include/elf.h#2 integrate .. //depot/projects/scottl-camlock/src/sys/mips/mips/pmap.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/modules/Makefile#38 integrate .. //depot/projects/scottl-camlock/src/sys/modules/dpms/Makefile#3 integrate .. //depot/projects/scottl-camlock/src/sys/modules/nfsclient/Makefile#10 integrate .. //depot/projects/scottl-camlock/src/sys/modules/pf/Makefile#11 integrate .. //depot/projects/scottl-camlock/src/sys/modules/ubser/Makefile#4 integrate .. //depot/projects/scottl-camlock/src/sys/modules/usb/Makefile#11 integrate .. //depot/projects/scottl-camlock/src/sys/modules/usb/uch341/Makefile#2 delete .. //depot/projects/scottl-camlock/src/sys/modules/usb/ucom/Makefile#2 integrate .. //depot/projects/scottl-camlock/src/sys/modules/vesa/Makefile#3 integrate .. //depot/projects/scottl-camlock/src/sys/modules/x86bios/Makefile#2 integrate .. //depot/projects/scottl-camlock/src/sys/net/flowtable.c#11 integrate .. //depot/projects/scottl-camlock/src/sys/net/if_bridge.c#23 integrate .. //depot/projects/scottl-camlock/src/sys/net/if_enc.c#10 integrate .. //depot/projects/scottl-camlock/src/sys/net/if_ethersubr.c#24 integrate .. //depot/projects/scottl-camlock/src/sys/net/if_gif.c#19 integrate .. //depot/projects/scottl-camlock/src/sys/net/pfil.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/net/pfil.h#9 integrate .. //depot/projects/scottl-camlock/src/sys/net80211/ieee80211_hwmp.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/net80211/ieee80211_mesh.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/net80211/ieee80211_mesh.h#5 integrate .. //depot/projects/scottl-camlock/src/sys/net80211/ieee80211_output.c#20 integrate .. //depot/projects/scottl-camlock/src/sys/net80211/ieee80211_proto.h#16 integrate .. //depot/projects/scottl-camlock/src/sys/netgraph/ng_bridge.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/if_ether.c#27 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/in.c#27 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/ip_fastfwd.c#16 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/ip_icmp.c#18 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/ip_input.c#25 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/ip_output.c#25 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/ip_var.h#16 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/ipfw/ip_fw2.c#10 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/ipfw/ip_fw_pfil.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/raw_ip.c#25 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/sctp_bsd_addr.c#11 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/sctp_os_bsd.h#15 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/sctp_output.c#17 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/sctp_pcb.c#17 integrate .. //depot/projects/scottl-camlock/src/sys/netinet6/icmp6.c#21 integrate .. //depot/projects/scottl-camlock/src/sys/netinet6/in6_ifattach.c#23 integrate .. //depot/projects/scottl-camlock/src/sys/netinet6/ip6_forward.c#12 integrate .. //depot/projects/scottl-camlock/src/sys/netinet6/ip6_input.c#23 integrate .. //depot/projects/scottl-camlock/src/sys/netinet6/ip6_output.c#17 integrate .. //depot/projects/scottl-camlock/src/sys/netinet6/ip6_var.h#14 integrate .. //depot/projects/scottl-camlock/src/sys/nfsclient/nfs_kdtrace.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/nfsclient/nfs_vnops.c#26 integrate .. //depot/projects/scottl-camlock/src/sys/pc98/conf/GENERIC#21 integrate .. //depot/projects/scottl-camlock/src/sys/powerpc/aim/mmu_oea.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/powerpc/aim/mmu_oea64.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/powerpc/aim/platform_chrp.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/powerpc/aim/swtch.S#4 integrate .. //depot/projects/scottl-camlock/src/sys/powerpc/aim/trap_subr.S#4 integrate .. //depot/projects/scottl-camlock/src/sys/powerpc/booke/pmap.c#10 integrate .. //depot/projects/scottl-camlock/src/sys/powerpc/include/elf.h#5 integrate .. //depot/projects/scottl-camlock/src/sys/powerpc/include/pmap.h#11 integrate .. //depot/projects/scottl-camlock/src/sys/powerpc/powerpc/mmu_if.m#10 integrate .. //depot/projects/scottl-camlock/src/sys/powerpc/powerpc/pmap_dispatch.c#12 integrate .. //depot/projects/scottl-camlock/src/sys/powerpc/powerpc/uio_machdep.c#8 integrate .. //depot/projects/scottl-camlock/src/sys/sparc64/conf/GENERIC#25 integrate .. //depot/projects/scottl-camlock/src/sys/sparc64/include/elf.h#5 integrate .. //depot/projects/scottl-camlock/src/sys/sparc64/sparc64/pmap.c#19 integrate .. //depot/projects/scottl-camlock/src/sys/sun4v/include/elf.h#4 integrate .. //depot/projects/scottl-camlock/src/sys/sun4v/sun4v/pmap.c#10 integrate .. //depot/projects/scottl-camlock/src/sys/sys/bus.h#18 integrate .. //depot/projects/scottl-camlock/src/sys/sys/interrupt.h#14 integrate .. //depot/projects/scottl-camlock/src/sys/sys/kernel.h#17 integrate .. //depot/projects/scottl-camlock/src/sys/sys/signalvar.h#10 integrate .. //depot/projects/scottl-camlock/src/sys/sys/ttyqueue.h#2 integrate .. //depot/projects/scottl-camlock/src/sys/teken/sequences#3 integrate .. //depot/projects/scottl-camlock/src/sys/teken/teken.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/teken/teken_subr.h#4 integrate .. //depot/projects/scottl-camlock/src/sys/tools/fw_stub.awk#4 integrate .. //depot/projects/scottl-camlock/src/sys/vm/pmap.h#13 integrate .. //depot/projects/scottl-camlock/src/sys/vm/swap_pager.c#21 integrate .. //depot/projects/scottl-camlock/src/sys/vm/vm_extern.h#16 integrate .. //depot/projects/scottl-camlock/src/sys/vm/vm_glue.c#17 integrate .. //depot/projects/scottl-camlock/src/tools/regression/fstest/tests/rename/21.t#2 integrate .. //depot/projects/scottl-camlock/src/tools/regression/lib/libutil/test-flopen.c#3 integrate .. //depot/projects/scottl-camlock/src/tools/regression/sigqueue/sigqtest1/sigqtest1.c#2 integrate .. //depot/projects/scottl-camlock/src/tools/regression/sigqueue/sigqtest2/sigqtest2.c#2 integrate .. //depot/projects/scottl-camlock/src/tools/tools/netrate/netsend/netsend.c#2 integrate .. //depot/projects/scottl-camlock/src/usr.bin/make/job.c#4 integrate .. //depot/projects/scottl-camlock/src/usr.bin/make/main.c#3 integrate .. //depot/projects/scottl-camlock/src/usr.bin/netstat/route.c#4 integrate .. //depot/projects/scottl-camlock/src/usr.bin/systat/keyboard.c#3 integrate .. //depot/projects/scottl-camlock/src/usr.bin/systat/main.c#3 integrate .. //depot/projects/scottl-camlock/src/usr.bin/touch/touch.c#3 integrate .. //depot/projects/scottl-camlock/src/usr.sbin/acpi/iasl/Makefile#3 integrate .. //depot/projects/scottl-camlock/src/usr.sbin/jail/jail.8#8 integrate .. //depot/projects/scottl-camlock/src/usr.sbin/ntp/doc/ntpd.8#4 integrate .. //depot/projects/scottl-camlock/src/usr.sbin/sysinstall/tcpip.c#3 integrate .. //depot/projects/scottl-camlock/src/usr.sbin/tzsetup/tzsetup.8#3 integrate .. //depot/projects/scottl-camlock/src/usr.sbin/tzsetup/tzsetup.c#4 integrate Differences ... ==== //depot/projects/scottl-camlock/src/Makefile.inc1#8 (text+ko) ==== @@ -1,5 +1,5 @@ # -# $FreeBSD: src/Makefile.inc1,v 1.629 2009/09/10 07:37:36 des Exp $ +# $FreeBSD: src/Makefile.inc1,v 1.631 2009/10/21 19:39:34 ru Exp $ # # Make command line options: # -DNO_CLEANDIR run ${MAKE} clean, instead of ${MAKE} cleandir @@ -929,6 +929,10 @@ _mklocale= usr.bin/mklocale .endif +.if ${BOOTSTRAPPING} < 900002 +_sed= usr.bin/sed +.endif + .if ${BOOTSTRAPPING} < 700018 _gensnmptree= usr.sbin/bsnmpd/gensnmptree .endif @@ -954,6 +958,7 @@ usr.bin/makewhatis \ ${_mklocale} \ usr.bin/rpcgen \ + ${_sed} \ usr.bin/xinstall \ ${_gensnmptree} \ usr.sbin/config \ @@ -1033,7 +1038,6 @@ .for _tool in \ gnu/usr.bin/binutils \ gnu/usr.bin/cc \ - usr.bin/sed \ usr.bin/xlint/lint1 usr.bin/xlint/lint2 usr.bin/xlint/xlint \ ${_btxld} \ ${_crunchide} \ @@ -1122,7 +1126,7 @@ _secure_lib_libssh= secure/lib/libssh secure/lib/libssh__L: lib/libz__L secure/lib/libcrypto__L lib/libcrypt__L .if ${MK_KERBEROS} != "no" -kerberos5/lib/libgssapi_krb5__L: kerberos5/lib/libkrb5__L \ +kerberos5/lib/libgssapi_krb5__L: lib/libgssapi__L kerberos5/lib/libkrb5__L \ kerberos5/lib/libhx509__L kerberos5/lib/libasn1__L lib/libcom_err__L \ lib/libmd__L kerberos5/lib/libroken__L secure/lib/libcrypto__L \ lib/libcrypt__L ==== //depot/projects/scottl-camlock/src/ObsoleteFiles.inc#16 (text+ko) ==== @@ -1,5 +1,5 @@ # -# $FreeBSD: src/ObsoleteFiles.inc,v 1.209 2009/09/10 21:42:00 delphij Exp $ +# $FreeBSD: src/ObsoleteFiles.inc,v 1.210 2009/10/12 21:10:28 markm Exp $ # # This file lists old files (OLD_FILES), libraries (OLD_LIBS) and # directories (OLD_DIRS) which should get removed at an update. Recently @@ -503,6 +503,8 @@ OLD_FILES+=usr/include/dev/usb/usbcdc.h OLD_FILES+=usr/include/dev/usb/usbdivar.h OLD_FILES+=usr/include/dev/usb/uxb360gp_rdesc.h +OLD_FILES+=usr/sbin/usbdevs +OLD_FILES+=usr/share/man/man8/usbdevs.8.gz # 20090203: removal of pccard header files OLD_FILES+=usr/include/pccard/cardinfo.h OLD_FILES+=usr/include/pccard/cis.h ==== //depot/projects/scottl-camlock/src/bin/cat/Makefile#3 (text+ko) ==== @@ -1,7 +1,6 @@ # @(#)Makefile 8.1 (Berkeley) 5/31/93 -# $FreeBSD: src/bin/cat/Makefile,v 1.8 2009/03/16 12:16:17 des Exp $ +# $FreeBSD: src/bin/cat/Makefile,v 1.9 2009/10/15 18:17:29 ru Exp $ PROG= cat -WARNS?= 6 .include ==== //depot/projects/scottl-camlock/src/bin/csh/iconv_stub.c#2 (text) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/bin/csh/iconv_stub.c,v 1.1 2006/02/19 06:40:29 ume Exp $ + * $FreeBSD: src/bin/csh/iconv_stub.c,v 1.2 2009/10/17 15:53:15 ume Exp $ */ #include @@ -61,9 +61,20 @@ if (iconvlib == NULL) return (iconv_t)-1; iconv_open = (iconv_open_t *)dlfunc(iconvlib, ICONV_OPEN); + if (iconv_open == NULL) + goto dlfunc_err; dl_iconv = (dl_iconv_t *)dlfunc(iconvlib, ICONV_ENGINE); + if (dl_iconv == NULL) + goto dlfunc_err; dl_iconv_close = (dl_iconv_close_t *)dlfunc(iconvlib, ICONV_CLOSE); + if (dl_iconv_close == NULL) + goto dlfunc_err; } return iconv_open(tocode, fromcode); + +dlfunc_err: + dlclose(iconvlib); + iconvlib = NULL; + return (iconv_t)-1; } ==== //depot/projects/scottl-camlock/src/bin/ls/ls.c#3 (text+ko) ==== @@ -42,7 +42,7 @@ #endif /* not lint */ #endif #include -__FBSDID("$FreeBSD: src/bin/ls/ls.c,v 1.86 2008/04/04 03:57:46 grog Exp $"); +__FBSDID("$FreeBSD: src/bin/ls/ls.c,v 1.87 2009/10/13 21:51:50 jilles Exp $"); #include #include @@ -399,7 +399,7 @@ * If not -F, -d or -l options, follow any symbolic links listed on * the command line. */ - if (!f_longform && !f_listdir && !f_type) + if (!f_longform && !f_listdir && (!f_type || f_slash)) fts_options |= FTS_COMFOLLOW; /* ==== //depot/projects/scottl-camlock/src/bin/sh/parser.c#6 (text+ko) ==== @@ -36,7 +36,7 @@ #endif #endif /* not lint */ #include -__FBSDID("$FreeBSD: src/bin/sh/parser.c,v 1.64 2009/10/01 21:40:08 jilles Exp $"); +__FBSDID("$FreeBSD: src/bin/sh/parser.c,v 1.65 2009/10/16 16:17:57 jilles Exp $"); #include #include @@ -1308,11 +1308,16 @@ struct jmploc *const savehandler = handler; int savelen; int saveprompt; + const int bq_startlinno = plinno; if (setjmp(jmploc.loc)) { if (str) ckfree(str); handler = savehandler; + if (exception == EXERROR) { + startlinno = bq_startlinno; + synerror("Error in command substitution"); + } longjmp(handler->loc, 1); } INTOFF; ==== //depot/projects/scottl-camlock/src/bin/uuidgen/Makefile#2 (text+ko) ==== @@ -1,6 +1,5 @@ -# $FreeBSD: src/bin/uuidgen/Makefile,v 1.4 2008/03/13 17:38:06 obrien Exp $ +# $FreeBSD: src/bin/uuidgen/Makefile,v 1.5 2009/10/15 18:17:29 ru Exp $ PROG= uuidgen -WARNS?= 6 .include ==== //depot/projects/scottl-camlock/src/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c#2 (text+ko) ==== @@ -1790,11 +1790,14 @@ /* We don't support those properties on FreeBSD. */ switch (prop) { + case ZFS_PROP_DEVICES: + case ZFS_PROP_ZONED: case ZFS_PROP_SHAREISCSI: - case ZFS_PROP_DEVICES: - case ZFS_PROP_ACLMODE: - case ZFS_PROP_ACLINHERIT: case ZFS_PROP_ISCSIOPTIONS: + case ZFS_PROP_XATTR: + case ZFS_PROP_VSCAN: + case ZFS_PROP_NBMAND: + case ZFS_PROP_SHARESMB: (void) snprintf(errbuf, sizeof (errbuf), "property '%s' not supported on FreeBSD", propname); ret = zfs_error(hdl, EZFS_PERM, errbuf); ==== //depot/projects/scottl-camlock/src/contrib/gcc/config/i386/i386.c#3 (text+ko) ==== @@ -19,7 +19,7 @@ the Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -/* $FreeBSD: src/contrib/gcc/config/i386/i386.c,v 1.25 2007/08/14 03:04:42 kan Exp $ */ +/* $FreeBSD: src/contrib/gcc/config/i386/i386.c,v 1.26 2009/10/21 19:26:12 jhb Exp $ */ #include "config.h" #include "system.h" @@ -1614,7 +1614,7 @@ "-mtune=generic instead as appropriate."); if (!ix86_arch_string) - ix86_arch_string = TARGET_64BIT ? "x86-64" : "i386"; + ix86_arch_string = TARGET_64BIT ? "x86-64" : "i486"; if (!strcmp (ix86_arch_string, "generic")) error ("generic CPU can be used only for -mtune= switch"); if (!strncmp (ix86_arch_string, "generic", 7)) ==== //depot/projects/scottl-camlock/src/contrib/openpam/doc/man/pam.conf.5#3 (text) ==== @@ -109,7 +109,7 @@ .It Cm requisite If this module succeeds, the result of the chain will be success unless a later module fails. -If it module fails, the chain is broken and the result is failure. +If the module fails, the chain is broken and the result is failure. .It Cm sufficient If this module succeeds, the chain is broken and the result is success. ==== //depot/projects/scottl-camlock/src/crypto/openssh/sshd_config#4 (text+ko) ==== @@ -1,5 +1,5 @@ # $OpenBSD: sshd_config,v 1.80 2008/07/02 02:24:18 djm Exp $ -# $FreeBSD: src/crypto/openssh/sshd_config,v 1.50 2009/10/01 17:12:52 des Exp $ +# $FreeBSD: src/crypto/openssh/sshd_config,v 1.51 2009/10/11 14:27:33 des Exp $ # This is the sshd server system-wide configuration file. See # sshd_config(5) for more information. @@ -17,7 +17,6 @@ #VersionAddendum FreeBSD-20091001 #Port 22 -#Protocol 2 #AddressFamily any #ListenAddress 0.0.0.0 #ListenAddress :: ==== //depot/projects/scottl-camlock/src/etc/defaults/rc.conf#10 (text+ko) ==== @@ -15,7 +15,7 @@ # For a more detailed explanation of all the rc.conf variables, please # refer to the rc.conf(5) manual page. # -# $FreeBSD: src/etc/defaults/rc.conf,v 1.362 2009/09/29 16:49:10 dougb Exp $ +# $FreeBSD: src/etc/defaults/rc.conf,v 1.363 2009/10/21 09:43:22 brueffer Exp $ ############################################################## ### Important initial Boot-time options #################### @@ -600,6 +600,7 @@ harvest_p_to_p="YES" # Entropy device harvests point-to-point randomness dmesg_enable="YES" # Save dmesg(8) to /var/run/dmesg.boot watchdogd_enable="NO" # Start the software watchdog daemon +watchdogd_flags="" # Flags to watchdogd (if enabled) devfs_rulesets="/etc/defaults/devfs.rules /etc/devfs.rules" # Files containing # devfs(8) rules. devfs_system_ruleset="" # The name (NOT number) of a ruleset to apply to /dev ==== //depot/projects/scottl-camlock/src/etc/gettytab#2 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/etc/gettytab,v 1.24 2006/04/11 09:54:23 des Exp $ +# $FreeBSD: src/etc/gettytab,v 1.26 2009/10/19 11:10:44 ed Exp $ # from: @(#)gettytab 5.14 (Berkeley) 3/27/91 # # Most of the table entries here are just copies of the old getty table, @@ -162,7 +162,7 @@ :fd@:nd@:cd@:rw:sp#9600: P|Pc|Pc console:\ - :ht:np:sp#115200: + :ht:np:sp#9600: # # Wierdo special case for fast crt's with hardcopy devices ==== //depot/projects/scottl-camlock/src/etc/rc.d/bgfsck#3 (text+ko) ==== @@ -1,6 +1,6 @@ #!/bin/sh # -# $FreeBSD: src/etc/rc.d/bgfsck,v 1.9 2008/06/23 04:46:54 mtm Exp $ +# $FreeBSD: src/etc/rc.d/bgfsck,v 1.10 2009/10/10 22:17:03 dougb Exp $ # # PROVIDE: bgfsck @@ -31,7 +31,7 @@ bgfsck_msg="${bgfsck_msg} in ${background_fsck_delay} seconds" fi if [ -z "${rc_force}" ]; then - [ -z "${rc_quiet}" ] && echo "${bgfsck_msg}." + check_startmsgs && echo "${bgfsck_msg}." fi (sleep ${background_fsck_delay}; nice -4 fsck -B -p) 2>&1 | \ ==== //depot/projects/scottl-camlock/src/etc/rc.d/cleartmp#3 (text+ko) ==== @@ -1,6 +1,6 @@ #!/bin/sh # -# $FreeBSD: src/etc/rc.d/cleartmp,v 1.19 2008/06/23 04:42:58 mtm Exp $ +# $FreeBSD: src/etc/rc.d/cleartmp,v 1.20 2009/10/10 22:17:03 dougb Exp $ # # PROVIDE: cleartmp @@ -25,7 +25,7 @@ ${tmp}/.ICE-unix ${tmp}/.font-unix" if checkyesno ${rcvar1}; then - [ -z "${rc_quiet}" ] && echo "Clearing ${tmp}." + check_startmsgs && echo "Clearing ${tmp}." # This is not needed for mfs, but doesn't hurt anything. # Things to note: @@ -44,7 +44,7 @@ elif checkyesno clear_tmp_X; then # Remove X lock files, since they will prevent you from # restarting X. Remove other X related directories. - [ -z "${rc_quiet}" ] && echo "Clearing ${tmp} (X related)." + check_startmsgs && echo "Clearing ${tmp} (X related)." rm -rf ${tmp}/.X[0-9]-lock ${x11_socket_dirs} fi if checkyesno clear_tmp_X; then ==== //depot/projects/scottl-camlock/src/etc/rc.d/faith#3 (text+ko) ==== @@ -1,9 +1,9 @@ #!/bin/sh -# $FreeBSD: src/etc/rc.d/faith,v 1.3 2009/10/02 06:19:34 hrs Exp $ +# $FreeBSD: src/etc/rc.d/faith,v 1.5 2009/10/17 21:09:15 dougb Exp $ # # PROVIDE: faith -# REQUIRE: netif routing +# REQUIRE: netif # KEYWORD: nojail . /etc/rc.subr @@ -39,9 +39,7 @@ route change -inet6 ${prefix} -prefixlen ${prefixlen} \ -ifp faith0 done - if [ -z "${rc_quiet}" ]; then - ifconfig faith0 - fi + check_startmsgs && ifconfig faith0 ;; esac } ==== //depot/projects/scottl-camlock/src/etc/rc.d/fsck#4 (text+ko) ==== @@ -1,6 +1,6 @@ #!/bin/sh # -# $FreeBSD: src/etc/rc.d/fsck,v 1.14 2009/06/10 19:03:23 avg Exp $ +# $FreeBSD: src/etc/rc.d/fsck,v 1.15 2009/10/10 22:17:03 dougb Exp $ # # PROVIDE: fsck @@ -23,7 +23,7 @@ # During fsck ignore SIGQUIT trap : 3 - [ -z "${rc_quiet}" ] && echo "Starting file system checks:" + check_startmsgs && echo "Starting file system checks:" if checkyesno background_fsck; then fsck -F -p else ==== //depot/projects/scottl-camlock/src/etc/rc.d/hostid#5 (text+ko) ==== @@ -24,7 +24,7 @@ # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. # -# $FreeBSD: src/etc/rc.d/hostid,v 1.11 2009/07/29 05:23:52 pjd Exp $ +# $FreeBSD: src/etc/rc.d/hostid,v 1.12 2009/10/10 22:17:03 dougb Exp $ # # PROVIDE: hostid @@ -49,9 +49,9 @@ # Set both kern.hostuuid and kern.hostid. # - [ -z "${rc_quiet}" ] && echo "Setting hostuuid: ${uuid}." + check_startmsgs && echo "Setting hostuuid: ${uuid}." ${SYSCTL_W} kern.hostuuid="${uuid}" >/dev/null - [ -z "${rc_quiet}" ] && echo "Setting hostid: ${id}." + check_startmsgs && echo "Setting hostid: ${id}." ${SYSCTL_W} kern.hostid=${id} >/dev/null } ==== //depot/projects/scottl-camlock/src/etc/rc.d/hostname#4 (text+ko) ==== @@ -23,7 +23,7 @@ # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. # -# $FreeBSD: src/etc/rc.d/hostname,v 1.13 2008/06/23 04:46:54 mtm Exp $ +# $FreeBSD: src/etc/rc.d/hostname,v 1.14 2009/10/10 22:17:03 dougb Exp $ # # PROVIDE: hostname @@ -72,8 +72,9 @@ # All right, it is safe to invoke hostname(1) now. # - [ -z "${rc_quiet}" ] && echo "Setting hostname: ${hostname}." + check_startmsgs && echo -n "Setting hostname: ${hostname}" /bin/hostname "${hostname}" + check_startmsgs && echo '.' } load_rc_config $name ==== //depot/projects/scottl-camlock/src/etc/rc.d/ldconfig#3 (text+ko) ==== @@ -1,6 +1,6 @@ #!/bin/sh # -# $FreeBSD: src/etc/rc.d/ldconfig,v 1.20 2008/06/23 04:46:54 mtm Exp $ +# $FreeBSD: src/etc/rc.d/ldconfig,v 1.21 2009/10/10 22:17:03 dougb Exp $ # # PROVIDE: ldconfig @@ -36,7 +36,7 @@ _LDC="${_LDC} ${i}" fi done - [ -z "${rc_quiet}" ] && echo 'ELF ldconfig path:' ${_LDC} + check_startmsgs && echo 'ELF ldconfig path:' ${_LDC} ${ldconfig} -elf ${_ins} ${_LDC} case `sysctl -n hw.machine_arch` in @@ -55,7 +55,7 @@ _LDC="${_LDC} ${i}" fi done - [ -z "${rc_quiet}" ] && + check_startmsgs && echo '32-bit compatibility ldconfig path:' ${_LDC} ${ldconfig} -32 -m ${_ins} ${_LDC} ;; @@ -72,8 +72,7 @@ _LDC="${_LDC} ${i}" fi done - [ -z "${rc_quiet}" ] && - echo 'a.out ldconfig path:' ${_LDC} + check_startmsgs && echo 'a.out ldconfig path:' ${_LDC} ${ldconfig} -aout ${_ins} ${_LDC} ;; esac ==== //depot/projects/scottl-camlock/src/etc/rc.d/motd#3 (text+ko) ==== @@ -1,6 +1,6 @@ #!/bin/sh # -# $FreeBSD: src/etc/rc.d/motd,v 1.11 2008/06/23 04:46:54 mtm Exp $ +# $FreeBSD: src/etc/rc.d/motd,v 1.12 2009/10/10 22:17:03 dougb Exp $ # # PROVIDE: motd @@ -22,7 +22,7 @@ # Must be done *before* interactive logins are possible # to prevent possible race conditions. # - [ -z "${rc_quiet}" ] && echo -n 'Updating motd:' + check_startmsgs && echo -n 'Updating motd:' if [ ! -f /etc/motd ]; then install -c -o root -g wheel -m ${PERMS} /dev/null /etc/motd fi @@ -42,7 +42,7 @@ } rm -f $T - [ -z "${rc_quiet}" ] && echo . + check_startmsgs && echo '.' } load_rc_config $name ==== //depot/projects/scottl-camlock/src/etc/rc.d/mountcritlocal#3 (text+ko) ==== @@ -1,6 +1,6 @@ #!/bin/sh # -# $FreeBSD: src/etc/rc.d/mountcritlocal,v 1.17 2008/07/05 15:19:58 mtm Exp $ +# $FreeBSD: src/etc/rc.d/mountcritlocal,v 1.18 2009/10/10 22:17:03 dougb Exp $ # # PROVIDE: mountcritlocal @@ -28,7 +28,7 @@ esac # Mount everything except nfs filesystems. - [ -z "${rc_quiet}" ] && echo -n 'Mounting local file systems:' + check_startmsgs && echo -n 'Mounting local file systems:' mount_excludes='no' for i in ${netfs_types}; do fstype=${i%:*} @@ -37,7 +37,7 @@ mount_excludes=${mount_excludes%,} mount -a -t ${mount_excludes} err=$? - [ -z "${rc_quiet}" ] && echo '.' + check_startmsgs && echo '.' case ${err} in 0) ==== //depot/projects/scottl-camlock/src/etc/rc.d/moused#4 (text+ko) ==== @@ -1,6 +1,6 @@ #!/bin/sh # -# $FreeBSD: src/etc/rc.d/moused,v 1.15 2009/05/30 21:51:38 dougb Exp $ +# $FreeBSD: src/etc/rc.d/moused,v 1.16 2009/10/10 22:17:03 dougb Exp $ # # PROVIDE: moused @@ -51,8 +51,9 @@ mytype="$moused_type" fi - [ -z "${rc_quiet}" ] && echo -n "Starting ${ms} moused." + check_startmsgs && echo -n "Starting ${ms} moused" /usr/sbin/moused ${myflags} -p ${myport} -t ${mytype} ${pidarg} + check_startmsgs && echo '.' mousechar_arg= case ${mousechar_start} in ==== //depot/projects/scottl-camlock/src/etc/rc.d/netif#8 (text+ko) ==== @@ -22,7 +22,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/etc/rc.d/netif,v 1.34 2009/09/26 18:59:00 hrs Exp $ +# $FreeBSD: src/etc/rc.d/netif,v 1.35 2009/10/10 22:17:03 dougb Exp $ # # PROVIDE: netif @@ -143,7 +143,7 @@ ;; esac echo "${_str} Network:${_ok}." - if [ -z "${rc_quiet}" ]; then + if check_startmsgs; then for ifn in ${_ok}; do /sbin/ifconfig ${ifn} done ==== //depot/projects/scottl-camlock/src/etc/rc.d/newsyslog#3 (text+ko) ==== @@ -1,6 +1,6 @@ #!/bin/sh # -# $FreeBSD: src/etc/rc.d/newsyslog,v 1.7 2008/06/23 04:46:54 mtm Exp $ +# $FreeBSD: src/etc/rc.d/newsyslog,v 1.8 2009/10/10 22:17:03 dougb Exp $ # # PROVIDE: newsyslog @@ -17,9 +17,9 @@ newsyslog_start() { - [ -z "${rc_quiet}" ] && echo -n "Creating and/or trimming log files:" + check_startmsgs && echo -n 'Creating and/or trimming log files' ${command} ${rc_flags} - [ -z "${rc_quiet}" ] && echo "." + check_startmsgs && echo '.' } load_rc_config $name ==== //depot/projects/scottl-camlock/src/etc/rc.d/nfsclient#3 (text+ko) ==== @@ -1,6 +1,6 @@ #!/bin/sh # -# $FreeBSD: src/etc/rc.d/nfsclient,v 1.7 2008/07/05 15:13:21 mtm Exp $ +# $FreeBSD: src/etc/rc.d/nfsclient,v 1.8 2009/10/10 22:17:03 dougb Exp $ # # PROVIDE: nfsclient @@ -22,7 +22,8 @@ # if [ -n "${nfs_access_cache}" ]; then - [ -z "${rc_quiet}" ] && echo "NFS access cache time=${nfs_access_cache}" + check_startmsgs && + echo "NFS access cache time=${nfs_access_cache}" if ! sysctl vfs.nfs.access_cache_timeout=${nfs_access_cache} >/dev/null; then warn "failed to set access cache timeout" fi ==== //depot/projects/scottl-camlock/src/etc/rc.d/pf#7 (text+ko) ==== @@ -1,6 +1,6 @@ #!/bin/sh # -# $FreeBSD: src/etc/rc.d/pf,v 1.19 2009/06/26 01:04:50 dougb Exp $ +# $FreeBSD: src/etc/rc.d/pf,v 1.20 2009/10/10 22:17:03 dougb Exp $ >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Thu Oct 22 10:33:30 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 9A83E1065679; Thu, 22 Oct 2009 10:33:30 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 46DA8106568D for ; Thu, 22 Oct 2009 10:33:30 +0000 (UTC) (envelope-from gk@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 33EAA8FC13 for ; Thu, 22 Oct 2009 10:33:30 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n9MAXTmD095897 for ; Thu, 22 Oct 2009 10:33:29 GMT (envelope-from gk@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n9MAXTLd095895 for perforce@freebsd.org; Thu, 22 Oct 2009 10:33:29 GMT (envelope-from gk@FreeBSD.org) Date: Thu, 22 Oct 2009 10:33:29 GMT Message-Id: <200910221033.n9MAXTLd095895@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gk@FreeBSD.org using -f From: Gleb Kurtsou To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 169676 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 22 Oct 2009 10:33:30 -0000 http://p4web.freebsd.org/chv.cgi?CH=169676 Change 169676 by gk@gk_h1 on 2009/10/22 10:33:29 more strictly follow hkdf and vmac specifications commit breaks compatibility remove random magic constants reuse first encrypted name block as a nonce for vmac handle name alignment add 'salsa20' alias for 'salsa20-256' Affected files ... .. //depot/projects/soc2009/gk_pefs/sbin/pefs/pefs_key.c#10 edit .. //depot/projects/soc2009/gk_pefs/sys/fs/pefs/pefs_crypto.c#18 edit Differences ... ==== //depot/projects/soc2009/gk_pefs/sbin/pefs/pefs_key.c#10 (text+ko) ==== @@ -72,6 +72,7 @@ { "camellia256-ctr", PEFS_ALG_CAMELLIA_CTR, 256 }, { "camellia256", PEFS_ALG_CAMELLIA_CTR, 256 }, { "salsa20-256", PEFS_ALG_SALSA20, 256 }, + { "salsa20", PEFS_ALG_SALSA20, 256 }, { NULL, 0, 0 }, }; ==== //depot/projects/soc2009/gk_pefs/sys/fs/pefs/pefs_crypto.c#18 (text+ko) ==== @@ -52,8 +52,12 @@ CTASSERT(PEFS_KEY_SIZE <= SHA512_DIGEST_LENGTH); CTASSERT(PEFS_TWEAK_SIZE == 64/8); +CTASSERT(PEFS_NAME_CSUM_SIZE <= sizeof(uint64_t)); +CTASSERT(MAXNAMLEN >= PEFS_NAME_PTON_SIZE(MAXNAMLEN) + PEFS_NAME_BLOCK_SIZE); CTASSERT(CAMELLIA_BLOCK_SIZE == PEFS_CTR_BLOCK_SIZE); +static const char magic_keyinfo[] = "PEFSKEY"; + typedef void algop_keysetup_t(struct pefs_ctx *ctx, const uint8_t *key, uint32_t keybits); typedef void algop_ivsetup_t(struct pefs_ctx *ctx, const uint8_t *iv, @@ -117,24 +121,6 @@ pefs_camellia_crypt }; -/* vmac requirement: first bit of the nonce buffer n must be 0 */ -static const char magic_name_csum_nonce[VMAC_NHBYTES] = { - 0x00, 0xb1, 0xad, 0xd5, 0x5b, 0xf9, 0x10, 0xe1, - 0x0a, 0x25, 0x8a, 0xd3, 0x33, 0x91, 0x8a, 0x1a, -}; - -static const char magic_ctxinfo_name_key[PEFS_TWEAK_SIZE] = { - 0xc8, 0x27, 0xa3, 0x7e, 0xcf, 0x86, 0x3d, 0x0d, -}; - -static const char magic_ctxinfo_name_csum_key[PEFS_TWEAK_SIZE] = { - 0x21, 0xe2, 0x71, 0x0a, 0x4a, 0xe6, 0xfd, 0x64, -}; - -static const char magic_ctxinfo_data_key[PEFS_TWEAK_SIZE] = { - 0xe3, 0x74, 0xdc, 0x7f, 0x10, 0x23, 0x55, 0x16, -}; - static uma_zone_t pefs_ctx_zone; static uma_zone_t pefs_key_zone; @@ -195,8 +181,8 @@ bzero(key, PEFS_KEY_SIZE); hmac_sha512_init(&ctx->o.pctx_hmac, masterkey, PEFS_KEY_SIZE); hmac_sha512_update(&ctx->o.pctx_hmac, key, PEFS_KEY_SIZE); - hmac_sha512_update(&ctx->o.pctx_hmac, magic_ctxinfo_data_key, - PEFS_TWEAK_SIZE); + hmac_sha512_update(&ctx->o.pctx_hmac, magic_keyinfo, + sizeof(magic_keyinfo)); hmac_sha512_update(&ctx->o.pctx_hmac, &idx, sizeof(idx)); hmac_sha512_final(&ctx->o.pctx_hmac, key, PEFS_KEY_SIZE); pk->pk_alg->pa_keysetup(pk->pk_data_ctx, key, pk->pk_keybits); @@ -204,8 +190,8 @@ idx = 2; hmac_sha512_init(&ctx->o.pctx_hmac, masterkey, PEFS_KEY_SIZE); hmac_sha512_update(&ctx->o.pctx_hmac, key, PEFS_KEY_SIZE); - hmac_sha512_update(&ctx->o.pctx_hmac, magic_ctxinfo_name_key, - PEFS_TWEAK_SIZE); + hmac_sha512_update(&ctx->o.pctx_hmac, magic_keyinfo, + sizeof(magic_keyinfo)); hmac_sha512_update(&ctx->o.pctx_hmac, &idx, sizeof(idx)); hmac_sha512_final(&ctx->o.pctx_hmac, key, PEFS_KEY_SIZE); pefs_aes_keysetup(pk->pk_name_ctx, key, 128); @@ -213,12 +199,13 @@ idx = 3; hmac_sha512_init(&ctx->o.pctx_hmac, masterkey, PEFS_KEY_SIZE); hmac_sha512_update(&ctx->o.pctx_hmac, key, PEFS_KEY_SIZE); - hmac_sha512_update(&ctx->o.pctx_hmac, magic_ctxinfo_name_key, - PEFS_TWEAK_SIZE); + hmac_sha512_update(&ctx->o.pctx_hmac, magic_keyinfo, + sizeof(magic_keyinfo)); hmac_sha512_update(&ctx->o.pctx_hmac, &idx, sizeof(idx)); hmac_sha512_final(&ctx->o.pctx_hmac, key, PEFS_KEY_SIZE); vmac_set_key(key, &pk->pk_name_csum_ctx->o.pctx_vmac); + bzero(key, PEFS_KEY_SIZE); pefs_ctx_free(ctx); } @@ -471,18 +458,35 @@ pefs_name_checksum(struct pefs_ctx *ctx, struct pefs_key *pk, char *csum, char *name, size_t size) { - CTASSERT(PEFS_NAME_CSUM_SIZE <= sizeof(uint64_t)); + uint64_t buf[howmany(MAXNAMLEN + 1, sizeof(uint64_t))]; + uint64_t nonce[2]; uint64_t csum_int; + char *data; - MPASS(size > PEFS_NAME_CSUM_SIZE && + MPASS(size >= PEFS_NAME_CSUM_SIZE + (PEFS_TWEAK_SIZE * 2) && size <= MAXNAMLEN && (size - PEFS_NAME_CSUM_SIZE) % PEFS_NAME_BLOCK_SIZE == 0); + /* + * First block of encrypted name contains 64bit random tweak. + * Considering AES strong cipher reuse it as a nonce. It's rather far + * from what VMAC specification suggests, but storing additional random + * data in file name is too expensive and decrypting before running vmac + * degrades performance dramatically. + * Use separate key for name checksum. + */ + memcpy(nonce, name + PEFS_NAME_CSUM_SIZE, PEFS_TWEAK_SIZE * 2); + ((char *)nonce)[15] &= 0xfe; /* VMAC requirement */ + + size -= PEFS_NAME_CSUM_SIZE; + data = name + PEFS_NAME_CSUM_SIZE; + if (((uintptr_t)data & (__alignof__(uint64_t) - 1)) != 0) { + memcpy(buf, data, size); + data = (char *)buf; + } + pefs_ctx_cpy(ctx, pk->pk_name_csum_ctx); - csum_int = vmac(name + PEFS_NAME_CSUM_SIZE, - size - PEFS_NAME_CSUM_SIZE, - magic_name_csum_nonce, - NULL, &ctx->o.pctx_vmac); + csum_int = vmac(data, size, (char *)nonce, NULL, &ctx->o.pctx_vmac); memcpy(csum, &csum_int, PEFS_NAME_CSUM_SIZE); } @@ -541,8 +545,6 @@ pefs_name_encrypt(struct pefs_ctx *ctx, struct pefs_tkey *ptk, const char *plain, size_t plain_len, char *enc, size_t enc_size) { - CTASSERT(MAXNAMLEN >= - PEFS_NAME_PTON_SIZE(MAXNAMLEN) + PEFS_NAME_BLOCK_SIZE); char buf[MAXNAMLEN + 1]; size_t size; int free_ctx = 0; From owner-p4-projects@FreeBSD.ORG Thu Oct 22 11:37:34 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 547641065698; Thu, 22 Oct 2009 11:37:34 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1904D1065696 for ; Thu, 22 Oct 2009 11:37:34 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 059358FC1E for ; Thu, 22 Oct 2009 11:37:34 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n9MBbXJG001715 for ; Thu, 22 Oct 2009 11:37:33 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n9MBbX4O001713 for perforce@freebsd.org; Thu, 22 Oct 2009 11:37:33 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Thu, 22 Oct 2009 11:37:33 GMT Message-Id: <200910221137.n9MBbX4O001713@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 169677 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 22 Oct 2009 11:37:34 -0000 http://p4web.freebsd.org/chv.cgi?CH=169677 Change 169677 by rwatson@rwatson_vimage_client on 2009/10/22 11:37:30 Custom linker script is no longer required for rtld-elf-cap as the kernel now auto-places position-independent code properly. Affected files ... .. //depot/projects/trustedbsd/capabilities/src/libexec/rtld-elf-cap/Makefile#19 edit .. //depot/projects/trustedbsd/capabilities/src/libexec/rtld-elf-cap/rtld-elf-cap.xs#5 delete Differences ... ==== //depot/projects/trustedbsd/capabilities/src/libexec/rtld-elf-cap/Makefile#19 (text+ko) ==== @@ -1,5 +1,5 @@ # $FreeBSD$ -# $P4: //depot/projects/trustedbsd/capabilities/src/libexec/rtld-elf-cap/Makefile#18 $ +# $P4: //depot/projects/trustedbsd/capabilities/src/libexec/rtld-elf-cap/Makefile#19 $ WITHOUT_SSP= @@ -14,7 +14,7 @@ CSTD?= gnu99 CFLAGS+= -Wall -DFREEBSD_ELF -DIN_RTLD -DIN_RTLD_CAP -g CFLAGS+= -I${.CURDIR} -I${.CURDIR}/../rtld-elf/${MACHINE_ARCH} -I${.CURDIR}/../rtld-elf -LDFLAGS+= -nostdlib -Wl,-e,.rtld_start -Wl,-T,${.CURDIR}/rtld-elf-cap.xs +LDFLAGS+= -nostdlib -Wl,-e,.rtld_start INSTALLFLAGS= -C -b PRECIOUSPROG= BINDIR= /libexec From owner-p4-projects@FreeBSD.ORG Thu Oct 22 16:52:50 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B7C07106568F; Thu, 22 Oct 2009 16:52:49 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7A82D1065679 for ; Thu, 22 Oct 2009 16:52:49 +0000 (UTC) (envelope-from truncs@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 686658FC2D for ; Thu, 22 Oct 2009 16:52:49 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n9MGqnH2049549 for ; Thu, 22 Oct 2009 16:52:49 GMT (envelope-from truncs@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n9MGqn22049547 for perforce@freebsd.org; Thu, 22 Oct 2009 16:52:49 GMT (envelope-from truncs@FreeBSD.org) Date: Thu, 22 Oct 2009 16:52:49 GMT Message-Id: <200910221652.n9MGqn22049547@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to truncs@FreeBSD.org using -f From: Aditya Sarawgi To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 169682 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 22 Oct 2009 16:52:50 -0000 http://p4web.freebsd.org/chv.cgi?CH=169682 Change 169682 by truncs@aditya on 2009/10/22 16:52:01 Put the error details in the panic message itself. Ref: http://svn.freebsd.org/viewvc/base?view=revision&revision=160859 Affected files ... .. //depot/projects/soc2009/soc_ext2fs/src/sys/fs/ext2fs/ext2_lookup.c#6 edit Differences ... ==== //depot/projects/soc2009/soc_ext2fs/src/sys/fs/ext2fs/ext2_lookup.c#6 (text+ko) ==== @@ -684,10 +684,13 @@ struct mount *mp; mp = ITOV(ip)->v_mount; + if ((mp->mnt_flag & MNT_RDONLY) == 0) + panic("ext2_dirbad: %s: bad dir ino %lu at offset %ld: %s\n", + mp->mnt_stat.f_mntonname, (u_long)ip->i_number,(long)offset, how); + else (void)printf("%s: bad dir ino %lu at offset %ld: %s\n", - mp->mnt_stat.f_mntonname, (u_long)ip->i_number, (long)offset, how); - if ((mp->mnt_flag & MNT_RDONLY) == 0) - panic("ext2_dirbad: bad dir"); + mp->mnt_stat.f_mntonname, (u_long)ip->i_number, (long)offset, how); + } /* From owner-p4-projects@FreeBSD.ORG Thu Oct 22 17:12:09 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 33CBE106568D; Thu, 22 Oct 2009 17:12:09 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id EC735106566C for ; Thu, 22 Oct 2009 17:12:08 +0000 (UTC) (envelope-from truncs@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id DA7768FC1D for ; Thu, 22 Oct 2009 17:12:08 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n9MHC81H051913 for ; Thu, 22 Oct 2009 17:12:08 GMT (envelope-from truncs@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n9MHC86h051911 for perforce@freebsd.org; Thu, 22 Oct 2009 17:12:08 GMT (envelope-from truncs@FreeBSD.org) Date: Thu, 22 Oct 2009 17:12:08 GMT Message-Id: <200910221712.n9MHC86h051911@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to truncs@FreeBSD.org using -f From: Aditya Sarawgi To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 169683 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 22 Oct 2009 17:12:09 -0000 http://p4web.freebsd.org/chv.cgi?CH=169683 Change 169683 by truncs@aditya on 2009/10/22 17:11:23 Ref: http://svn.freebsd.org/viewvc/base/head/sys/ufs/ffs/ffs_balloc.c?r1=8876&r2=13490 Affected files ... .. //depot/projects/soc2009/soc_ext2fs/src/sys/fs/ext2fs/ext2_balloc.c#7 edit Differences ... ==== //depot/projects/soc2009/soc_ext2fs/src/sys/fs/ext2fs/ext2_balloc.c#7 (text+ko) ==== @@ -219,7 +219,7 @@ break; i += 1; if (nb != 0) { - brelse(bp); + bqrelse(bp); continue; } if (pref == 0) @@ -262,6 +262,8 @@ if (flags & B_SYNC) { bwrite(bp); } else { + if (bp->b_bufsize == fs->e2fs_bsize) + bp->b_flags |= B_CLUSTEROK; bdwrite(bp); } } @@ -290,6 +292,8 @@ if (flags & B_SYNC) { bwrite(bp); } else { + if (bp->b_bufsize == fs->e2fs_bsize) + bp->b_flags |= B_CLUSTEROK; bdwrite(bp); } *bpp = nbp; From owner-p4-projects@FreeBSD.ORG Thu Oct 22 17:24:21 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 6B4EA106568F; Thu, 22 Oct 2009 17:24:21 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 179501065670 for ; Thu, 22 Oct 2009 17:24:21 +0000 (UTC) (envelope-from truncs@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id F049B8FC12 for ; Thu, 22 Oct 2009 17:24:20 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n9MHOKZe052732 for ; Thu, 22 Oct 2009 17:24:20 GMT (envelope-from truncs@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n9MHOK3x052730 for perforce@freebsd.org; Thu, 22 Oct 2009 17:24:20 GMT (envelope-from truncs@FreeBSD.org) Date: Thu, 22 Oct 2009 17:24:20 GMT Message-Id: <200910221724.n9MHOK3x052730@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to truncs@FreeBSD.org using -f From: Aditya Sarawgi To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 169684 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 22 Oct 2009 17:24:21 -0000 http://p4web.freebsd.org/chv.cgi?CH=169684 Change 169684 by truncs@aditya on 2009/10/22 17:24:07 Use local variables for i_ino which causes problems with shared lookups as each would trash the ino value in the inode and remove i_ino variable which becomes unused. Ref: http://svn.freebsd.org/viewvc/base?view=revision&revision=178420 Affected files ... .. //depot/projects/soc2009/soc_ext2fs/src/sys/fs/ext2fs/ext2_lookup.c#7 edit .. //depot/projects/soc2009/soc_ext2fs/src/sys/fs/ext2fs/inode.h#3 edit Differences ... ==== //depot/projects/soc2009/soc_ext2fs/src/sys/fs/ext2fs/ext2_lookup.c#7 (text+ko) ==== @@ -313,7 +313,7 @@ struct ucred *cred = cnp->cn_cred; int flags = cnp->cn_flags; int nameiop = cnp->cn_nameiop; - ino_t saved_ino; + ino_t ino; int DIRBLKSIZ = VTOI(ap->a_dvp)->i_e2fs->e2fs_bsize; @@ -332,6 +332,7 @@ * we watch for a place to put the new file in * case it doesn't already exist. */ + ino = 0; slotstatus = FOUND; slotfreespace = slotsize = slotneeded = 0; if ((nameiop == CREATE || nameiop == RENAME) && @@ -457,7 +458,7 @@ * reclen in ndp->ni_ufs area, and release * directory buffer. */ - dp->i_ino = ep->e2d_ino; + ino = ep->e2d_ino; dp->i_reclen = ep->e2d_reclen; goto found; } @@ -581,12 +582,12 @@ dp->i_count = 0; else dp->i_count = dp->i_offset - prevoff; - if (dp->i_number == dp->i_ino) { + if (dp->i_number == ino) { VREF(vdp); *vpp = vdp; return (0); } - if ((error = VFS_VGET(vdp->v_mount, dp->i_ino, LK_EXCLUSIVE, + if ((error = VFS_VGET(vdp->v_mount, ino, LK_EXCLUSIVE, &tdp)) != 0) return (error); /* @@ -619,9 +620,9 @@ * Careful about locking second inode. * This can only occur if the target is ".". */ - if (dp->i_number == dp->i_ino) + if (dp->i_number == ino) return (EISDIR); - if ((error = VFS_VGET(vdp->v_mount, dp->i_ino, LK_EXCLUSIVE, + if ((error = VFS_VGET(vdp->v_mount, ino, LK_EXCLUSIVE, &tdp)) != 0) return (error); *vpp = tdp; @@ -650,18 +651,17 @@ */ pdp = vdp; if (flags & ISDOTDOT) { - saved_ino = dp->i_ino; VOP_UNLOCK(pdp, 0); /* race to get the inode */ - error = VFS_VGET(vdp->v_mount, saved_ino, LK_EXCLUSIVE, &tdp); + error = VFS_VGET(vdp->v_mount, ino, LK_EXCLUSIVE, &tdp); vn_lock(pdp, LK_EXCLUSIVE | LK_RETRY); if (error != 0) return (error); *vpp = tdp; - } else if (dp->i_number == dp->i_ino) { + } else if (dp->i_number == ino) { VREF(vdp); /* we want ourself, ie "." */ *vpp = vdp; } else { - if ((error = VFS_VGET(vdp->v_mount, dp->i_ino, LK_EXCLUSIVE, + if ((error = VFS_VGET(vdp->v_mount, ino, LK_EXCLUSIVE, &tdp)) != 0) return (error); *vpp = tdp; ==== //depot/projects/soc2009/soc_ext2fs/src/sys/fs/ext2fs/inode.h#3 (text+ko) ==== @@ -75,7 +75,6 @@ doff_t i_endoff; /* End of useful stuff in directory. */ doff_t i_diroff; /* Offset in dir, where we found last entry. */ doff_t i_offset; /* Offset of free space in directory. */ - ino_t i_ino; /* Inode number of found directory. */ u_int32_t i_reclen; /* Size of found directory entry. */ u_int32_t i_block_group; From owner-p4-projects@FreeBSD.ORG Thu Oct 22 17:47:45 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 0EB6F1065676; Thu, 22 Oct 2009 17:47:45 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C750B106566B for ; Thu, 22 Oct 2009 17:47:44 +0000 (UTC) (envelope-from truncs@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id B53B08FC13 for ; Thu, 22 Oct 2009 17:47:44 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n9MHliDM054446 for ; Thu, 22 Oct 2009 17:47:44 GMT (envelope-from truncs@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n9MHlibn054444 for perforce@freebsd.org; Thu, 22 Oct 2009 17:47:44 GMT (envelope-from truncs@FreeBSD.org) Date: Thu, 22 Oct 2009 17:47:44 GMT Message-Id: <200910221747.n9MHlibn054444@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to truncs@FreeBSD.org using -f From: Aditya Sarawgi To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 169687 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 22 Oct 2009 17:47:45 -0000 http://p4web.freebsd.org/chv.cgi?CH=169687 Change 169687 by truncs@aditya on 2009/10/22 17:47:39 Remove i_reclen field from in-memory inode this avoids writing to 'i_reclen' while holding a shared vnode lock. Affected files ... .. //depot/projects/soc2009/soc_ext2fs/src/sys/fs/ext2fs/ext2_lookup.c#8 edit .. //depot/projects/soc2009/soc_ext2fs/src/sys/fs/ext2fs/inode.h#4 edit Differences ... ==== //depot/projects/soc2009/soc_ext2fs/src/sys/fs/ext2fs/ext2_lookup.c#8 (text+ko) ==== @@ -459,7 +459,6 @@ * directory buffer. */ ino = ep->e2d_ino; - dp->i_reclen = ep->e2d_reclen; goto found; } } @@ -898,7 +897,7 @@ struct componentname *cnp; { struct inode *dp; - struct ext2fs_direct_2 *ep; + struct ext2fs_direct_2 *ep, *rep; struct buf *bp; int error; @@ -922,7 +921,13 @@ if ((error = ext2_blkatoff(dvp, (off_t)(dp->i_offset - dp->i_count), (char **)&ep, &bp)) != 0) return (error); - ep->e2d_reclen += dp->i_reclen; + + /* Set 'rep' to the entry being removed. */ + if (dp->i_count == 0) + rep = ep; + else + rep = (struct ext2fs_direct_2 *)((char *)ep + ep->e2d_reclen); + ep->e2d_reclen += rep->e2d_reclen; error = bwrite(bp); dp->i_flag |= IN_CHANGE | IN_UPDATE; return (error); ==== //depot/projects/soc2009/soc_ext2fs/src/sys/fs/ext2fs/inode.h#4 (text+ko) ==== @@ -75,7 +75,6 @@ doff_t i_endoff; /* End of useful stuff in directory. */ doff_t i_diroff; /* Offset in dir, where we found last entry. */ doff_t i_offset; /* Offset of free space in directory. */ - u_int32_t i_reclen; /* Size of found directory entry. */ u_int32_t i_block_group; u_int32_t i_next_alloc_block; From owner-p4-projects@FreeBSD.ORG Thu Oct 22 18:26:23 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B8438106568D; Thu, 22 Oct 2009 18:26:23 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7CB5A106568B for ; Thu, 22 Oct 2009 18:26:23 +0000 (UTC) (envelope-from truncs@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 6A8ED8FC1E for ; Thu, 22 Oct 2009 18:26:23 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n9MIQNx3058201 for ; Thu, 22 Oct 2009 18:26:23 GMT (envelope-from truncs@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n9MIQNYB058199 for perforce@freebsd.org; Thu, 22 Oct 2009 18:26:23 GMT (envelope-from truncs@FreeBSD.org) Date: Thu, 22 Oct 2009 18:26:23 GMT Message-Id: <200910221826.n9MIQNYB058199@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to truncs@FreeBSD.org using -f From: Aditya Sarawgi To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 169688 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 22 Oct 2009 18:26:24 -0000 http://p4web.freebsd.org/chv.cgi?CH=169688 Change 169688 by truncs@aditya on 2009/10/22 18:25:31 - Cache dp->i_offset in the local 'i_offset' variable for use in loop indexes so directory lookup becomes shared lock safe. In the modifying cases an exclusive lock is held here so the commit routine may rely on the state of i_offset. - Similarly handle i_diroff by fetching at the start and setting only once the operation is complete. Without the exclusive lock these are only considered hints. - Assert that an exclusive lock is held when we're preparing for a commit routine. - Honor the lock type request from lookup instead of always using exclusive locking. Affected files ... .. //depot/projects/soc2009/soc_ext2fs/src/sys/fs/ext2fs/ext2_lookup.c#9 edit Differences ... ==== //depot/projects/soc2009/soc_ext2fs/src/sys/fs/ext2fs/ext2_lookup.c#9 (text+ko) ==== @@ -298,6 +298,8 @@ enum {NONE, COMPACT, FOUND} slotstatus; doff_t slotoffset; /* offset of area with free space */ int slotsize; /* size of area at slotoffset */ + doff_t i_diroff; /* cached i_diroff value */ + doff_t i_offset; /* cached i_offset value */ int slotfreespace; /* amount of space free in slot */ int slotneeded; /* size of the entry we're seeking */ int numdirpasses; /* strategy for directory search */ @@ -314,6 +316,7 @@ int flags = cnp->cn_flags; int nameiop = cnp->cn_nameiop; ino_t ino; + int ltype; int DIRBLKSIZ = VTOI(ap->a_dvp)->i_e2fs->e2fs_bsize; @@ -333,6 +336,7 @@ * case it doesn't already exist. */ ino = 0; + i_diroff = dp->i_diroff; slotstatus = FOUND; slotfreespace = slotsize = slotneeded = 0; if ((nameiop == CREATE || nameiop == RENAME) && @@ -356,34 +360,34 @@ * of simplicity. */ bmask = VFSTOEXT2(vdp->v_mount)->um_mountp->mnt_stat.f_iosize - 1; - if (nameiop != LOOKUP || dp->i_diroff == 0 || - dp->i_diroff > dp->i_size) { + if (nameiop != LOOKUP || i_diroff == 0 || + i_diroff > dp->i_size) { entryoffsetinblock = 0; - dp->i_offset = 0; + i_offset = 0; numdirpasses = 1; } else { - dp->i_offset = dp->i_diroff; - if ((entryoffsetinblock = dp->i_offset & bmask) && - (error = ext2_blkatoff(vdp, (off_t)dp->i_offset, NULL, + i_offset = i_diroff; + if ((entryoffsetinblock = i_offset & bmask) && + (error = ext2_blkatoff(vdp, (off_t)i_offset, NULL, &bp))) return (error); numdirpasses = 2; nchstats.ncs_2passes++; } - prevoff = dp->i_offset; + prevoff = i_offset; endsearch = roundup2(dp->i_size, DIRBLKSIZ); enduseful = 0; searchloop: - while (dp->i_offset < endsearch) { + while (i_offset < endsearch) { /* * If necessary, get the next directory block. */ - if ((dp->i_offset & bmask) == 0) { + if ((i_offset & bmask) == 0) { if (bp != NULL) brelse(bp); if ((error = - ext2_blkatoff(vdp, (off_t)dp->i_offset, NULL, + ext2_blkatoff(vdp, (off_t)i_offset, NULL, &bp)) != 0) return (error); entryoffsetinblock = 0; @@ -409,9 +413,9 @@ if (ep->e2d_reclen == 0 || (dirchk && ext2_dirbadentry(vdp, ep, entryoffsetinblock))) { int i; - ext2_dirbad(dp, dp->i_offset, "mangled entry"); + ext2_dirbad(dp, i_offset, "mangled entry"); i = DIRBLKSIZ - (entryoffsetinblock & (DIRBLKSIZ - 1)); - dp->i_offset += i; + i_offset += i; entryoffsetinblock += i; continue; } @@ -430,15 +434,15 @@ if (size > 0) { if (size >= slotneeded) { slotstatus = FOUND; - slotoffset = dp->i_offset; + slotoffset = i_offset; slotsize = ep->e2d_reclen; } else if (slotstatus == NONE) { slotfreespace += size; if (slotoffset == -1) - slotoffset = dp->i_offset; + slotoffset = i_offset; if (slotfreespace >= slotneeded) { slotstatus = COMPACT; - slotsize = dp->i_offset + + slotsize = i_offset + ep->e2d_reclen - slotoffset; } } @@ -462,11 +466,11 @@ goto found; } } - prevoff = dp->i_offset; - dp->i_offset += ep->e2d_reclen; + prevoff = i_offset; + i_offset += ep->e2d_reclen; entryoffsetinblock += ep->e2d_reclen; if (ep->e2d_ino) - enduseful = dp->i_offset; + enduseful = i_offset; } /* notfound: */ /* @@ -475,10 +479,11 @@ */ if (numdirpasses == 2) { numdirpasses--; - dp->i_offset = 0; - endsearch = dp->i_diroff; + i_offset = 0; + endsearch = i_diroff; goto searchloop; } + dp->i_offset = i_offset; if (bp != NULL) brelse(bp); /* @@ -547,7 +552,7 @@ */ if (entryoffsetinblock + EXT2_DIR_REC_LEN(ep->e2d_namlen) > dp->i_size) { - ext2_dirbad(dp, dp->i_offset, "i_size too small"); + ext2_dirbad(dp, i_offset, "i_size too small"); dp->i_size = entryoffsetinblock+EXT2_DIR_REC_LEN(ep->e2d_namlen); dp->i_flag |= IN_CHANGE | IN_UPDATE; } @@ -559,8 +564,8 @@ * in the cache as to where the entry was found. */ if ((flags & ISLASTCN) && nameiop == LOOKUP) - dp->i_diroff = dp->i_offset &~ (DIRBLKSIZ - 1); - + dp->i_diroff = i_offset &~ (DIRBLKSIZ - 1); + dp->i_offset = i_offset; /* * If deleting, and at end of pathname, return * parameters which can be used to remove file. @@ -650,14 +655,26 @@ */ pdp = vdp; if (flags & ISDOTDOT) { + ltype = VOP_ISLOCKED(pdp); VOP_UNLOCK(pdp, 0); /* race to get the inode */ error = VFS_VGET(vdp->v_mount, ino, LK_EXCLUSIVE, &tdp); - vn_lock(pdp, LK_EXCLUSIVE | LK_RETRY); + vn_lock(pdp, ltype | LK_RETRY); if (error != 0) return (error); *vpp = tdp; } else if (dp->i_number == ino) { VREF(vdp); /* we want ourself, ie "." */ + /* + * When we lookup "." we still can be asked to lock it + * differently. + */ + ltype = cnp->cn_lkflags & LK_TYPE_MASK; + if (ltype != VOP_ISLOCKED(vdp)) { + if (ltype == LK_EXCLUSIVE) + vn_lock(vdp, LK_UPGRADE | LK_RETRY); + else /* if (ltype == LK_SHARED) */ + vn_lock(vdp, LK_DOWNGRADE | LK_RETRY); + } *vpp = vdp; } else { if ((error = VFS_VGET(vdp->v_mount, ino, LK_EXCLUSIVE, From owner-p4-projects@FreeBSD.ORG Thu Oct 22 22:25:23 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8DB651065692; Thu, 22 Oct 2009 22:25:23 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 384AE106568B for ; Thu, 22 Oct 2009 22:25:23 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 1CD3D8FC19 for ; Thu, 22 Oct 2009 22:25:23 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n9MMPNPa089239 for ; Thu, 22 Oct 2009 22:25:23 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n9MMPMYU089237 for perforce@freebsd.org; Thu, 22 Oct 2009 22:25:22 GMT (envelope-from pgj@FreeBSD.org) Date: Thu, 22 Oct 2009 22:25:22 GMT Message-Id: <200910222225.n9MMPMYU089237@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 169697 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 22 Oct 2009 22:25:23 -0000 http://p4web.freebsd.org/chv.cgi?CH=169697 Change 169697 by pgj@beehive on 2009/10/22 22:24:30 IFC Affected files ... .. //depot/projects/docproj_hu/www/hu/share/sgml/events.xml#18 integrate .. //depot/projects/docproj_hu/www/share/sgml/events.xml#21 integrate Differences ... ==== //depot/projects/docproj_hu/www/hu/share/sgml/events.xml#18 (text+ko) ==== @@ -17,7 +17,7 @@ - $FreeBSD: www/hu/share/sgml/events.xml,v 1.7 2009/08/21 22:28:14 pgj Exp $ + $FreeBSD: www/hu/share/sgml/events.xml,v 1.8 2009/10/21 13:33:32 pgj Exp $ ==== //depot/projects/docproj_hu/www/share/sgml/events.xml#21 (text+ko) ==== @@ -10,7 +10,7 @@ - $FreeBSD: www/share/sgml/events.xml,v 1.76 2009/10/20 08:50:12 brueffer Exp $ + $FreeBSD: www/share/sgml/events.xml,v 1.77 2009/10/21 07:40:38 brueffer Exp $ @@ -136,6 +136,57 @@ from commercial vendors. + + AsiaBSDCon 2010 + http://2010.asiabsdcon.org/ + + 2010 + 3 + 11 + + + 2010 + 3 + 14 + + + Japan + Tokyo + Tokyo University of Science + + AsiaBSDCon is a conference for users and developers on BSD + based systems. The conference is for anyone developing, deploying and + using systems based on FreeBSD, NetBSD, OpenBSD, DragonFlyBSD, Darwin + and MacOS X. AsiaBSDCon is a technical conference and aims to collect + the best technical papers and presentations available to ensure that + the latest developments in our open source community are shared with + the widest possible audience. + + + + FOSDEM '10 + http://fosdem.org/2010/ + + 2010 + 2 + 6 + + + 2010 + 2 + 7 + + + Belgium + Brussels + ULB Campus Solbosh + + FOSDEM '10 is a free and non-commercial event organized + by the community, for the community. Its goal is to provide Free + and Open Source developers a place to meet. Several &os; + developers will be present. + + OpenRheinRuhr 2009 http://www.openrheinruhr.de/ From owner-p4-projects@FreeBSD.ORG Thu Oct 22 22:52:51 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 83309106568B; Thu, 22 Oct 2009 22:52:51 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2F6EF106566B for ; Thu, 22 Oct 2009 22:52:50 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id D23138FC1A for ; Thu, 22 Oct 2009 22:52:50 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n9MMqoEb091139 for ; Thu, 22 Oct 2009 22:52:50 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n9MMqowS091137 for perforce@freebsd.org; Thu, 22 Oct 2009 22:52:50 GMT (envelope-from pgj@FreeBSD.org) Date: Thu, 22 Oct 2009 22:52:50 GMT Message-Id: <200910222252.n9MMqowS091137@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 169698 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 22 Oct 2009 22:52:51 -0000 http://p4web.freebsd.org/chv.cgi?CH=169698 Change 169698 by pgj@beehive on 2009/10/22 22:52:19 MFen (www): 1.76 -> 1.77 hu/share/sgml/events.xml Affected files ... .. //depot/projects/docproj_hu/www/hu/share/sgml/events.xml#19 edit Differences ... ==== //depot/projects/docproj_hu/www/hu/share/sgml/events.xml#19 (text+ko) ==== @@ -11,7 +11,7 @@ @@ -172,6 +172,67 @@ egyaránt. + + AsiaBSDCon 2010 + http://2010.asiabsdcon.org/ + + 2010 + 3 + 11 + + + 2010 + 3 + 14 + + + Japán + Tokió + Tokiói Tudományegyetem + + Az AsiaBSDCon a BSD alapú rendszerek + fejlesztõinek és felhasználóinak + konferenciája. Ez a konferencia szeretettel vár + bárkit, aki &os;, NetBSD, OpenBSD, DragonFlyBSD, Darwin + vagy MacOS X alapú rendszerekkel vagy rendszereken + fejleszt. Az AsiaBSDCon egy olyan szakmai konferencia, amelynek + célja a jelenleg elérhetõ legjobb és + legfrissebb szakmai publikációk, bemutatók + összegyûjtése, ezáltal igyekszik + elérni a nyílt forrású + közösségekben megjelenõ fejlesztések + minél szélesebb közönség + elõtti + népszerûsítését. + + + + FOSDEM '10 + http://fosdem.org/2010/ + + 2010 + 2 + 6 + + + 2010 + 2 + 7 + + + Belgium + Brüsszel + ULB kampusz, Solbosh + + A FOSDEM '10 egy ingyenes és nem kereskedelmi + jellegû rendezvény, amelyet a közösség + tagjai rendeznek a közösség tagjainak. + Célja helyet adni a szabad és nyílt + forráskódú szoftverek fejlesztõinek a + találkozásra. A rendezvényen számos + &os; fejlesztõ is jelen lesz. + + OpenReinRuhr 2009 http://www.openrheinruhr.de/ From owner-p4-projects@FreeBSD.ORG Fri Oct 23 09:05:24 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4DEE4106568D; Fri, 23 Oct 2009 09:05:24 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 111281065670 for ; Fri, 23 Oct 2009 09:05:24 +0000 (UTC) (envelope-from mav@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id F14288FC15 for ; Fri, 23 Oct 2009 09:05:23 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n9N95NWg077502 for ; Fri, 23 Oct 2009 09:05:23 GMT (envelope-from mav@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n9N95NjH077500 for perforce@freebsd.org; Fri, 23 Oct 2009 09:05:23 GMT (envelope-from mav@freebsd.org) Date: Fri, 23 Oct 2009 09:05:23 GMT Message-Id: <200910230905.n9N95NjH077500@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mav@freebsd.org using -f From: Alexander Motin To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 169705 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 23 Oct 2009 09:05:24 -0000 http://p4web.freebsd.org/chv.cgi?CH=169705 Change 169705 by mav@mav_mavbook on 2009/10/23 09:05:07 IFC Affected files ... .. //depot/projects/scottl-camlock/src/lib/libusb/libusb20_ugen20.c#4 integrate .. //depot/projects/scottl-camlock/src/share/man/man4/atapicam.4#3 integrate .. //depot/projects/scottl-camlock/src/share/man/man4/mac_mls.4#2 integrate .. //depot/projects/scottl-camlock/src/share/man/man4/umass.4#3 integrate .. //depot/projects/scottl-camlock/src/share/mk/bsd.sys.mk#4 integrate .. //depot/projects/scottl-camlock/src/share/zoneinfo/Makefile#4 integrate .. //depot/projects/scottl-camlock/src/sys/cam/ata/ata_da.c#31 integrate .. //depot/projects/scottl-camlock/src/sys/cam/ata/ata_xpt.c#41 integrate .. //depot/projects/scottl-camlock/src/sys/cam/cam.h#8 integrate .. //depot/projects/scottl-camlock/src/sys/cam/cam_periph.c#36 integrate .. //depot/projects/scottl-camlock/src/sys/cam/cam_queue.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/cam/cam_queue.h#4 integrate .. //depot/projects/scottl-camlock/src/sys/cam/cam_xpt.c#107 integrate .. //depot/projects/scottl-camlock/src/sys/cam/scsi/scsi_all.c#11 integrate .. //depot/projects/scottl-camlock/src/sys/cam/scsi/scsi_cd.c#28 integrate .. //depot/projects/scottl-camlock/src/sys/cam/scsi/scsi_ch.c#19 integrate .. //depot/projects/scottl-camlock/src/sys/cam/scsi/scsi_da.c#47 integrate .. //depot/projects/scottl-camlock/src/sys/cam/scsi/scsi_pt.c#15 integrate .. //depot/projects/scottl-camlock/src/sys/cam/scsi/scsi_sa.c#21 integrate .. //depot/projects/scottl-camlock/src/sys/cam/scsi/scsi_targ_bh.c#13 integrate .. //depot/projects/scottl-camlock/src/sys/cam/scsi/scsi_target.c#20 integrate .. //depot/projects/scottl-camlock/src/sys/cam/scsi/scsi_xpt.c#18 integrate .. //depot/projects/scottl-camlock/src/sys/dev/mwl/if_mwl_pci.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/input/ums.c#8 integrate .. //depot/projects/scottl-camlock/src/sys/kern/subr_bus.c#35 integrate .. //depot/projects/scottl-camlock/src/sys/net80211/ieee80211_hwmp.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/powerpc/aim/mmu_oea64.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/powerpc/aim/mp_cpudep.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/powerpc/aim/platform_chrp.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/powerpc/booke/mp_cpudep.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/powerpc/include/pcpu.h#8 integrate .. //depot/projects/scottl-camlock/src/sys/powerpc/include/smp.h#5 integrate .. //depot/projects/scottl-camlock/src/sys/powerpc/include/spr.h#8 integrate .. //depot/projects/scottl-camlock/src/sys/powerpc/powerpc/cpu.c#10 integrate .. //depot/projects/scottl-camlock/src/sys/powerpc/powerpc/mp_machdep.c#10 integrate .. //depot/projects/scottl-camlock/src/sys/tools/makeobjops.awk#5 integrate Differences ... ==== //depot/projects/scottl-camlock/src/lib/libusb/libusb20_ugen20.c#4 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/lib/libusb/libusb20_ugen20.c,v 1.4 2009/06/23 02:19:59 thompsa Exp $ */ +/* $FreeBSD: src/lib/libusb/libusb20_ugen20.c,v 1.5 2009/10/22 21:01:41 thompsa Exp $ */ /*- * Copyright (c) 2008 Hans Petter Selasky. All rights reserved. * @@ -800,7 +800,11 @@ if (xfer->flags & LIBUSB20_TRANSFER_DO_CLEAR_STALL) { fsep->flags |= USB_FS_FLAG_CLEAR_STALL; } - fsep->timeout = xfer->timeout; + /* NOTE: The "fsep->timeout" variable is 16-bit. */ + if (xfer->timeout > 65535) + fsep->timeout = 65535; + else + fsep->timeout = xfer->timeout; temp.ep_index = xfer->trIndex; ==== //depot/projects/scottl-camlock/src/share/man/man4/atapicam.4#3 (text+ko) ==== @@ -25,16 +25,31 @@ .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF .\" THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man4/atapicam.4,v 1.6 2008/11/03 22:43:37 imp Exp $ +.\" $FreeBSD: src/share/man/man4/atapicam.4,v 1.7 2009/10/22 11:35:12 brueffer Exp $ .\" -.Dd October 23, 2002 +.Dd October 22, 2009 .Dt ATAPICAM 4 .Os .Sh NAME .Nm atapicam .Nd CAM XPT (transport) module for ATAPI devices .Sh SYNOPSIS +To compile this driver into the kernel, +place the following lines in your +kernel configuration file: +.Bd -ragged -offset indent +.Cd "device scbus" +.Cd "device cam" +.Cd "device ata" .Cd "device atapicam" +.Ed +.Pp +Alternatively, to load the driver as a +module at boot time, place the following line in +.Xr loader.conf 5 : +.Bd -literal -offset indent +atapicam_load="YES" +.Ed .Sh DESCRIPTION The ATAPI/CAM module allows ATAPI devices (CD-ROM, CD-RW, DVD drives, floppy drives such as Iomega Zip, tape drives) to be accessed through ==== //depot/projects/scottl-camlock/src/share/man/man4/mac_mls.4#2 (text+ko) ==== @@ -28,7 +28,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man4/mac_mls.4,v 1.19 2005/01/12 10:14:42 ru Exp $ +.\" $FreeBSD: src/share/man/man4/mac_mls.4,v 1.20 2009/10/22 08:38:27 pjd Exp $ .\" .Dd December 1, 2002 .Os @@ -212,7 +212,6 @@ .Xr mac_bsdextended 4 , .Xr mac_ifoff 4 , .Xr mac_lomac 4 , -.Xr mac_mls 4 , .Xr mac_none 4 , .Xr mac_partition 4 , .Xr mac_portacl 4 , ==== //depot/projects/scottl-camlock/src/share/man/man4/umass.4#3 (text+ko) ==== @@ -25,9 +25,9 @@ .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF .\" THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man4/umass.4,v 1.45 2008/10/13 20:43:08 n_hibma Exp $ +.\" $FreeBSD: src/share/man/man4/umass.4,v 1.46 2009/10/22 11:35:12 brueffer Exp $ .\" -.Dd November 22, 2006 +.Dd October 22, 2009 .Dt UMASS 4 .Os .Sh NAME @@ -38,6 +38,9 @@ place the following line in your kernel configuration file: .Bd -ragged -offset indent +.Cd "device scbus" +.Cd "device cam" +.Cd "device usb" .Cd "device umass" .Ed .Pp ==== //depot/projects/scottl-camlock/src/share/mk/bsd.sys.mk#4 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/share/mk/bsd.sys.mk,v 1.49 2009/10/21 17:07:46 rdivacky Exp $ +# $FreeBSD: src/share/mk/bsd.sys.mk,v 1.50 2009/10/22 11:45:35 ru Exp $ # # This file contains common settings used for building FreeBSD # sources. @@ -11,7 +11,7 @@ # the default is gnu99 for now CSTD ?= gnu99 -.if !defined(NO_WARNS) || ${CC} != "icc" +.if ${CC} != "icc" . if ${CSTD} == "k&r" CFLAGS += -traditional . elif ${CSTD} == "c89" || ${CSTD} == "c90" @@ -23,6 +23,8 @@ . else CFLAGS += -std=${CSTD} . endif +.endif +.if !defined(NO_WARNS) && ${CC} != "icc" # -pedantic is problematic because it also imposes namespace restrictions #CFLAGS += -pedantic . if defined(WARNS) ==== //depot/projects/scottl-camlock/src/share/zoneinfo/Makefile#4 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/share/zoneinfo/Makefile,v 1.25 2009/10/21 20:59:12 edwin Exp $ +# $FreeBSD: src/share/zoneinfo/Makefile,v 1.26 2009/10/22 20:59:51 edwin Exp $ # # HOW TO UPDATE THE ZONEINFO DATA @@ -55,11 +55,11 @@ ${.CURDIR}/zone.tab ${DESTDIR}/usr/share/zoneinfo/ afterinstall: - @# - @# If the file /var/db/zoneinfo exists, and it is owned by root:wheel, - @# and the contents of it exists in /usr/share/zoneinfo, then reinstall - @# it. - @# +# +# If the file /var/db/zoneinfo exists, and it is owned by root:wheel, +# and the contents of it exists in /usr/share/zoneinfo, then reinstall +# it. +# @if [ -f ${DESTDIR}/var/db/zoneinfo -a -O ${DESTDIR}/var/db/zoneinfo \ -a -G ${DESTDIR}/var/db/zoneinfo ]; then \ zf=$$(cat ${DESTDIR}/var/db/zoneinfo); \ ==== //depot/projects/scottl-camlock/src/sys/cam/ata/ata_da.c#31 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/cam/ata/ata_da.c,v 1.6 2009/10/21 14:20:55 mav Exp $"); +__FBSDID("$FreeBSD: src/sys/cam/ata/ata_da.c,v 1.7 2009/10/23 08:27:55 mav Exp $"); #include ==== //depot/projects/scottl-camlock/src/sys/cam/ata/ata_xpt.c#41 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/cam/ata/ata_xpt.c,v 1.7 2009/10/21 15:27:48 mav Exp $"); +__FBSDID("$FreeBSD: src/sys/cam/ata/ata_xpt.c,v 1.8 2009/10/23 08:27:55 mav Exp $"); #include #include ==== //depot/projects/scottl-camlock/src/sys/cam/cam.h#8 (text+ko) ==== @@ -25,7 +25,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/cam/cam.h,v 1.13 2009/07/10 08:18:08 scottl Exp $ + * $FreeBSD: src/sys/cam/cam.h,v 1.14 2009/10/23 08:27:55 mav Exp $ */ #ifndef _CAM_CAM_H ==== //depot/projects/scottl-camlock/src/sys/cam/cam_periph.c#36 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/cam/cam_periph.c,v 1.81 2009/09/22 22:23:52 mav Exp $"); +__FBSDID("$FreeBSD: src/sys/cam/cam_periph.c,v 1.82 2009/10/23 08:27:55 mav Exp $"); #include #include ==== //depot/projects/scottl-camlock/src/sys/cam/cam_queue.c#5 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/cam/cam_queue.c,v 1.9 2005/07/01 15:21:29 avatar Exp $"); +__FBSDID("$FreeBSD: src/sys/cam/cam_queue.c,v 1.10 2009/10/22 21:07:32 mav Exp $"); #include #include @@ -289,7 +289,7 @@ cam_ccbq_free(struct cam_ccbq *ccbq) { if (ccbq) { - camq_fini(&ccbq->queue); + cam_ccbq_fini(ccbq); free(ccbq, M_CAMCCBQ); } } @@ -338,6 +338,13 @@ return (0); } +void +cam_ccbq_fini(struct cam_ccbq *ccbq) +{ + + camq_fini(&ccbq->queue); +} + /* * Heap routines for manipulating CAM queues. */ ==== //depot/projects/scottl-camlock/src/sys/cam/cam_queue.h#4 (text+ko) ==== @@ -25,7 +25,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/cam/cam_queue.h,v 1.9 2005/01/05 22:34:34 imp Exp $ + * $FreeBSD: src/sys/cam/cam_queue.h,v 1.11 2009/10/22 21:07:32 mav Exp $ */ #ifndef _CAM_CAM_QUEUE_H ==== //depot/projects/scottl-camlock/src/sys/cam/cam_xpt.c#107 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/cam/cam_xpt.c,v 1.225 2009/10/21 15:57:16 mav Exp $"); +__FBSDID("$FreeBSD: src/sys/cam/cam_xpt.c,v 1.227 2009/10/23 08:27:55 mav Exp $"); #include #include @@ -4455,7 +4455,7 @@ devq = bus->sim->devq; cam_devq_resize(devq, devq->alloc_queue.array_size - 1); camq_fini(&device->drvq); - camq_fini(&device->ccbq.queue); + cam_ccbq_fini(&device->ccbq); free(device, M_CAMXPT); xpt_release_target(bus, target); } ==== //depot/projects/scottl-camlock/src/sys/cam/scsi/scsi_all.c#11 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/cam/scsi/scsi_all.c,v 1.55 2009/07/10 08:18:08 scottl Exp $"); +__FBSDID("$FreeBSD: src/sys/cam/scsi/scsi_all.c,v 1.56 2009/10/23 08:27:55 mav Exp $"); #include ==== //depot/projects/scottl-camlock/src/sys/cam/scsi/scsi_cd.c#28 (text+ko) ==== @@ -46,7 +46,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/cam/scsi/scsi_cd.c,v 1.110 2009/09/08 16:09:28 scottl Exp $"); +__FBSDID("$FreeBSD: src/sys/cam/scsi/scsi_cd.c,v 1.111 2009/10/23 08:27:55 mav Exp $"); #include "opt_cd.h" ==== //depot/projects/scottl-camlock/src/sys/cam/scsi/scsi_ch.c#19 (text+ko) ==== @@ -68,7 +68,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/cam/scsi/scsi_ch.c,v 1.48 2009/07/10 08:18:08 scottl Exp $"); +__FBSDID("$FreeBSD: src/sys/cam/scsi/scsi_ch.c,v 1.49 2009/10/23 08:27:55 mav Exp $"); #include #include ==== //depot/projects/scottl-camlock/src/sys/cam/scsi/scsi_da.c#47 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/cam/scsi/scsi_da.c,v 1.238 2009/09/04 09:40:59 pjd Exp $"); +__FBSDID("$FreeBSD: src/sys/cam/scsi/scsi_da.c,v 1.240 2009/10/23 08:27:55 mav Exp $"); #include @@ -813,14 +813,6 @@ cam_periph_lock(periph); -#if 0 - /* - * check it's not too big a transfer for our adapter - */ - scsi_minphys(bp,&sd_switch); -#endif - - /* * If the device has been made invalid, error out */ if ((softc->flags & DA_FLAG_PACK_INVALID)) { @@ -1687,7 +1679,7 @@ xpt_setup_ccb(&cgd.ccb_h, done_ccb->ccb_h.path, - priority); + CAM_PRIORITY_NORMAL); cgd.ccb_h.func_code = XPT_GDEV_TYPE; xpt_action((union ccb *)&cgd); ==== //depot/projects/scottl-camlock/src/sys/cam/scsi/scsi_pt.c#15 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/cam/scsi/scsi_pt.c,v 1.49 2009/07/10 08:18:08 scottl Exp $"); +__FBSDID("$FreeBSD: src/sys/cam/scsi/scsi_pt.c,v 1.50 2009/10/23 08:27:55 mav Exp $"); #include #include ==== //depot/projects/scottl-camlock/src/sys/cam/scsi/scsi_sa.c#21 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/cam/scsi/scsi_sa.c,v 1.117 2009/07/10 08:18:08 scottl Exp $"); +__FBSDID("$FreeBSD: src/sys/cam/scsi/scsi_sa.c,v 1.118 2009/10/23 08:27:55 mav Exp $"); #include #include ==== //depot/projects/scottl-camlock/src/sys/cam/scsi/scsi_targ_bh.c#13 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/cam/scsi/scsi_targ_bh.c,v 1.25 2007/05/16 16:54:23 scottl Exp $"); +__FBSDID("$FreeBSD: src/sys/cam/scsi/scsi_targ_bh.c,v 1.26 2009/10/23 08:27:55 mav Exp $"); #include #include ==== //depot/projects/scottl-camlock/src/sys/cam/scsi/scsi_target.c#20 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/cam/scsi/scsi_target.c,v 1.80 2009/09/19 20:25:54 mjacob Exp $"); +__FBSDID("$FreeBSD: src/sys/cam/scsi/scsi_target.c,v 1.81 2009/10/23 08:27:55 mav Exp $"); #include ==== //depot/projects/scottl-camlock/src/sys/cam/scsi/scsi_xpt.c#18 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/cam/scsi/scsi_xpt.c,v 1.3 2009/07/14 18:44:17 emaste Exp $"); +__FBSDID("$FreeBSD: src/sys/cam/scsi/scsi_xpt.c,v 1.4 2009/10/23 08:27:55 mav Exp $"); #include #include ==== //depot/projects/scottl-camlock/src/sys/dev/mwl/if_mwl_pci.c#2 (text+ko) ==== @@ -30,7 +30,7 @@ #include #ifdef __FreeBSD__ -__FBSDID("$FreeBSD: src/sys/dev/mwl/if_mwl_pci.c,v 1.1 2009/06/01 18:07:01 sam Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/mwl/if_mwl_pci.c,v 1.2 2009/10/22 12:48:17 rpaulo Exp $"); #endif /* @@ -204,7 +204,7 @@ BUS_SPACE_MAXADDR, /* maxsize */ MWL_TXDESC, /* nsegments */ BUS_SPACE_MAXADDR, /* maxsegsize */ - BUS_DMA_ALLOCNOW, /* flags */ + 0, /* flags */ NULL, /* lockfunc */ NULL, /* lockarg */ &sc->sc_dmat)) { ==== //depot/projects/scottl-camlock/src/sys/dev/usb/input/ums.c#8 (text+ko) ==== @@ -36,7 +36,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/usb/input/ums.c,v 1.16 2009/07/30 00:13:09 alfred Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/usb/input/ums.c,v 1.17 2009/10/22 20:54:01 thompsa Exp $"); /* * HID spec: http://www.usb.org/developers/devclass_docs/HID1_11.pdf @@ -63,6 +63,7 @@ #include #include #include +#include #include #include @@ -161,7 +162,9 @@ static usb_fifo_close_t ums_close; static usb_fifo_ioctl_t ums_ioctl; -static void ums_put_queue(struct ums_softc *sc, int32_t dx, int32_t dy, int32_t dz, int32_t dt, int32_t buttons); +static void ums_put_queue(struct ums_softc *, int32_t, int32_t, + int32_t, int32_t, int32_t); +static int ums_sysctl_handler_parseinfo(SYSCTL_HANDLER_ARGS); static struct usb_fifo_methods ums_fifo_methods = { .f_open = &ums_open, @@ -643,6 +646,12 @@ if (err) { goto detach; } + SYSCTL_ADD_PROC(device_get_sysctl_ctx(dev), + SYSCTL_CHILDREN(device_get_sysctl_tree(dev)), + OID_AUTO, "parseinfo", CTLTYPE_STRING|CTLFLAG_RD, + sc, 0, ums_sysctl_handler_parseinfo, + "", "Dump UMS report parsing information"); + return (0); detach: @@ -916,6 +925,67 @@ return (error); } +static int +ums_sysctl_handler_parseinfo(SYSCTL_HANDLER_ARGS) +{ + struct ums_softc *sc = arg1; + struct ums_info *info; + struct sbuf *sb; + int i, j, err; + + sb = sbuf_new_auto(); + for (i = 0; i < UMS_INFO_MAX; i++) { + info = &sc->sc_info[i]; + + /* Don't emit empty info */ + if ((info->sc_flags & + (UMS_FLAG_X_AXIS | UMS_FLAG_Y_AXIS | UMS_FLAG_Z_AXIS | + UMS_FLAG_T_AXIS | UMS_FLAG_W_AXIS)) == 0 && + info->sc_buttons == 0) + continue; + + sbuf_printf(sb, "i%d:", i + 1); + if (info->sc_flags & UMS_FLAG_X_AXIS) + sbuf_printf(sb, " X:r%d, p%d, s%d;", + (int)info->sc_iid_x, + (int)info->sc_loc_x.pos, + (int)info->sc_loc_x.size); + if (info->sc_flags & UMS_FLAG_Y_AXIS) + sbuf_printf(sb, " Y:r%d, p%d, s%d;", + (int)info->sc_iid_y, + (int)info->sc_loc_y.pos, + (int)info->sc_loc_y.size); + if (info->sc_flags & UMS_FLAG_Z_AXIS) + sbuf_printf(sb, " Z:r%d, p%d, s%d;", + (int)info->sc_iid_z, + (int)info->sc_loc_z.pos, + (int)info->sc_loc_z.size); + if (info->sc_flags & UMS_FLAG_T_AXIS) + sbuf_printf(sb, " T:r%d, p%d, s%d;", + (int)info->sc_iid_t, + (int)info->sc_loc_t.pos, + (int)info->sc_loc_t.size); + if (info->sc_flags & UMS_FLAG_W_AXIS) + sbuf_printf(sb, " W:r%d, p%d, s%d;", + (int)info->sc_iid_w, + (int)info->sc_loc_w.pos, + (int)info->sc_loc_w.size); + + for (j = 0; j < info->sc_buttons; j++) { + sbuf_printf(sb, " B%d:r%d, p%d, s%d;", j + 1, + (int)info->sc_iid_btn[j], + (int)info->sc_loc_btn[j].pos, + (int)info->sc_loc_btn[j].size); + } + sbuf_printf(sb, "\n"); + } + sbuf_finish(sb); + err = SYSCTL_OUT(req, sbuf_data(sb), sbuf_len(sb) + 1); + sbuf_delete(sb); + + return (err); +} + static devclass_t ums_devclass; static device_method_t ums_methods[] = { ==== //depot/projects/scottl-camlock/src/sys/kern/subr_bus.c#35 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/kern/subr_bus.c,v 1.232 2009/10/15 14:54:35 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/subr_bus.c,v 1.233 2009/10/22 14:53:44 jhb Exp $"); #include "opt_bus.h" @@ -1049,9 +1049,10 @@ * @param driver the driver to register */ static int -devclass_add_driver(devclass_t dc, driver_t *driver, int pass) +devclass_add_driver(devclass_t dc, driver_t *driver, int pass, devclass_t *dcp) { driverlink_t dl; + const char *parentname; PDEBUG(("%s", DRIVERNAME(driver))); @@ -1072,9 +1073,17 @@ kobj_class_compile((kobj_class_t) driver); /* - * Make sure the devclass which the driver is implementing exists. + * If the driver has any base classes, make the + * devclass inherit from the devclass of the driver's + * first base class. This will allow the system to + * search for drivers in both devclasses for children + * of a device using this driver. */ - devclass_find_internal(driver->name, NULL, TRUE); + if (driver->baseclasses) + parentname = driver->baseclasses[0]->name; + else + parentname = NULL; + *dcp = devclass_find_internal(driver->name, parentname, TRUE); dl->driver = driver; TAILQ_INSERT_TAIL(&dc->drivers, dl, link); @@ -4157,27 +4166,8 @@ driver = dmd->dmd_driver; PDEBUG(("Loading module: driver %s on bus %s (pass %d)", DRIVERNAME(driver), dmd->dmd_busname, pass)); - error = devclass_add_driver(bus_devclass, driver, pass); - if (error) - break; - - /* - * If the driver has any base classes, make the - * devclass inherit from the devclass of the driver's - * first base class. This will allow the system to - * search for drivers in both devclasses for children - * of a device using this driver. - */ - if (driver->baseclasses) { - const char *parentname; - parentname = driver->baseclasses[0]->name; - *dmd->dmd_devclass = - devclass_find_internal(driver->name, - parentname, TRUE); - } else { - *dmd->dmd_devclass = - devclass_find_internal(driver->name, NULL, TRUE); - } + error = devclass_add_driver(bus_devclass, driver, pass, + dmd->dmd_devclass); break; case MOD_UNLOAD: ==== //depot/projects/scottl-camlock/src/sys/net80211/ieee80211_hwmp.c#6 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include #ifdef __FreeBSD__ -__FBSDID("$FreeBSD: src/sys/net80211/ieee80211_hwmp.c,v 1.8 2009/10/19 23:11:43 rpaulo Exp $"); +__FBSDID("$FreeBSD: src/sys/net80211/ieee80211_hwmp.c,v 1.9 2009/10/22 17:30:22 rpaulo Exp $"); #endif /* @@ -653,6 +653,7 @@ IEEE80211_NOTE(vap, IEEE80211_MSG_HWMP, vap->iv_bss, "%s", "send broadcast RANN"); + rann.rann_flags = 0; if (ms->ms_flags & IEEE80211_MESHFLAGS_PORTAL) rann.rann_flags |= IEEE80211_MESHRANN_FLAGS_PR; rann.rann_hopcount = 0; ==== //depot/projects/scottl-camlock/src/sys/powerpc/aim/mmu_oea64.c#6 (text+ko) ==== @@ -91,7 +91,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/powerpc/aim/mmu_oea64.c,v 1.5 2009/10/21 18:38:02 marcel Exp $"); +__FBSDID("$FreeBSD: src/sys/powerpc/aim/mmu_oea64.c,v 1.6 2009/10/23 03:17:02 nwhitehorn Exp $"); /* * Manages physical address maps. @@ -182,35 +182,28 @@ * Just to add to the fun, exceptions must be off as well * so that we can't trap in 64-bit mode. What a pain. */ +struct mtx tlbie_mutex; static __inline void TLBIE(pmap_t pmap, vm_offset_t va) { + uint64_t vpn; + register_t vpn_hi, vpn_lo; register_t msr; register_t scratch; - uint64_t vpn; - register_t vpn_hi, vpn_lo; - -#if 1 - /* - * CPU documentation says that tlbie takes the VPN, not the - * VA. I think the code below does this correctly. We will see. - */ - vpn = (uint64_t)(va & ADDR_PIDX); if (pmap != NULL) vpn |= (va_to_vsid(pmap,va) << 28); -#else - vpn = va; -#endif vpn_hi = (uint32_t)(vpn >> 32); vpn_lo = (uint32_t)vpn; + mtx_lock_spin(&tlbie_mutex); __asm __volatile("\ mfmsr %0; \ clrldi %1,%0,49; \ - insrdi %1,1,1,0; \ + mtmsr %1; \ + insrdi %1,%5,1,0; \ mtmsrd %1; \ ptesync; \ \ @@ -222,7 +215,8 @@ eieio; \ tlbsync; \ ptesync;" - : "=r"(msr), "=r"(scratch) : "r"(vpn_hi), "r"(vpn_lo), "r"(32)); + : "=r"(msr), "=r"(scratch) : "r"(vpn_hi), "r"(vpn_lo), "r"(32), "r"(1)); + mtx_unlock_spin(&tlbie_mutex); } #define DISABLE_TRANS(msr) msr = mfmsr(); mtmsr(msr & ~PSL_DR); isync() @@ -352,7 +346,7 @@ * PVO calls. */ static int moea64_pvo_enter(pmap_t, uma_zone_t, struct pvo_head *, - vm_offset_t, vm_offset_t, uint64_t, int, int); + vm_offset_t, vm_offset_t, uint64_t, int); static void moea64_pvo_remove(struct pvo_entry *, int); static struct pvo_entry *moea64_pvo_find_va(pmap_t, vm_offset_t, int *); static struct lpte *moea64_pvo_to_pte(const struct pvo_entry *, int); @@ -825,6 +819,11 @@ MTX_RECURSE); /* + * Initialize the TLBIE lock. TLBIE can only be executed by one CPU. + */ + mtx_init(&tlbie_mutex, "tlbie mutex", NULL, MTX_SPIN); + + /* * Initialise the unmanaged pvo pool. */ moea64_bpvo_pool = (struct pvo_entry *)moea64_bootstrap_alloc( @@ -1254,7 +1253,7 @@ pvo_flags |= PVO_FAKE; error = moea64_pvo_enter(pmap, zone, pvo_head, va, VM_PAGE_TO_PHYS(m), - pte_lo, pvo_flags, 0); + pte_lo, pvo_flags); if (pmap == kernel_pmap) TLBIE(pmap, va); @@ -1427,16 +1426,15 @@ if (pvo_allocator_start >= pvo_allocator_end) panic("Ran out of PVO allocator buffer space!"); - /* Now call pvo_enter in recursive mode */ moea64_pvo_enter(kernel_pmap, moea64_upvo_zone, &moea64_pvo_kunmanaged, va, VM_PAGE_TO_PHYS(m), LPTE_M, - PVO_WIRED | PVO_BOOTSTRAP, 1); + PVO_WIRED | PVO_BOOTSTRAP); TLBIE(kernel_pmap, va); - + if (needed_lock) PMAP_UNLOCK(kernel_pmap); - + if ((wait & M_ZERO) && (m->flags & PG_ZERO) == 0) bzero((void *)va, PAGE_SIZE); @@ -1579,7 +1577,7 @@ PMAP_LOCK(kernel_pmap); error = moea64_pvo_enter(kernel_pmap, moea64_upvo_zone, &moea64_pvo_kunmanaged, va, pa, pte_lo, - PVO_WIRED | VM_PROT_EXECUTE, 0); + PVO_WIRED | VM_PROT_EXECUTE); TLBIE(kernel_pmap, va); @@ -1968,14 +1966,29 @@ tlbia(void) { vm_offset_t i; + register_t msr, scratch; - for (i = 0; i < 0xFF000; i += 0x00001000) - TLBIE(NULL,i); + for (i = 0; i < 0xFF000; i += 0x00001000) { + __asm __volatile("\ + mfmsr %0; \ + mr %1, %0; \ + insrdi %1,%3,1,0; \ + mtmsrd %1; \ + ptesync; \ + \ + tlbiel %2; \ + \ + mtmsrd %0; \ + eieio; \ + tlbsync; \ + ptesync;" + : "=r"(msr), "=r"(scratch) : "r"(i), "r"(1)); + } } static int moea64_pvo_enter(pmap_t pm, uma_zone_t zone, struct pvo_head *pvo_head, - vm_offset_t va, vm_offset_t pa, uint64_t pte_lo, int flags, int recurse) + vm_offset_t va, vm_offset_t pa, uint64_t pte_lo, int flags) { struct pvo_entry *pvo; uint64_t vsid; @@ -2011,16 +2024,14 @@ * Remove any existing mapping for this page. Reuse the pvo entry if * there is a mapping. */ - if (!recurse) - LOCK_TABLE(); + LOCK_TABLE(); LIST_FOREACH(pvo, &moea64_pvo_table[ptegidx], pvo_olink) { if (pvo->pvo_pmap == pm && PVO_VADDR(pvo) == va) { if ((pvo->pvo_pte.lpte.pte_lo & LPTE_RPGN) == pa && (pvo->pvo_pte.lpte.pte_lo & LPTE_PP) == (pte_lo & LPTE_PP)) { - if (!recurse) - UNLOCK_TABLE(); + UNLOCK_TABLE(); return (0); } moea64_pvo_remove(pvo, -1); @@ -2041,12 +2052,19 @@ moea64_bpvo_pool_index++; bootstrap = 1; } else { + /* + * Note: drop the table around the UMA allocation in + * case the UMA allocator needs to manipulate the page + * table. The mapping we are working with is already + * protected by the PMAP lock. + */ + UNLOCK_TABLE(); pvo = uma_zalloc(zone, M_NOWAIT); + LOCK_TABLE(); } if (pvo == NULL) { - if (!recurse) - UNLOCK_TABLE(); + UNLOCK_TABLE(); return (ENOMEM); } @@ -2093,8 +2111,7 @@ moea64_pte_overflow++; } - if (!recurse) - UNLOCK_TABLE(); + UNLOCK_TABLE(); return (first ? ENOENT : 0); } ==== //depot/projects/scottl-camlock/src/sys/powerpc/aim/mp_cpudep.c#4 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/powerpc/aim/mp_cpudep.c,v 1.6 2009/05/14 00:34:26 nwhitehorn Exp $"); +__FBSDID("$FreeBSD: src/sys/powerpc/aim/mp_cpudep.c,v 1.7 2009/10/23 03:17:02 nwhitehorn Exp $"); #include #include @@ -48,14 +48,34 @@ #include #include -extern void *rstcode; -extern register_t l2cr_config; -extern register_t l3cr_config; +void *ap_pcpu; + +static register_t bsp_state[8]; + +static void cpudep_save_config(void *dummy); +SYSINIT(cpu_save_config, SI_SUB_CPU, SI_ORDER_ANY, cpudep_save_config, NULL); + +uintptr_t +cpudep_ap_bootstrap(void) +{ + register_t msr, sp; + + msr = PSL_KERNSET & ~PSL_EE; + mtmsr(msr); + isync(); + + __asm __volatile("mtsprg 0, %0" :: "r"(ap_pcpu)); + powerpc_sync(); + + pcpup->pc_curthread = pcpup->pc_idlethread; + pcpup->pc_curpcb = pcpup->pc_curthread->td_pcb; + sp = pcpup->pc_curpcb->pcb_sp; -void *ap_pcpu; + return (sp); +} static register_t -l2_enable(void) +mpc745x_l2_enable(register_t l2cr_config) { register_t ccr; @@ -77,7 +97,7 @@ } static register_t -l3_enable(void) +mpc745x_l3_enable(register_t l3cr_config) { register_t ccr; @@ -109,7 +129,7 @@ } static register_t -l1d_enable(void) +mpc745x_l1d_enable(void) { register_t hid; @@ -127,7 +147,7 @@ } static register_t -l1i_enable(void) +mpc745x_l1i_enable(void) { register_t hid; @@ -144,43 +164,110 @@ return (hid); } -uint32_t -cpudep_ap_bootstrap(void) +static void +cpudep_save_config(void *dummy) { - uint32_t hid, msr, reg, sp; + uint16_t vers; + + vers = mfpvr() >> 16; + + switch(vers) { + case IBM970: + case IBM970FX: + case IBM970MP: + __asm __volatile ("mfspr %0,%2; mr %1,%0; srdi %0,%0,32" + : "=r" (bsp_state[0]),"=r" (bsp_state[1]) : "K" (SPR_HID0)); + __asm __volatile ("mfspr %0,%2; mr %1,%0; srdi %0,%0,32" + : "=r" (bsp_state[2]),"=r" (bsp_state[3]) : "K" (SPR_HID1)); + __asm __volatile ("mfspr %0,%2; mr %1,%0; srdi %0,%0,32" + : "=r" (bsp_state[4]),"=r" (bsp_state[5]) : "K" (SPR_HID4)); + __asm __volatile ("mfspr %0,%2; mr %1,%0; srdi %0,%0,32" + : "=r" (bsp_state[6]),"=r" (bsp_state[7]) : "K" (SPR_HID5)); + + break; + case MPC7450: + case MPC7455: + case MPC7457: + /* Only MPC745x CPUs have an L3 cache. */ + bsp_state[3] = mfspr(SPR_L3CR); + + /* Fallthrough */ + case MPC7400: + case MPC7410: + case MPC7447A: >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Fri Oct 23 14:13:35 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 74196106568F; Fri, 23 Oct 2009 14:13:35 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2024C106566B for ; Fri, 23 Oct 2009 14:13:35 +0000 (UTC) (envelope-from mav@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 0C4178FC13 for ; Fri, 23 Oct 2009 14:13:35 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n9NEDYTE015042 for ; Fri, 23 Oct 2009 14:13:34 GMT (envelope-from mav@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n9NEDY9t015040 for perforce@freebsd.org; Fri, 23 Oct 2009 14:13:34 GMT (envelope-from mav@freebsd.org) Date: Fri, 23 Oct 2009 14:13:34 GMT Message-Id: <200910231413.n9NEDY9t015040@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mav@freebsd.org using -f From: Alexander Motin To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 169716 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 23 Oct 2009 14:13:35 -0000 http://p4web.freebsd.org/chv.cgi?CH=169716 Change 169716 by mav@mav_mavbook on 2009/10/23 14:13:13 IFC Affected files ... .. //depot/projects/scottl-camlock/src/etc/rc.d/netoptions#6 integrate .. //depot/projects/scottl-camlock/src/sys/cam/ata/ata_xpt.c#42 integrate .. //depot/projects/scottl-camlock/src/sys/cam/cam_periph.c#37 integrate .. //depot/projects/scottl-camlock/src/sys/cam/cam_xpt.c#108 edit .. //depot/projects/scottl-camlock/src/sys/conf/files#50 integrate .. //depot/projects/scottl-camlock/src/sys/dev/ahci/ahci.c#71 integrate .. //depot/projects/scottl-camlock/src/sys/modules/cam/Makefile#15 integrate .. //depot/projects/scottl-camlock/src/sys/net80211/ieee80211_output.c#21 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/ip_input.c#26 integrate .. //depot/projects/scottl-camlock/src/sys/sys/interrupt.h#15 integrate Differences ... ==== //depot/projects/scottl-camlock/src/etc/rc.d/netoptions#6 (text+ko) ==== @@ -1,6 +1,6 @@ #!/bin/sh # -# $FreeBSD: src/etc/rc.d/netoptions,v 1.150 2009/10/02 06:51:39 hrs Exp $ +# $FreeBSD: src/etc/rc.d/netoptions,v 1.151 2009/10/23 09:30:19 hrs Exp $ # # PROVIDE: netoptions @@ -53,7 +53,7 @@ ${SYSCTL_W} net.inet.tcp.rfc1323=1 >/dev/null else netoptions_init - echo -n ' rfc1323 extensions=${tcp_extensions}' + echo -n " rfc1323 extensions=${tcp_extensions}" ${SYSCTL_W} net.inet.tcp.rfc1323=0 >/dev/null fi @@ -61,13 +61,13 @@ ${SYSCTL_W} net.inet.tcp.always_keepalive=1 >/dev/null else netoptions_init - echo -n ' TCP keepalive=${tcp_keepalive}' + echo -n " TCP keepalive=${tcp_keepalive}" ${SYSCTL_W} net.inet.tcp.always_keepalive=0 >/dev/null fi if checkyesno tcp_drop_synfin; then netoptions_init - echo -n ' drop SYN+FIN packets=${tcp_drop_synfin}' + echo -n " drop SYN+FIN packets=${tcp_drop_synfin}" ${SYSCTL_W} net.inet.tcp.drop_synfin=1 >/dev/null else ${SYSCTL_W} net.inet.tcp.drop_synfin=0 >/dev/null ==== //depot/projects/scottl-camlock/src/sys/cam/ata/ata_xpt.c#42 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/cam/ata/ata_xpt.c,v 1.8 2009/10/23 08:27:55 mav Exp $"); +__FBSDID("$FreeBSD: src/sys/cam/ata/ata_xpt.c,v 1.9 2009/10/23 12:36:42 mav Exp $"); #include #include ==== //depot/projects/scottl-camlock/src/sys/cam/cam_periph.c#37 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/cam/cam_periph.c,v 1.82 2009/10/23 08:27:55 mav Exp $"); +__FBSDID("$FreeBSD: src/sys/cam/cam_periph.c,v 1.83 2009/10/23 13:39:30 mav Exp $"); #include #include @@ -1767,16 +1767,27 @@ break; } + /* + * If we have and error and are booting verbosely, whine + * *unless* this was a non-retryable selection timeout. + */ + if (error != 0 && bootverbose && + !(status == CAM_SEL_TIMEOUT && (camflags & CAM_RETRY_SELTO) == 0)) { + if (error != ERESTART) { + if (action_string == NULL) + action_string = "Unretryable Error"; + xpt_print(ccb->ccb_h.path, "error %d\n", error); + xpt_print(ccb->ccb_h.path, "%s\n", action_string); + } else + xpt_print(ccb->ccb_h.path, "Retrying Command\n"); + } + /* Attempt a retry */ - if (error == ERESTART || error == 0) { + if (error == ERESTART || error == 0) { if (frozen != 0) ccb->ccb_h.status &= ~CAM_DEV_QFRZN; - - if (error == ERESTART) { - action_string = "Retrying Command"; + if (error == ERESTART) xpt_action(ccb); - } - if (frozen != 0) cam_release_devq(ccb->ccb_h.path, relsim_flags, @@ -1785,21 +1796,5 @@ /*getcount_only*/0); } - /* - * If we have and error and are booting verbosely, whine - * *unless* this was a non-retryable selection timeout. - */ - if (error != 0 && bootverbose && - !(status == CAM_SEL_TIMEOUT && (camflags & CAM_RETRY_SELTO) == 0)) { - - - if (action_string == NULL) - action_string = "Unretryable Error"; - if (error != ERESTART) { - xpt_print(ccb->ccb_h.path, "error %d\n", error); - } - xpt_print(ccb->ccb_h.path, "%s\n", action_string); - } - return (error); } ==== //depot/projects/scottl-camlock/src/sys/cam/cam_xpt.c#108 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/cam/cam_xpt.c,v 1.227 2009/10/23 08:27:55 mav Exp $"); +__FBSDID("$FreeBSD: src/sys/cam/cam_xpt.c,v 1.228 2009/10/23 11:26:58 mav Exp $"); #include #include ==== //depot/projects/scottl-camlock/src/sys/conf/files#50 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/files,v 1.1477 2009/10/19 21:43:59 thompsa Exp $ +# $FreeBSD: src/sys/conf/files,v 1.1478 2009/10/23 12:36:42 mav Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and ==== //depot/projects/scottl-camlock/src/sys/dev/ahci/ahci.c#71 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/ahci/ahci.c,v 1.9 2009/10/21 13:00:01 mav Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ahci/ahci.c,v 1.10 2009/10/23 13:07:22 mav Exp $"); #include #include @@ -1001,12 +1001,7 @@ /* XXX: reqests in loading state. */ if (((err >> i) & 1) == 0) continue; - if (istatus & AHCI_P_IX_IF) { - if (ch->numtslots == 0 && i != ccs) - et = AHCI_ERR_INNOCENT; - else - et = AHCI_ERR_SATA; - } else if (istatus & AHCI_P_IX_TFE) { + if (istatus & AHCI_P_IX_TFE) { /* Task File Error */ if (ch->numtslots == 0) { /* Untagged operation. */ @@ -1019,6 +1014,11 @@ et = AHCI_ERR_NCQ; ncq_err = 1; } + } else if (istatus & AHCI_P_IX_IF) { + if (ch->numtslots == 0 && i != ccs) + et = AHCI_ERR_INNOCENT; + else + et = AHCI_ERR_SATA; } else et = AHCI_ERR_INVALID; ahci_end_transaction(&ch->slot[i], et); ==== //depot/projects/scottl-camlock/src/sys/modules/cam/Makefile#15 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/modules/cam/Makefile,v 1.16 2009/07/10 08:18:08 scottl Exp $ +# $FreeBSD: src/sys/modules/cam/Makefile,v 1.17 2009/10/23 12:36:42 mav Exp $ S= ${.CURDIR}/../.. ==== //depot/projects/scottl-camlock/src/sys/net80211/ieee80211_output.c#21 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/net80211/ieee80211_output.c,v 1.105 2009/10/19 18:46:22 rpaulo Exp $"); +__FBSDID("$FreeBSD: src/sys/net80211/ieee80211_output.c,v 1.106 2009/10/23 11:13:08 rpaulo Exp $"); #include "opt_inet.h" #include "opt_inet6.h" @@ -2764,13 +2764,7 @@ *(uint16_t *)wh->i_dur = 0; IEEE80211_ADDR_COPY(wh->i_addr1, ifp->if_broadcastaddr); IEEE80211_ADDR_COPY(wh->i_addr2, vap->iv_myaddr); -#ifdef IEEE80211_SUPPORT_MESH - if (vap->iv_opmode == IEEE80211_M_MBSS) { - static const uint8_t zerobssid[IEEE80211_ADDR_LEN]; - IEEE80211_ADDR_COPY(wh->i_addr3, zerobssid); - } else -#endif - IEEE80211_ADDR_COPY(wh->i_addr3, ni->ni_bssid); + IEEE80211_ADDR_COPY(wh->i_addr3, ni->ni_bssid); *(uint16_t *)wh->i_seq = 0; return m; ==== //depot/projects/scottl-camlock/src/sys/netinet/ip_input.c#26 (text+ko) ==== @@ -30,7 +30,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/netinet/ip_input.c,v 1.377 2009/10/18 11:23:56 rwatson Exp $"); +__FBSDID("$FreeBSD: src/sys/netinet/ip_input.c,v 1.378 2009/10/23 13:35:00 rwatson Exp $"); #include "opt_bootp.h" #include "opt_ipfw.h" @@ -530,8 +530,8 @@ } if ((dchg = (m_tag_find(m, PACKET_TAG_IPFORWARD, NULL) != NULL)) != 0) { /* - * Directly ship on the packet. This allows to forward - * packets that were destined for us to some other directly + * Directly ship the packet on. This allows forwarding + * packets originally destined to us to ome other directly * connected host. */ ip_forward(m, dchg); ==== //depot/projects/scottl-camlock/src/sys/sys/interrupt.h#15 (text+ko) ==== @@ -23,7 +23,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/sys/interrupt.h,v 1.46 2009/10/15 14:54:35 jhb Exp $ + * $FreeBSD: src/sys/sys/interrupt.h,v 1.47 2009/10/23 13:28:33 jhb Exp $ */ #ifndef _SYS_INTERRUPT_H_ @@ -168,12 +168,12 @@ void (*post_ithread)(void *), void (*post_filter)(void *), int (*assign_cpu)(void *, u_char), const char *fmt, ...) __printflike(9, 10); +int intr_event_describe_handler(struct intr_event *ie, void *cookie, + const char *descr); int intr_event_destroy(struct intr_event *ie); void intr_event_execute_handlers(struct proc *p, struct intr_event *ie); int intr_event_handle(struct intr_event *ie, struct trapframe *frame); int intr_event_remove_handler(void *cookie); -int intr_event_describe_handler(struct intr_event *ie, void *cookie, - const char *descr); int intr_getaffinity(int irq, void *mask); void *intr_handler_source(void *cookie); int intr_setaffinity(int irq, void *mask); From owner-p4-projects@FreeBSD.ORG Fri Oct 23 14:19:41 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 753871065695; Fri, 23 Oct 2009 14:19:41 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 39D36106568D for ; Fri, 23 Oct 2009 14:19:41 +0000 (UTC) (envelope-from mav@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 0DC868FC1D for ; Fri, 23 Oct 2009 14:19:41 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n9NEJeR3015430 for ; Fri, 23 Oct 2009 14:19:40 GMT (envelope-from mav@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n9NEJeC2015428 for perforce@freebsd.org; Fri, 23 Oct 2009 14:19:40 GMT (envelope-from mav@freebsd.org) Date: Fri, 23 Oct 2009 14:19:40 GMT Message-Id: <200910231419.n9NEJeC2015428@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mav@freebsd.org using -f From: Alexander Motin To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 169717 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 23 Oct 2009 14:19:41 -0000 http://p4web.freebsd.org/chv.cgi?CH=169717 Change 169717 by mav@mav_mavbook on 2009/10/23 14:19:07 Fix mismerge. Affected files ... .. //depot/projects/scottl-camlock/src/sys/cam/scsi/scsi_da.c#48 edit Differences ... ==== //depot/projects/scottl-camlock/src/sys/cam/scsi/scsi_da.c#48 (text+ko) ==== @@ -813,6 +813,7 @@ cam_periph_lock(periph); + /* * If the device has been made invalid, error out */ if ((softc->flags & DA_FLAG_PACK_INVALID)) { From owner-p4-projects@FreeBSD.ORG Fri Oct 23 15:06:28 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B26E81065676; Fri, 23 Oct 2009 15:06:28 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5D437106566C for ; Fri, 23 Oct 2009 15:06:28 +0000 (UTC) (envelope-from mav@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 41CC98FC18 for ; Fri, 23 Oct 2009 15:06:28 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n9NF6SxK020005 for ; Fri, 23 Oct 2009 15:06:28 GMT (envelope-from mav@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n9NF6STG020003 for perforce@freebsd.org; Fri, 23 Oct 2009 15:06:28 GMT (envelope-from mav@freebsd.org) Date: Fri, 23 Oct 2009 15:06:28 GMT Message-Id: <200910231506.n9NF6STG020003@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mav@freebsd.org using -f From: Alexander Motin To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 169720 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 23 Oct 2009 15:06:28 -0000 http://p4web.freebsd.org/chv.cgi?CH=169720 Change 169720 by mav@mav_mavbook on 2009/10/23 15:06:24 IFC Affected files ... .. //depot/projects/scottl-camlock/src/sys/cam/ata/ata_pmp.c#11 integrate .. //depot/projects/scottl-camlock/src/sys/dev/ata/ata-queue.c#21 integrate .. //depot/projects/scottl-camlock/src/sys/dev/ata/atapi-cd.c#14 integrate .. //depot/projects/scottl-camlock/src/sys/dev/ata/atapi-fd.c#11 integrate .. //depot/projects/scottl-camlock/src/sys/dev/ata/atapi-tape.c#11 integrate .. //depot/projects/scottl-camlock/src/sys/powerpc/aim/mmu_oea64.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/powerpc/aim/trap_subr.S#5 integrate Differences ... ==== //depot/projects/scottl-camlock/src/sys/cam/ata/ata_pmp.c#11 (text+ko) ==== ==== //depot/projects/scottl-camlock/src/sys/dev/ata/ata-queue.c#21 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/ata/ata-queue.c,v 1.85 2009/05/01 08:03:46 mav Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ata/ata-queue.c,v 1.86 2009/10/23 14:56:29 mav Exp $"); #include "opt_ata.h" #include ==== //depot/projects/scottl-camlock/src/sys/dev/ata/atapi-cd.c#14 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/ata/atapi-cd.c,v 1.206 2009/07/08 05:56:14 marcel Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ata/atapi-cd.c,v 1.207 2009/10/23 14:56:29 mav Exp $"); #include "opt_ata.h" #include ==== //depot/projects/scottl-camlock/src/sys/dev/ata/atapi-fd.c#11 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/ata/atapi-fd.c,v 1.119 2009/02/28 22:07:15 mav Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ata/atapi-fd.c,v 1.120 2009/10/23 14:56:29 mav Exp $"); #include #include ==== //depot/projects/scottl-camlock/src/sys/dev/ata/atapi-tape.c#11 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/ata/atapi-tape.c,v 1.114 2009/04/26 09:21:37 ed Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ata/atapi-tape.c,v 1.115 2009/10/23 14:56:29 mav Exp $"); #include "opt_ata.h" #include ==== //depot/projects/scottl-camlock/src/sys/powerpc/aim/mmu_oea64.c#7 (text+ko) ==== @@ -91,7 +91,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/powerpc/aim/mmu_oea64.c,v 1.6 2009/10/23 03:17:02 nwhitehorn Exp $"); +__FBSDID("$FreeBSD: src/sys/powerpc/aim/mmu_oea64.c,v 1.7 2009/10/23 14:27:40 nwhitehorn Exp $"); /* * Manages physical address maps. @@ -868,15 +868,17 @@ ENABLE_TRANS(msr); /* - * Map certain important things, like ourselves and the exception - * vectors + * Map certain important things, like ourselves. + * + * NOTE: We do not map the exception vector space. That code is + * used only in real mode, and leaving it unmapped allows us to + * catch NULL pointer deferences, instead of making NULL a valid + * address. */ DISABLE_TRANS(msr); for (pa = kernelstart & ~PAGE_MASK; pa < kernelend; pa += PAGE_SIZE) moea64_kenter(mmup, pa, pa); - for (pa = EXC_RSVD; pa < EXC_LAST; pa += PAGE_SIZE) - moea64_kenter(mmup, pa, pa); ENABLE_TRANS(msr); if (!ofw_real_mode) { ==== //depot/projects/scottl-camlock/src/sys/powerpc/aim/trap_subr.S#5 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/powerpc/aim/trap_subr.S,v 1.26 2009/10/11 16:41:39 nwhitehorn Exp $ */ +/* $FreeBSD: src/sys/powerpc/aim/trap_subr.S,v 1.27 2009/10/23 14:27:40 nwhitehorn Exp $ */ /* $NetBSD: trap_subr.S,v 1.20 2002/04/22 23:20:08 kleink Exp $ */ /*- @@ -275,10 +275,16 @@ /* * Processor reset exception handler. These are typically * the first instructions the processor executes after a - * software reset. + * software reset. We do this in two bits so that we are + * not still hanging around in the trap handling region + * once the MMU is turned on. */ .globl CNAME(rstcode), CNAME(rstsize) CNAME(rstcode): + ba cpu_reset +CNAME(rstsize) = . - CNAME(rstcode) + +cpu_reset: bl 1f .space 124 @@ -296,7 +302,6 @@ /* Should not be reached */ 9: b 9b -CNAME(rstsize) = . - CNAME(rstcode) #endif /* From owner-p4-projects@FreeBSD.ORG Fri Oct 23 18:48:11 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id C281B1065694; Fri, 23 Oct 2009 18:48:11 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8728A1065679 for ; Fri, 23 Oct 2009 18:48:11 +0000 (UTC) (envelope-from truncs@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 749288FC08 for ; Fri, 23 Oct 2009 18:48:11 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n9NImBtm049151 for ; Fri, 23 Oct 2009 18:48:11 GMT (envelope-from truncs@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n9NImBk2049149 for perforce@freebsd.org; Fri, 23 Oct 2009 18:48:11 GMT (envelope-from truncs@FreeBSD.org) Date: Fri, 23 Oct 2009 18:48:11 GMT Message-Id: <200910231848.n9NImBk2049149@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to truncs@FreeBSD.org using -f From: Aditya Sarawgi To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 169731 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 23 Oct 2009 18:48:12 -0000 http://p4web.freebsd.org/chv.cgi?CH=169731 Change 169731 by truncs@aditya on 2009/10/23 18:47:36 Honor the cn_lkflags passed from namei() when locking the leaf. Affected files ... .. //depot/projects/soc2009/soc_ext2fs/src/sys/fs/ext2fs/ext2_lookup.c#10 edit Differences ... ==== //depot/projects/soc2009/soc_ext2fs/src/sys/fs/ext2fs/ext2_lookup.c#10 (text+ko) ==== @@ -657,7 +657,7 @@ if (flags & ISDOTDOT) { ltype = VOP_ISLOCKED(pdp); VOP_UNLOCK(pdp, 0); /* race to get the inode */ - error = VFS_VGET(vdp->v_mount, ino, LK_EXCLUSIVE, &tdp); + error = VFS_VGET(vdp->v_mount, ino, cnp->cn_lkflags, &tdp); vn_lock(pdp, ltype | LK_RETRY); if (error != 0) return (error); @@ -677,7 +677,7 @@ } *vpp = vdp; } else { - if ((error = VFS_VGET(vdp->v_mount, ino, LK_EXCLUSIVE, + if ((error = VFS_VGET(vdp->v_mount, ino, cnp->cn_lkflags, &tdp)) != 0) return (error); *vpp = tdp; From owner-p4-projects@FreeBSD.ORG Fri Oct 23 19:07:32 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id CE6221065676; Fri, 23 Oct 2009 19:07:31 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 93078106566B for ; Fri, 23 Oct 2009 19:07:31 +0000 (UTC) (envelope-from jona@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 8000A8FC15 for ; Fri, 23 Oct 2009 19:07:31 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n9NJ7VYH051607 for ; Fri, 23 Oct 2009 19:07:31 GMT (envelope-from jona@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n9NJ7VCb051605 for perforce@freebsd.org; Fri, 23 Oct 2009 19:07:31 GMT (envelope-from jona@FreeBSD.org) Date: Fri, 23 Oct 2009 19:07:31 GMT Message-Id: <200910231907.n9NJ7VCb051605@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jona@FreeBSD.org using -f From: Jonathan Anderson To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 169737 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 23 Oct 2009 19:07:32 -0000 http://p4web.freebsd.org/chv.cgi?CH=169737 Change 169737 by jona@jona-capsicum-kent on 2009/10/23 19:07:18 Add a _capstart() to crt.o which calls the [weak symbol] cap_main(); this fixes the problem where rtld on amd64 gets the stack wrong when entering cap_main() Affected files ... .. //depot/projects/trustedbsd/capabilities/TODO#14 edit .. //depot/projects/trustedbsd/capabilities/src/lib/csu/amd64/crt1.c#2 edit .. //depot/projects/trustedbsd/capabilities/src/lib/csu/common/crtbrand.c#2 edit .. //depot/projects/trustedbsd/capabilities/src/lib/csu/i386-elf/crt1.c#2 edit .. //depot/projects/trustedbsd/capabilities/src/libexec/rtld-elf/rtld.c#29 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/TODO#14 (text+ko) ==== @@ -55,3 +55,7 @@ - Enable capability mode system calls in compat32. Add compat system call parts for new system calls. + +- Add support (a.k.a. find test platforms) for arm, ia64, etc. in lib/csu + +- It would be nice if we didn't need -rdynamic; can we export just _capstart? Should we add more information (a capability entry point) to ELF? ==== //depot/projects/trustedbsd/capabilities/src/lib/csu/amd64/crt1.c#2 (text+ko) ==== @@ -43,7 +43,9 @@ extern void _fini(void); extern void _init(void); extern int main(int, char **, char **); +extern int cap_main(int, char **, char **) __attribute__((weak)); extern void _start(char **, void (*)(void)); +extern void _capstart(char **, void (*)(void)); #ifdef GCRT extern void _mcleanup(void); @@ -92,4 +94,42 @@ exit( main(argc, argv, env) ); } + +/* The Capsicum entry function. */ +void +_capstart(char **ap, void (*cleanup)(void)) +{ + int argc; + char **argv; + char **env; + const char *s; + + argc = *(long *)(void *)ap; + argv = ap + 1; + env = ap + 2 + argc; + environ = env; + if (argc > 0 && argv[0] != NULL) { + __progname = argv[0]; + for (s = __progname; *s != '\0'; s++) + if (*s == '/') + __progname = s + 1; + } + + if (&_DYNAMIC != NULL) + atexit(cleanup); + else + _init_tls(); + +#ifdef GCRT + atexit(_mcleanup); +#endif + atexit(_fini); +#ifdef GCRT +/* monstartup(&eprol, &etext); +__asm__("eprol:");*/ /* XXX: does this interfere with profiling? */ +#endif + _init(); + exit( cap_main(argc, argv, env) ); +} + __asm__(".ident\t\"$FreeBSD: src/lib/csu/amd64/crt1.c,v 1.15 2005/10/07 22:13:17 bde Exp $\""); ==== //depot/projects/trustedbsd/capabilities/src/lib/csu/common/crtbrand.c#2 (text+ko) ==== @@ -27,6 +27,7 @@ __FBSDID("$FreeBSD: src/lib/csu/common/crtbrand.c,v 1.6 2007/12/04 12:18:43 kib Exp $"); #include +#include #define ABI_VENDOR "FreeBSD" #define ABI_SECTION ".note.ABI-tag" @@ -50,3 +51,12 @@ ABI_VENDOR, __FreeBSD_version }; + +int cap_main(int argc, char **argv, char **env) +{ + const char warning[] = + "ERROR: attempting to run a regular binary in capability mode.\n\nIf you wish to run a binary in a sandbox, you must provide a cap_main() function which takes the same arguments as main().\n"; + + write(2, warning, sizeof(warning)); +} + ==== //depot/projects/trustedbsd/capabilities/src/lib/csu/i386-elf/crt1.c#2 (text+ko) ==== @@ -43,7 +43,9 @@ extern void _fini(void); extern void _init(void); extern int main(int, char **, char **); +extern int cap_main(int, char **, char **) __attribute__((weak)); extern void _start(char *, ...); +extern void _capstart(char *, ...); #ifdef GCRT extern void _mcleanup(void); @@ -110,4 +112,47 @@ exit( main(argc, argv, env) ); } + +/* The Capsicum entry function. */ +void +_capstart(char *ap, ...) +{ + fptr cleanup; + int argc; + char **argv; + char **env; + const char *s; + +#ifdef __GNUC__ + __asm__("and $0xfffffff0,%esp"); +#endif + cleanup = get_rtld_cleanup(); + argv = ≈ + argc = *(long *)(void *)(argv - 1); + env = argv + argc + 1; + environ = env; + if (argc > 0 && argv[0] != NULL) { + __progname = argv[0]; + for (s = __progname; *s != '\0'; s++) + if (*s == '/') + __progname = s + 1; + } + + if (&_DYNAMIC != NULL) + atexit(cleanup); + else + _init_tls(); + +#ifdef GCRT + atexit(_mcleanup); +#endif + atexit(_fini); +#ifdef GCRT +/* monstartup(&eprol, &etext); +__asm__("eprol:");*/ /* XXX: does this interfere with profiling? */ +#endif + _init(); + exit( cap_main(argc, argv, env) ); +} + __asm__(".ident\t\"$FreeBSD: src/lib/csu/i386-elf/crt1.c,v 1.15 2005/10/07 22:13:17 bde Exp $\""); ==== //depot/projects/trustedbsd/capabilities/src/libexec/rtld-elf/rtld.c#29 (text+ko) ==== @@ -106,7 +106,7 @@ static void errmsg_restore(char *); static char *errmsg_save(void); #ifdef IN_RTLD_CAP -static void *find_cap_main(const Obj_Entry *); +static void *find_capstart(const Obj_Entry *); #else static void *fill_search_info(const char *, size_t, void *); static char *find_library(const char *, const Obj_Entry *); @@ -348,7 +348,7 @@ #ifdef IN_RTLD_CAP struct stat sb; Elf_Auxinfo aux_execfd; - void *cap_main_ptr; + void *capstart_ptr; #endif Elf_Auxinfo *aux_info[AT_COUNT]; int i; @@ -650,12 +650,12 @@ * point, prefer that to the ELF default entry point. Otherwise, use the * ELF default. */ - cap_main_ptr = find_cap_main(obj_main); - if (cap_main_ptr == NULL) { - _rtld_error("cap_main not found"); + capstart_ptr = find_capstart(obj_main); + if (capstart_ptr == NULL) { + _rtld_error("_capstart not found; has the binary been compiled with -rdynamic?"); die(); } - return (func_ptr_type) cap_main_ptr; + return (func_ptr_type) capstart_ptr; #else return (func_ptr_type) obj_main->entry; #endif @@ -827,15 +827,15 @@ #ifdef IN_RTLD_CAP static void * -find_cap_main(const Obj_Entry *obj) +find_capstart(const Obj_Entry *obj) { - const char *cap_main_str = "cap_main"; + const char *capstart_str = "_capstart"; const Elf_Sym *def; const Obj_Entry *defobj; unsigned long hash; - hash = elf_hash(cap_main_str); - def = symlook_default(cap_main_str, hash, obj, &defobj, NULL, + hash = elf_hash(capstart_str); + def = symlook_default(capstart_str, hash, obj, &defobj, NULL, SYMLOOK_IN_PLT); if (def == NULL) return (NULL); From owner-p4-projects@FreeBSD.ORG Sat Oct 24 07:36:01 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 9666D1065679; Sat, 24 Oct 2009 07:36:01 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5A1E0106566B for ; Sat, 24 Oct 2009 07:36:01 +0000 (UTC) (envelope-from mav@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 4702C8FC14 for ; Sat, 24 Oct 2009 07:36:01 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n9O7a19O048028 for ; Sat, 24 Oct 2009 07:36:01 GMT (envelope-from mav@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n9O7a0OE048026 for perforce@freebsd.org; Sat, 24 Oct 2009 07:36:00 GMT (envelope-from mav@freebsd.org) Date: Sat, 24 Oct 2009 07:36:00 GMT Message-Id: <200910240736.n9O7a0OE048026@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mav@freebsd.org using -f From: Alexander Motin To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 169749 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 24 Oct 2009 07:36:01 -0000 http://p4web.freebsd.org/chv.cgi?CH=169749 Change 169749 by mav@mav_mavbook on 2009/10/24 07:35:07 IFC Affected files ... .. //depot/projects/scottl-camlock/src/lib/libc/gen/wordexp.c#2 integrate .. //depot/projects/scottl-camlock/src/lib/libpmc/libpmc.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/amd64/acpica/acpi_wakecode.S#4 integrate .. //depot/projects/scottl-camlock/src/sys/boot/i386/zfsboot/zfsboot.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/boot/zfs/zfs.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/boot/zfs/zfsimpl.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/cddl/boot/zfs/zfsimpl.h#3 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/dev/iwn/LICENSE#2 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/dev/iwn/iwlwifi-4965-228.57.2.23.fw.uu#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/iwn/iwlwifi-4965-4.44.17.fw.uu#2 delete .. //depot/projects/scottl-camlock/src/sys/contrib/dev/iwn/iwlwifi-5000-5.4.A.11.fw.uu#1 branch .. //depot/projects/scottl-camlock/src/sys/contrib/dev/iwn/iwlwifi-5150-8.24.2.2.fw.uu#1 branch .. //depot/projects/scottl-camlock/src/sys/dev/fb/vesa.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/dev/fb/vesa.h#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/hwpmc/hwpmc_core.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/iwn/if_iwn.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/dev/iwn/if_iwnreg.h#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/iwn/if_iwnvar.h#3 integrate .. //depot/projects/scottl-camlock/src/sys/dev/pci/pci.c#27 integrate .. //depot/projects/scottl-camlock/src/sys/dev/siis/siis.c#10 integrate .. //depot/projects/scottl-camlock/src/sys/dev/syscons/syscons.c#20 integrate .. //depot/projects/scottl-camlock/src/sys/kern/kern_exec.c#23 integrate .. //depot/projects/scottl-camlock/src/sys/kern/kern_ktrace.c#19 integrate .. //depot/projects/scottl-camlock/src/sys/kern/kern_shutdown.c#19 integrate .. //depot/projects/scottl-camlock/src/sys/kern/subr_bus.c#36 integrate .. //depot/projects/scottl-camlock/src/sys/kern/subr_taskqueue.c#13 integrate .. //depot/projects/scottl-camlock/src/sys/modules/iwnfw/Makefile#2 integrate .. //depot/projects/scottl-camlock/src/sys/net/bpf.c#26 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/if_ether.c#28 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/in.c#28 integrate .. //depot/projects/scottl-camlock/src/sys/netinet6/in6.c#30 integrate .. //depot/projects/scottl-camlock/src/sys/powerpc/aim/clock.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/powerpc/aim/machdep.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/powerpc/aim/mp_cpudep.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/sys/interrupt.h#16 integrate .. //depot/projects/scottl-camlock/src/sys/sys/ktrace.h#7 integrate .. //depot/projects/scottl-camlock/src/tools/regression/lib/libc/gen/test-wordexp.c#3 integrate Differences ... ==== //depot/projects/scottl-camlock/src/lib/libc/gen/wordexp.c#2 (text+ko) ==== @@ -28,8 +28,10 @@ #include #include #include +#include #include #include +#include #include #include #include @@ -37,7 +39,7 @@ #include #include "un-namespace.h" -__FBSDID("$FreeBSD: src/lib/libc/gen/wordexp.c,v 1.6 2004/06/30 13:55:08 tjr Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/gen/wordexp.c,v 1.7 2009/10/23 14:50:11 jilles Exp $"); static int we_askshell(const char *, wordexp_t *, int); static int we_check(const char *, int); @@ -73,6 +75,24 @@ return (0); } +static size_t +we_read_fully(int fd, char *buffer, size_t len) +{ + size_t done; + ssize_t nread; + + done = 0; + do { + nread = _read(fd, buffer + done, len - done); + if (nread == -1 && errno == EINTR) + continue; + if (nread <= 0) + break; + done += nread; + } while (done != len); + return done; +} + /* * we_askshell -- * Use the `wordexp' /bin/sh builtin function to do most of the work @@ -90,20 +110,31 @@ size_t sofs; /* Offset into we->we_strings */ size_t vofs; /* Offset into we->we_wordv */ pid_t pid; /* Process ID of child */ + pid_t wpid; /* waitpid return value */ int status; /* Child exit status */ + int error; /* Our return value */ + int serrno; /* errno to return */ char *ifs; /* IFS env. var. */ char *np, *p; /* Handy pointers */ char *nstrings; /* Temporary for realloc() */ char **nwv; /* Temporary for realloc() */ + sigset_t newsigblock, oldsigblock; + serrno = errno; if ((ifs = getenv("IFS")) == NULL) ifs = " \t\n"; if (pipe(pdes) < 0) return (WRDE_NOSPACE); /* XXX */ + (void)sigemptyset(&newsigblock); + (void)sigaddset(&newsigblock, SIGCHLD); + (void)_sigprocmask(SIG_BLOCK, &newsigblock, &oldsigblock); if ((pid = fork()) < 0) { + serrno = errno; _close(pdes[0]); _close(pdes[1]); + (void)_sigprocmask(SIG_SETMASK, &oldsigblock, NULL); + errno = serrno; return (WRDE_NOSPACE); /* XXX */ } else if (pid == 0) { @@ -114,6 +145,7 @@ int devnull; char *cmd; + (void)_sigprocmask(SIG_SETMASK, &oldsigblock, NULL); _close(pdes[0]); if (_dup2(pdes[1], STDOUT_FILENO) < 0) _exit(1); @@ -139,10 +171,11 @@ * the expanded words separated by nulls. */ _close(pdes[1]); - if (_read(pdes[0], wbuf, 8) != 8 || _read(pdes[0], bbuf, 8) != 8) { - _close(pdes[0]); - _waitpid(pid, &status, 0); - return (flags & WRDE_UNDEF ? WRDE_BADVAL : WRDE_SYNTAX); + if (we_read_fully(pdes[0], wbuf, 8) != 8 || + we_read_fully(pdes[0], bbuf, 8) != 8) { + error = flags & WRDE_UNDEF ? WRDE_BADVAL : WRDE_SYNTAX; + serrno = errno; + goto cleanup; } wbuf[8] = bbuf[8] = '\0'; nwords = strtol(wbuf, NULL, 16); @@ -162,33 +195,38 @@ if ((nwv = realloc(we->we_wordv, (we->we_wordc + 1 + (flags & WRDE_DOOFFS ? we->we_offs : 0)) * sizeof(char *))) == NULL) { - _close(pdes[0]); - _waitpid(pid, &status, 0); - return (WRDE_NOSPACE); + error = WRDE_NOSPACE; + goto cleanup; } we->we_wordv = nwv; if ((nstrings = realloc(we->we_strings, we->we_nbytes)) == NULL) { - _close(pdes[0]); - _waitpid(pid, &status, 0); - return (WRDE_NOSPACE); + error = WRDE_NOSPACE; + goto cleanup; } for (i = 0; i < vofs; i++) if (we->we_wordv[i] != NULL) we->we_wordv[i] += nstrings - we->we_strings; we->we_strings = nstrings; - if (_read(pdes[0], we->we_strings + sofs, nbytes) != nbytes) { - _close(pdes[0]); - _waitpid(pid, &status, 0); - return (flags & WRDE_UNDEF ? WRDE_BADVAL : WRDE_SYNTAX); + if (we_read_fully(pdes[0], we->we_strings + sofs, nbytes) != nbytes) { + error = flags & WRDE_UNDEF ? WRDE_BADVAL : WRDE_SYNTAX; + serrno = errno; + goto cleanup; } - if (_waitpid(pid, &status, 0) < 0 || !WIFEXITED(status) || - WEXITSTATUS(status) != 0) { - _close(pdes[0]); + error = 0; +cleanup: + _close(pdes[0]); + do + wpid = _waitpid(pid, &status, 0); + while (wpid < 0 && errno == EINTR); + (void)_sigprocmask(SIG_SETMASK, &oldsigblock, NULL); + if (error != 0) { + errno = serrno; + return (error); + } + if (wpid < 0 || !WIFEXITED(status) || WEXITSTATUS(status) != 0) return (flags & WRDE_UNDEF ? WRDE_BADVAL : WRDE_SYNTAX); - } - _close(pdes[0]); /* * Break the null-terminated expanded word strings out into ==== //depot/projects/scottl-camlock/src/lib/libpmc/libpmc.c#5 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/lib/libpmc/libpmc.c,v 1.21 2009/06/09 06:34:48 jkoshy Exp $"); +__FBSDID("$FreeBSD: src/lib/libpmc/libpmc.c,v 1.22 2009/10/24 04:11:40 jkoshy Exp $"); #include #include @@ -442,6 +442,10 @@ /* * Intel Core2 (Family 6, Model F), Core2Extreme (Family 6, Model 17H) * and Atom (Family 6, model 1CH) PMCs. + * + * We map aliases to events on the fixed-function counters if these + * are present. Note that not all CPUs in this family contain fixed-function + * counters. */ static struct pmc_event_alias core2_aliases[] = { @@ -454,8 +458,22 @@ EV_ALIAS("unhalted-cycles", "iaf-cpu-clk-unhalted.core"), EV_ALIAS(NULL, NULL) }; -#define atom_aliases core2_aliases -#define corei7_aliases core2_aliases + +static struct pmc_event_alias core2_aliases_without_iaf[] = { + EV_ALIAS("branches", "iap-br-inst-retired.any"), + EV_ALIAS("branch-mispredicts", "iap-br-inst-retired.mispred"), + EV_ALIAS("cycles", "tsc-tsc"), + EV_ALIAS("ic-misses", "iap-l1i-misses"), + EV_ALIAS("instructions", "iap-inst-retired.any_p"), + EV_ALIAS("interrupts", "iap-hw-int-rcv"), + EV_ALIAS("unhalted-cycles", "iap-cpu-clk-unhalted.core_p"), + EV_ALIAS(NULL, NULL) +}; + +#define atom_aliases core2_aliases +#define atom_aliases_without_iaf core2_aliases_without_iaf +#define corei7_aliases core2_aliases +#define corei7_aliases_without_iaf core2_aliases_without_iaf #define IAF_KW_OS "os" #define IAF_KW_USR "usr" @@ -2379,6 +2397,10 @@ uint32_t abi_version; struct module_stat pmc_modstat; struct pmc_op_getcpuinfo op_cpu_info; +#if defined(__amd64__) || defined(__i386__) + int cpu_has_iaf_counters; + unsigned int t; +#endif if (pmc_syscall != -1) /* already inited */ return (0); @@ -2420,6 +2442,8 @@ if (pmc_class_table == NULL) return (-1); + for (n = 0; n < PMC_CLASS_TABLE_SIZE; n++) + pmc_class_table[n] = NULL; /* * Fill in the class table. @@ -2427,6 +2451,14 @@ n = 0; #if defined(__amd64__) || defined(__i386__) pmc_class_table[n++] = &tsc_class_table_descr; + + /* + * Check if this CPU has fixed function counters. + */ + cpu_has_iaf_counters = 0; + for (t = 0; t < cpu_info.pm_nclass; t++) + if (cpu_info.pm_classes[t].pm_class == PMC_CLASS_IAF) + cpu_has_iaf_counters = 1; #endif #define PMC_MDEP_INIT(C) do { \ @@ -2436,6 +2468,16 @@ PMC_TABLE_SIZE(C##_pmc_classes); \ } while (0) +#define PMC_MDEP_INIT_INTEL_V2(C) do { \ + PMC_MDEP_INIT(C); \ + if (cpu_has_iaf_counters) \ + pmc_class_table[n++] = &iaf_class_table_descr; \ + else \ + pmc_mdep_event_aliases = \ + C##_aliases_without_iaf; \ + pmc_class_table[n] = &C##_class_table_descr; \ + } while (0) + /* Configure the event name parser. */ switch (cpu_info.pm_cputype) { #if defined(__i386__) @@ -2461,24 +2503,17 @@ pmc_class_table[n] = &k8_class_table_descr; break; case PMC_CPU_INTEL_ATOM: - PMC_MDEP_INIT(atom); - pmc_class_table[n++] = &iaf_class_table_descr; - pmc_class_table[n] = &atom_class_table_descr; + PMC_MDEP_INIT_INTEL_V2(atom); break; case PMC_CPU_INTEL_CORE: PMC_MDEP_INIT(core); - pmc_class_table[n] = &core_class_table_descr; break; case PMC_CPU_INTEL_CORE2: case PMC_CPU_INTEL_CORE2EXTREME: - PMC_MDEP_INIT(core2); - pmc_class_table[n++] = &iaf_class_table_descr; - pmc_class_table[n] = &core2_class_table_descr; + PMC_MDEP_INIT_INTEL_V2(core2); break; case PMC_CPU_INTEL_COREI7: - PMC_MDEP_INIT(corei7); - pmc_class_table[n++] = &iaf_class_table_descr; - pmc_class_table[n] = &corei7_class_table_descr; + PMC_MDEP_INIT_INTEL_V2(corei7); break; case PMC_CPU_INTEL_PIV: PMC_MDEP_INIT(p4); ==== //depot/projects/scottl-camlock/src/sys/amd64/acpica/acpi_wakecode.S#4 (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/amd64/acpica/acpi_wakecode.S,v 1.4 2009/10/08 17:41:53 jkim Exp $ + * $FreeBSD: src/sys/amd64/acpica/acpi_wakecode.S,v 1.5 2009/10/23 18:57:52 jkim Exp $ */ #define LOCORE @@ -88,6 +88,11 @@ movb $0, reset_video - wakeup_start lcall $0xc000, $3 + /* When we reach here, int 0x10 should be ready. Hide cursor. */ + movb $0x01, %ah + movb $0x20, %ch + int $0x10 + /* Re-start in case the previous BIOS call clobbers them. */ jmp wakeup_start 1: ==== //depot/projects/scottl-camlock/src/sys/boot/i386/zfsboot/zfsboot.c#4 (text+ko) ==== @@ -14,7 +14,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/boot/i386/zfsboot/zfsboot.c,v 1.4 2009/10/14 14:13:42 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/boot/i386/zfsboot/zfsboot.c,v 1.5 2009/10/23 18:44:53 rnoland Exp $"); #include #include @@ -474,6 +474,7 @@ slba = hdr.hdr_lba_table; elba = slba + hdr.hdr_entries / entries_per_sec; while (slba < elba) { + dsk->start = 0; if (drvread(dsk, sec, slba, 1)) return; for (part = 0; part < entries_per_sec; part++) { @@ -494,7 +495,6 @@ */ dsk = copy_dsk(dsk); } - break; } } slba++; @@ -857,12 +857,13 @@ printf(const char *fmt,...) { va_list ap; - char buf[10]; + char buf[20]; char *s; - unsigned u; + unsigned long long u; int c; int minus; int prec; + int l; int len; int pad; @@ -871,6 +872,7 @@ if (c == '%') { minus = 0; prec = 0; + l = 0; nextfmt: c = *fmt++; switch (c) { @@ -892,6 +894,9 @@ case 'c': putchar(va_arg(ap, int)); continue; + case 'l': + l++; + goto nextfmt; case 's': s = va_arg(ap, char *); if (prec) { @@ -914,7 +919,17 @@ } continue; case 'u': - u = va_arg(ap, unsigned); + switch (l) { + case 2: + u = va_arg(ap, unsigned long long); + break; + case 1: + u = va_arg(ap, unsigned long); + break; + default: + u = va_arg(ap, unsigned); + break; + } s = buf; do *s++ = '0' + u % 10U; ==== //depot/projects/scottl-camlock/src/sys/boot/zfs/zfs.c#2 (text+ko) ==== @@ -23,11 +23,11 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/boot/zfs/zfs.c,v 1.4 2008/12/11 16:48:35 ps Exp $ + * $FreeBSD: src/sys/boot/zfs/zfs.c,v 1.5 2009/10/23 18:44:53 rnoland Exp $ */ #include -__FBSDID("$FreeBSD: src/sys/boot/zfs/zfs.c,v 1.4 2008/12/11 16:48:35 ps Exp $"); +__FBSDID("$FreeBSD: src/sys/boot/zfs/zfs.c,v 1.5 2009/10/23 18:44:53 rnoland Exp $"); /* * Stand-alone file reading package. @@ -100,7 +100,7 @@ f->f_fsdata = (void *)fp; if (spa->spa_root_objset.os_type != DMU_OST_ZFS) { - printf("Unexpected object set type %lld\n", + printf("Unexpected object set type %llu\n", spa->spa_root_objset.os_type); rc = EIO; goto out; @@ -413,7 +413,7 @@ if (vdev_probe(vdev_read, (void*) (uintptr_t) fd, 0)) close(fd); - for (slice = 1; slice <= 4; slice++) { + for (slice = 1; slice <= 128; slice++) { sprintf(devname, "disk%dp%d:", unit, slice); fd = open(devname, O_RDONLY); if (fd == -1) { ==== //depot/projects/scottl-camlock/src/sys/boot/zfs/zfsimpl.c#3 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/boot/zfs/zfsimpl.c,v 1.5 2009/05/16 10:48:20 dfr Exp $"); +__FBSDID("$FreeBSD: src/sys/boot/zfs/zfsimpl.c,v 1.6 2009/10/23 18:44:53 rnoland Exp $"); /* * Stand-alone ZFS file reader. @@ -53,6 +53,8 @@ #define TEMP_SIZE (1*SPA_MAXBLOCKSIZE) +static int zio_read(spa_t *spa, const blkptr_t *bp, void *buf); + static void zfs_init(void) { @@ -897,6 +899,33 @@ } static int +zio_read_gang(spa_t *spa, const blkptr_t *bp, const dva_t *dva, void *buf) +{ + zio_gbh_phys_t zio_gb; + vdev_t *vdev; + int vdevid; + off_t offset; + int i; + + vdevid = DVA_GET_VDEV(dva); + offset = DVA_GET_OFFSET(dva); + STAILQ_FOREACH(vdev, &spa->spa_vdevs, v_childlink) + if (vdev->v_id == vdevid) + break; + if (!vdev || !vdev->v_read) + return (EIO); + if (vdev->v_read(vdev, bp, &zio_gb, offset, SPA_GANGBLOCKSIZE)) + return (EIO); + + for (i = 0; i < SPA_GBH_NBLKPTRS; i++) { + if (zio_read(spa, &zio_gb.zg_blkptr[i], buf)) + return (EIO); + } + + return (0); +} + +static int zio_read(spa_t *spa, const blkptr_t *bp, void *buf) { int cpfunc = BP_GET_COMPRESS(bp); @@ -920,20 +949,27 @@ if (!dva->dva_word[0] && !dva->dva_word[1]) continue; - vdevid = DVA_GET_VDEV(dva); - offset = DVA_GET_OFFSET(dva); - STAILQ_FOREACH(vdev, &spa->spa_vdevs, v_childlink) - if (vdev->v_id == vdevid) - break; - if (!vdev || !vdev->v_read) - continue; - if (vdev->v_read(vdev, bp, pbuf, offset, psize)) - continue; + if (DVA_GET_GANG(dva)) { + printf("ZFS: gang block detected!\n"); + if (zio_read_gang(spa, bp, dva, buf)) + return (EIO); + } else { + vdevid = DVA_GET_VDEV(dva); + offset = DVA_GET_OFFSET(dva); + STAILQ_FOREACH(vdev, &spa->spa_vdevs, v_childlink) + if (vdev->v_id == vdevid) + break; + if (!vdev || !vdev->v_read) { + continue; + } + if (vdev->v_read(vdev, bp, pbuf, offset, psize)) + continue; - if (cpfunc != ZIO_COMPRESS_OFF) { - if (zio_decompress_data(cpfunc, pbuf, psize, - buf, lsize)) - return (EIO); + if (cpfunc != ZIO_COMPRESS_OFF) { + if (zio_decompress_data(cpfunc, pbuf, psize, + buf, lsize)) + return (EIO); + } } return (0); @@ -1331,13 +1367,13 @@ dsl_dataset_phys_t *ds; if (objset_get_dnode(spa, &spa->spa_mos, objnum, &dataset)) { - printf("ZFS: can't find dataset %lld\n", objnum); + printf("ZFS: can't find dataset %llu\n", objnum); return (EIO); } ds = (dsl_dataset_phys_t *) &dataset.dn_bonus; if (zio_read(spa, &ds->ds_bp, objset)) { - printf("ZFS: can't read object set for dataset %lld\n", objnum); + printf("ZFS: can't read object set for dataset %llu\n", objnum); return (EIO); } @@ -1367,7 +1403,8 @@ */ if (zap_lookup(spa, &dir, DMU_POOL_PROPS, &props) == 0 && objset_get_dnode(spa, &spa->spa_mos, props, &propdir) == 0 - && zap_lookup(spa, &propdir, "bootfs", &bootfs) == 0) + && zap_lookup(spa, &propdir, "bootfs", &bootfs) == 0 + && bootfs != 0) return zfs_mount_dataset(spa, bootfs, objset); /* @@ -1425,7 +1462,7 @@ int symlinks_followed = 0; if (spa->spa_root_objset.os_type != DMU_OST_ZFS) { - printf("ZFS: unexpected object set type %lld\n", + printf("ZFS: unexpected object set type %llu\n", spa->spa_root_objset.os_type); return (EIO); } ==== //depot/projects/scottl-camlock/src/sys/cddl/boot/zfs/zfsimpl.h#3 (text+ko) ==== @@ -374,6 +374,24 @@ #define VDEV_LABEL_END_SIZE (2 * sizeof (vdev_label_t)) #define VDEV_LABELS 4 +/* + * Gang block headers are self-checksumming and contain an array + * of block pointers. + */ +#define SPA_GANGBLOCKSIZE SPA_MINBLOCKSIZE +#define SPA_GBH_NBLKPTRS ((SPA_GANGBLOCKSIZE - \ + sizeof (zio_block_tail_t)) / sizeof (blkptr_t)) +#define SPA_GBH_FILLER ((SPA_GANGBLOCKSIZE - \ + sizeof (zio_block_tail_t) - \ + (SPA_GBH_NBLKPTRS * sizeof (blkptr_t))) /\ + sizeof (uint64_t)) + +typedef struct zio_gbh { + blkptr_t zg_blkptr[SPA_GBH_NBLKPTRS]; + uint64_t zg_filler[SPA_GBH_FILLER]; + zio_block_tail_t zg_tail; +} zio_gbh_phys_t; + enum zio_checksum { ZIO_CHECKSUM_INHERIT = 0, ZIO_CHECKSUM_ON, ==== //depot/projects/scottl-camlock/src/sys/contrib/dev/iwn/LICENSE#2 (text+ko) ==== @@ -1,39 +1,39 @@ -Copyright (c) 2006, Intel Corporation. -All rights reserved. - -Redistribution. Redistribution and use in binary form, without -modification, are permitted provided that the following conditions are -met: - -* Redistributions must reproduce the above copyright notice and the - following disclaimer in the documentation and/or other materials - provided with the distribution. -* Neither the name of Intel Corporation nor the names of its suppliers - may be used to endorse or promote products derived from this software - without specific prior written permission. -* No reverse engineering, decompilation, or disassembly of this software - is permitted. - -Limited patent license. Intel Corporation grants a world-wide, -royalty-free, non-exclusive license under patents it now or hereafter -owns or controls to make, have made, use, import, offer to sell and -sell ("Utilize") this software, but solely to the extent that any -such patent is necessary to Utilize the software alone, or in -combination with an operating system licensed under an approved Open -Source license as listed by the Open Source Initiative at -http://opensource.org/licenses. The patent license shall not apply to -any other combinations which include this software. No hardware per -se is licensed hereunder. - -DISCLAIMER. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND -CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR -TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE -USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. +Copyright (c) 2006-2009, Intel Corporation. +All rights reserved. + +Redistribution. Redistribution and use in binary form, without +modification, are permitted provided that the following conditions are +met: + +* Redistributions must reproduce the above copyright notice and the + following disclaimer in the documentation and/or other materials + provided with the distribution. +* Neither the name of Intel Corporation nor the names of its suppliers + may be used to endorse or promote products derived from this software + without specific prior written permission. +* No reverse engineering, decompilation, or disassembly of this software + is permitted. + +Limited patent license. Intel Corporation grants a world-wide, +royalty-free, non-exclusive license under patents it now or hereafter +owns or controls to make, have made, use, import, offer to sell and +sell ("Utilize") this software, but solely to the extent that any +such patent is necessary to Utilize the software alone, or in +combination with an operating system licensed under an approved Open +Source license as listed by the Open Source Initiative at +http://opensource.org/licenses. The patent license shall not apply to +any other combinations which include this software. No hardware per +se is licensed hereunder. + +DISCLAIMER. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND +CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR +TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE +USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. ==== //depot/projects/scottl-camlock/src/sys/dev/fb/vesa.c#5 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/fb/vesa.c,v 1.12 2009/10/19 20:58:10 jkim Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/fb/vesa.c,v 1.14 2009/10/23 19:02:53 jkim Exp $"); #include "opt_vga.h" #include "opt_vesa.h" @@ -74,8 +74,7 @@ /* VESA video adapter */ static video_adapter_t *vesa_adp = NULL; -static int vesa_state_buf_size = 0; -#define VESA_BIOS_BUFSIZE (3 * PAGE_SIZE) +static ssize_t vesa_state_buf_size = -1; /* VESA functions */ #if 0 @@ -188,7 +187,7 @@ #define STATE_REG (1<<3) #define STATE_MOST (STATE_HW | STATE_DATA | STATE_REG) #define STATE_ALL (STATE_HW | STATE_DATA | STATE_DAC | STATE_REG) -static int vesa_bios_state_buf_size(void); +static ssize_t vesa_bios_state_buf_size(void); static int vesa_bios_save_restore(int code, void *p, size_t size); static int vesa_bios_get_line_length(void); static int vesa_bios_set_line_length(int pixel, int *bytes, int *lines); @@ -282,6 +281,10 @@ } regs.R_DL = 0x80; x86bios_call(®s, 0xc000, 0x0003); + + if (x86bios_get_intr(0x10) == 0) + return (1); + return (0); } @@ -532,7 +535,7 @@ } #endif -static int +static ssize_t vesa_bios_state_buf_size(void) { x86regs_t regs; @@ -557,9 +560,6 @@ uint32_t offs; void *buf; - if (size > VESA_BIOS_BUFSIZE) - return (1); - if (code != STATE_SAVE && code != STATE_LOAD) return (1); @@ -808,12 +808,11 @@ if (x86bios_get_intr(0x10) == 0) { if (vesa_bios_post() != 0) return (1); - offs = x86bios_get_intr(0x10); - if (offs == 0) - return (1); - if (bootverbose) + if (bootverbose) { + offs = x86bios_get_intr(0x10); printf("VESA: interrupt vector installed (0x%x)\n", BIOS_SADDRTOLADDR(offs)); + } } x86bios_init_regs(®s); @@ -879,6 +878,21 @@ if (vesa_bios_get_mode(vesa_vmodetab[i], &vmode)) continue; + vmode.v_modeattr = le16toh(vmode.v_modeattr); + vmode.v_wgran = le16toh(vmode.v_wgran); + vmode.v_wsize = le16toh(vmode.v_wsize); + vmode.v_waseg = le16toh(vmode.v_waseg); + vmode.v_wbseg = le16toh(vmode.v_wbseg); + vmode.v_posfunc = le32toh(vmode.v_posfunc); + vmode.v_bpscanline = le16toh(vmode.v_bpscanline); + vmode.v_width = le16toh(vmode.v_width); + vmode.v_height = le16toh(vmode.v_height); + vmode.v_lfb = le32toh(vmode.v_lfb); + vmode.v_offscreen = le32toh(vmode.v_offscreen); + vmode.v_offscreensize = le16toh(vmode.v_offscreensize); + vmode.v_linbpscanline = le16toh(vmode.v_linbpscanline); + vmode.v_maxpixelclock = le32toh(vmode.v_maxpixelclock); + /* reject unsupported modes */ #if 0 if ((vmode.v_modeattr & (V_MODESUPP | V_MODEOPTINFO @@ -1417,11 +1431,14 @@ if (adp != vesa_adp) return ((*prevvidsw->save_state)(adp, p, size)); - if (vesa_state_buf_size == 0) + if (vesa_state_buf_size == -1) { vesa_state_buf_size = vesa_bios_state_buf_size(); + if (vesa_state_buf_size == 0) + return (1); + } if (size == 0) - return (sizeof(int) + vesa_state_buf_size); - else if (size < (sizeof(int) + vesa_state_buf_size)) + return (offsetof(adp_state_t, regs) + vesa_state_buf_size); + else if (size < (offsetof(adp_state_t, regs) + vesa_state_buf_size)) return (1); ((adp_state_t *)p)->sig = V_STATE_SIG; @@ -1438,22 +1455,36 @@ if ((adp != vesa_adp) || (((adp_state_t *)p)->sig != V_STATE_SIG)) return ((*prevvidsw->load_state)(adp, p)); + if (vesa_state_buf_size <= 0) + return (1); + + /* + * If the current mode is not the same, probably it was powered down. + * Try BIOS POST to restore a sane state. + */ + mode = vesa_bios_get_current_mode(); + if (mode >= 0 && (mode & 0x1ff) != adp->va_mode && + VESA_MODE(adp->va_mode)) + (void)vesa_bios_post(); + ret = vesa_bios_save_restore(STATE_LOAD, ((adp_state_t *)p)->regs, vesa_state_buf_size); /* - * If the current mode is not restored properly, try BIOS POST and - * force setting the mode. + * If the desired mode is not restored, force setting the mode. */ - flags = adp->va_info.vi_flags; - if (!(flags & V_INFO_GRAPHICS)) - flags &= ~V_INFO_LINEAR; - mode = adp->va_mode | ((flags & V_INFO_LINEAR) ? 0x4000 : 0); - if (vesa_bios_get_current_mode() != mode && vesa_bios_post() == 0 && - x86bios_get_intr(0x10) != 0) { - int10_set_mode(adp->va_initial_bios_mode); - vesa_bios_set_mode(mode); + mode = vesa_bios_get_current_mode(); + if (mode >= 0 && (mode & 0x1ff) != adp->va_mode && + VESA_MODE(adp->va_mode)) { + mode = adp->va_mode; + flags = adp->va_info.vi_flags; + if ((flags & V_INFO_GRAPHICS) != 0 && + (flags & V_INFO_LINEAR) != 0) + mode |= 0x4000; + (void)vesa_bios_set_mode(mode); + (void)(*vidsw[adp->va_index]->set_hw_cursor)(adp, -1, -1); } + return (ret); } ==== //depot/projects/scottl-camlock/src/sys/dev/fb/vesa.h#2 (text+ko) ==== @@ -23,7 +23,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/fb/vesa.h,v 1.2 2009/09/09 09:50:31 delphij Exp $ + * $FreeBSD: src/sys/dev/fb/vesa.h,v 1.3 2009/10/23 18:41:00 jkim Exp $ */ #ifndef _DEV_FB_VESA_H_ @@ -108,7 +108,21 @@ u_int32_t v_lfb; u_int32_t v_offscreen; u_int16_t v_offscreensize; -}; + /* 3.0 implementations */ + u_int16_t v_linbpscanline; + u_int8_t v_bankipages; + u_int8_t v_linipages; + u_int8_t v_linredmasksize; + u_int8_t v_linredfieldpos; + u_int8_t v_lingreenmasksize; + u_int8_t v_lingreenfieldpos; + u_int8_t v_linbluemasksize; + u_int8_t v_linbluefieldpos; + u_int8_t v_linresmasksize; + u_int8_t v_linresfieldpos; + u_int32_t v_maxpixelclock; + u_int8_t v_reserved1[190]; +} __packed; #ifdef _KERNEL ==== //depot/projects/scottl-camlock/src/sys/dev/hwpmc/hwpmc_core.c#4 (text+ko) ==== @@ -29,7 +29,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/hwpmc/hwpmc_core.c,v 1.6 2009/09/01 17:55:37 gnn Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/hwpmc/hwpmc_core.c,v 1.7 2009/10/24 01:58:10 jkoshy Exp $"); #include #include @@ -1977,11 +1977,21 @@ core_iaf_npmc = cpuid[CORE_CPUID_EDX] & 0x1F; core_iaf_width = (cpuid[CORE_CPUID_EDX] >> 5) & 0xFF; - iaf_initialize(md, maxcpu, core_iaf_npmc, core_iaf_width); - - core_pmcmask |= ((1ULL << core_iaf_npmc) - 1) << - IAF_OFFSET; - + if (core_iaf_npmc > 0) { + iaf_initialize(md, maxcpu, core_iaf_npmc, + core_iaf_width); + core_pmcmask |= ((1ULL << core_iaf_npmc) - 1) << + IAF_OFFSET; + } else { + /* + * Adjust the number of classes exported to + * user space. + */ + md->pmd_nclass--; + KASSERT(md->pmd_nclass == 2, + ("[core,%d] unexpected nclass %d", __LINE__, + md->pmd_nclass)); + } } PMCDBG(MDP,INI,1,"core-init pmcmask=0x%jx iafri=%d", core_pmcmask, ==== //depot/projects/scottl-camlock/src/sys/dev/iwn/if_iwn.c#6 (text+ko) ==== @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2007 + * Copyright (c) 2007-2009 * Damien Bergamini * Copyright (c) 2008 * Benjamin Close @@ -19,11 +19,12 @@ */ /* - * Driver for Intel Wireless WiFi Link 4965AGN 802.11 network adapters. + * Driver for Intel Wireless WiFi Link 4965 and Intel WiFi Link 5000 Series + * 802.11 network adapters. */ #include -__FBSDID("$FreeBSD: src/sys/dev/iwn/if_iwn.c,v 1.18 2009/07/10 15:28:33 rpaulo Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/iwn/if_iwn.c,v 1.19 2009/10/23 22:04:18 rpaulo Exp $"); #include #include @@ -73,29 +74,28 @@ static int iwn_probe(device_t); static int iwn_attach(device_t); -static int iwn_detach(device_t); -static int iwn_cleanup(device_t); +const struct iwn_hal *iwn_hal_attach(struct iwn_softc *); +void iwn_radiotap_attach(struct iwn_softc *); static struct ieee80211vap *iwn_vap_create(struct ieee80211com *, const char name[IFNAMSIZ], int unit, int opmode, int flags, const uint8_t bssid[IEEE80211_ADDR_LEN], const uint8_t mac[IEEE80211_ADDR_LEN]); static void iwn_vap_delete(struct ieee80211vap *); -static int iwn_shutdown(device_t); -static int iwn_suspend(device_t); -static int iwn_resume(device_t); +static int iwn_cleanup(device_t); +static int iwn_detach(device_t); +int iwn_nic_lock(struct iwn_softc *); +int iwn_eeprom_lock(struct iwn_softc *); +int iwn_init_otprom(struct iwn_softc *); +int iwn_read_prom_data(struct iwn_softc *, uint32_t, void *, int); static int iwn_dma_contig_alloc(struct iwn_softc *, struct iwn_dma_info *, void **, bus_size_t, bus_size_t, int); static void iwn_dma_contig_free(struct iwn_dma_info *); >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Sat Oct 24 10:29:55 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 5DF371065676; Sat, 24 Oct 2009 10:29:55 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 09E00106566C for ; Sat, 24 Oct 2009 10:29:55 +0000 (UTC) (envelope-from mav@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id EA8C98FC14 for ; Sat, 24 Oct 2009 10:29:54 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n9OATsxE073541 for ; Sat, 24 Oct 2009 10:29:54 GMT (envelope-from mav@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n9OATslv073539 for perforce@freebsd.org; Sat, 24 Oct 2009 10:29:54 GMT (envelope-from mav@freebsd.org) Date: Sat, 24 Oct 2009 10:29:54 GMT Message-Id: <200910241029.n9OATslv073539@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mav@freebsd.org using -f From: Alexander Motin To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 169752 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 24 Oct 2009 10:29:55 -0000 http://p4web.freebsd.org/chv.cgi?CH=169752 Change 169752 by mav@mav_mavbook on 2009/10/24 10:29:16 Remove error handling code duplication in aprobe. Affected files ... .. //depot/projects/scottl-camlock/src/sys/cam/ata/ata_xpt.c#43 edit Differences ... ==== //depot/projects/scottl-camlock/src/sys/cam/ata/ata_xpt.c#43 (text+ko) ==== @@ -554,135 +554,20 @@ priority = done_ccb->ccb_h.pinfo.priority; ident_buf = &path->device->ident_data; - switch (softc->action) { - case PROBE_RESET: - if ((done_ccb->ccb_h.status & CAM_STATUS_MASK) == CAM_REQ_CMP) { - int sign = (done_ccb->ataio.res.lba_high << 8) + - done_ccb->ataio.res.lba_mid; - xpt_print(path, "SIGNATURE: %04x\n", sign); - if (sign == 0x0000 && - done_ccb->ccb_h.target_id != 15) { - path->device->protocol = PROTO_ATA; - PROBE_SET_ACTION(softc, PROBE_IDENTIFY); - } else if (sign == 0x9669 && - done_ccb->ccb_h.target_id == 15) { - struct ccb_trans_settings cts; - - /* Report SIM that PM is present. */ - bzero(&cts, sizeof(cts)); - xpt_setup_ccb(&cts.ccb_h, path, CAM_PRIORITY_NORMAL); - cts.ccb_h.func_code = XPT_SET_TRAN_SETTINGS; - cts.type = CTS_TYPE_CURRENT_SETTINGS; - cts.xport_specific.sata.pm_present = 1; - cts.xport_specific.sata.valid = CTS_SATA_VALID_PM; - xpt_action((union ccb *)&cts); - path->device->protocol = PROTO_SATAPM; - PROBE_SET_ACTION(softc, PROBE_PM_PID); - } else if (sign == 0xeb14 && - done_ccb->ccb_h.target_id != 15) { - path->device->protocol = PROTO_SCSI; - PROBE_SET_ACTION(softc, PROBE_IDENTIFY); - } else { - if (done_ccb->ccb_h.target_id != 15) { - xpt_print(path, - "Unexpected signature 0x%04x\n", sign); - } - goto device_fail; - } - xpt_release_ccb(done_ccb); - xpt_schedule(periph, priority); - return; - } else if (cam_periph_error(done_ccb, 0, 0, - &softc->saved_ccb) == ERESTART) { + if ((done_ccb->ccb_h.status & CAM_STATUS_MASK) != CAM_REQ_CMP) { +device_fail: if (cam_periph_error(done_ccb, 0, 0, + &softc->saved_ccb) == ERESTART) { return; } else if ((done_ccb->ccb_h.status & CAM_DEV_QFRZN) != 0) { /* Don't wedge the queue */ xpt_release_devq(done_ccb->ccb_h.path, /*count*/1, /*run_queue*/TRUE); } - goto device_fail; - case PROBE_IDENTIFY: - { - if ((done_ccb->ccb_h.status & CAM_STATUS_MASK) == CAM_REQ_CMP) { - int16_t *ptr; - - for (ptr = (int16_t *)ident_buf; - ptr < (int16_t *)ident_buf + sizeof(struct ata_params)/2; ptr++) { - *ptr = le16toh(*ptr); - } - if (strncmp(ident_buf->model, "FX", 2) && - strncmp(ident_buf->model, "NEC", 3) && - strncmp(ident_buf->model, "Pioneer", 7) && - strncmp(ident_buf->model, "SHARP", 5)) { - ata_bswap(ident_buf->model, sizeof(ident_buf->model)); - ata_bswap(ident_buf->revision, sizeof(ident_buf->revision)); - ata_bswap(ident_buf->serial, sizeof(ident_buf->serial)); - } - ata_btrim(ident_buf->model, sizeof(ident_buf->model)); - ata_bpack(ident_buf->model, ident_buf->model, sizeof(ident_buf->model)); - ata_btrim(ident_buf->revision, sizeof(ident_buf->revision)); - ata_bpack(ident_buf->revision, ident_buf->revision, sizeof(ident_buf->revision)); - ata_btrim(ident_buf->serial, sizeof(ident_buf->serial)); - ata_bpack(ident_buf->serial, ident_buf->serial, sizeof(ident_buf->serial)); - - if ((periph->path->device->flags & CAM_DEV_UNCONFIGURED) == 0) { - /* Check that it is the same device. */ - MD5_CTX context; - u_int8_t digest[16]; - - MD5Init(&context); - MD5Update(&context, - (unsigned char *)ident_buf->model, - sizeof(ident_buf->model)); - MD5Update(&context, - (unsigned char *)ident_buf->revision, - sizeof(ident_buf->revision)); - MD5Update(&context, - (unsigned char *)ident_buf->serial, - sizeof(ident_buf->serial)); - MD5Final(digest, &context); - if (bcmp(digest, softc->digest, sizeof(digest))) { - /* Device changed. */ - xpt_async(AC_LOST_DEVICE, path, NULL); - } - xpt_release_ccb(done_ccb); - break; - } - - /* Clean up from previous instance of this device */ - if (path->device->serial_num != NULL) { - free(path->device->serial_num, M_CAMXPT); - path->device->serial_num = NULL; - path->device->serial_num_len = 0; - } - path->device->serial_num = - (u_int8_t *)malloc((sizeof(ident_buf->serial) + 1), - M_CAMXPT, M_NOWAIT); - if (path->device->serial_num != NULL) { - bcopy(ident_buf->serial, - path->device->serial_num, - sizeof(ident_buf->serial)); - path->device->serial_num[sizeof(ident_buf->serial)] - = '\0'; - path->device->serial_num_len = - strlen(path->device->serial_num); - } - - path->device->flags |= CAM_DEV_IDENTIFY_DATA_VALID; - ata_device_transport(path); - PROBE_SET_ACTION(softc, PROBE_SETMODE); - xpt_release_ccb(done_ccb); - xpt_schedule(periph, priority); - return; - } else if (cam_periph_error(done_ccb, 0, 0, - &softc->saved_ccb) == ERESTART) { - return; - } else if ((done_ccb->ccb_h.status & CAM_DEV_QFRZN) != 0) { - /* Don't wedge the queue */ - xpt_release_devq(done_ccb->ccb_h.path, /*count*/1, - /*run_queue*/TRUE); - } -device_fail: + /* Old PIO2 devices may not support mode setting. */ + if (softc->action == PROBE_SETMODE && + ata_max_pmode(ident_buf) <= ATA_PIO2 && + (ident_buf->capabilities1 & ATA_SUPPORT_IORDY) == 0) + goto noerror; /* * If we get to this point, we got an error status back * from the inquiry and the error status doesn't require @@ -696,161 +581,223 @@ if ((path->device->flags & CAM_DEV_UNCONFIGURED) == 0) xpt_async(AC_LOST_DEVICE, path, NULL); found = 0; + goto done; + } +noerror: + switch (softc->action) { + case PROBE_RESET: + { + int sign = (done_ccb->ataio.res.lba_high << 8) + + done_ccb->ataio.res.lba_mid; + xpt_print(path, "SIGNATURE: %04x\n", sign); + if (sign == 0x0000 && + done_ccb->ccb_h.target_id != 15) { + path->device->protocol = PROTO_ATA; + PROBE_SET_ACTION(softc, PROBE_IDENTIFY); + } else if (sign == 0x9669 && + done_ccb->ccb_h.target_id == 15) { + struct ccb_trans_settings cts; + + /* Report SIM that PM is present. */ + bzero(&cts, sizeof(cts)); + xpt_setup_ccb(&cts.ccb_h, path, CAM_PRIORITY_NORMAL); + cts.ccb_h.func_code = XPT_SET_TRAN_SETTINGS; + cts.type = CTS_TYPE_CURRENT_SETTINGS; + cts.xport_specific.sata.pm_present = 1; + cts.xport_specific.sata.valid = CTS_SATA_VALID_PM; + xpt_action((union ccb *)&cts); + path->device->protocol = PROTO_SATAPM; + PROBE_SET_ACTION(softc, PROBE_PM_PID); + } else if (sign == 0xeb14 && + done_ccb->ccb_h.target_id != 15) { + path->device->protocol = PROTO_SCSI; + PROBE_SET_ACTION(softc, PROBE_IDENTIFY); + } else { + if (done_ccb->ccb_h.target_id != 15) { + xpt_print(path, + "Unexpected signature 0x%04x\n", sign); + } + goto device_fail; + } xpt_release_ccb(done_ccb); - break; + xpt_schedule(periph, priority); + return; + } + case PROBE_IDENTIFY: + { + int16_t *ptr; + + for (ptr = (int16_t *)ident_buf; + ptr < (int16_t *)ident_buf + sizeof(struct ata_params)/2; ptr++) { + *ptr = le16toh(*ptr); + } + if (strncmp(ident_buf->model, "FX", 2) && + strncmp(ident_buf->model, "NEC", 3) && + strncmp(ident_buf->model, "Pioneer", 7) && + strncmp(ident_buf->model, "SHARP", 5)) { + ata_bswap(ident_buf->model, sizeof(ident_buf->model)); + ata_bswap(ident_buf->revision, sizeof(ident_buf->revision)); + ata_bswap(ident_buf->serial, sizeof(ident_buf->serial)); + } + ata_btrim(ident_buf->model, sizeof(ident_buf->model)); + ata_bpack(ident_buf->model, ident_buf->model, sizeof(ident_buf->model)); + ata_btrim(ident_buf->revision, sizeof(ident_buf->revision)); + ata_bpack(ident_buf->revision, ident_buf->revision, sizeof(ident_buf->revision)); + ata_btrim(ident_buf->serial, sizeof(ident_buf->serial)); + ata_bpack(ident_buf->serial, ident_buf->serial, sizeof(ident_buf->serial)); + + if ((periph->path->device->flags & CAM_DEV_UNCONFIGURED) == 0) { + /* Check that it is the same device. */ + MD5_CTX context; + u_int8_t digest[16]; + + MD5Init(&context); + MD5Update(&context, + (unsigned char *)ident_buf->model, + sizeof(ident_buf->model)); + MD5Update(&context, + (unsigned char *)ident_buf->revision, + sizeof(ident_buf->revision)); + MD5Update(&context, + (unsigned char *)ident_buf->serial, + sizeof(ident_buf->serial)); + MD5Final(digest, &context); + if (bcmp(digest, softc->digest, sizeof(digest))) { + /* Device changed. */ + xpt_async(AC_LOST_DEVICE, path, NULL); + } + break; + } + + /* Clean up from previous instance of this device */ + if (path->device->serial_num != NULL) { + free(path->device->serial_num, M_CAMXPT); + path->device->serial_num = NULL; + path->device->serial_num_len = 0; + } + path->device->serial_num = + (u_int8_t *)malloc((sizeof(ident_buf->serial) + 1), + M_CAMXPT, M_NOWAIT); + if (path->device->serial_num != NULL) { + bcopy(ident_buf->serial, + path->device->serial_num, + sizeof(ident_buf->serial)); + path->device->serial_num[sizeof(ident_buf->serial)] + = '\0'; + path->device->serial_num_len = + strlen(path->device->serial_num); + } + + path->device->flags |= CAM_DEV_IDENTIFY_DATA_VALID; + ata_device_transport(path); + PROBE_SET_ACTION(softc, PROBE_SETMODE); + xpt_release_ccb(done_ccb); + xpt_schedule(periph, priority); + return; } case PROBE_SETMODE: { - if ((done_ccb->ccb_h.status & CAM_STATUS_MASK) == CAM_REQ_CMP) { -modedone: if (path->device->protocol == PROTO_ATA) { - path->device->flags &= ~CAM_DEV_UNCONFIGURED; - done_ccb->ccb_h.func_code = XPT_GDEV_TYPE; - xpt_action(done_ccb); - xpt_async(AC_FOUND_DEVICE, done_ccb->ccb_h.path, - done_ccb); - xpt_release_ccb(done_ccb); - break; - } else { - PROBE_SET_ACTION(softc, PROBE_INQUIRY); - xpt_release_ccb(done_ccb); - xpt_schedule(periph, priority); - return; - } - } else if (cam_periph_error(done_ccb, 0, 0, - &softc->saved_ccb) == ERESTART) { + if (path->device->protocol == PROTO_ATA) { + path->device->flags &= ~CAM_DEV_UNCONFIGURED; + done_ccb->ccb_h.func_code = XPT_GDEV_TYPE; + xpt_action(done_ccb); + xpt_async(AC_FOUND_DEVICE, done_ccb->ccb_h.path, + done_ccb); + } else { + PROBE_SET_ACTION(softc, PROBE_INQUIRY); + xpt_release_ccb(done_ccb); + xpt_schedule(periph, priority); return; - } else if ((done_ccb->ccb_h.status & CAM_DEV_QFRZN) != 0) { - /* Don't wedge the queue */ - xpt_release_devq(done_ccb->ccb_h.path, /*count*/1, - /*run_queue*/TRUE); } - /* Old PIO2 devices may not support mode setting. */ - if (ata_max_pmode(ident_buf) <= ATA_PIO2 && - (ident_buf->capabilities1 & ATA_SUPPORT_IORDY) == 0) - goto modedone; - goto device_fail; + break; } case PROBE_INQUIRY: case PROBE_FULL_INQUIRY: { - if ((done_ccb->ccb_h.status & CAM_STATUS_MASK) == CAM_REQ_CMP) { - struct scsi_inquiry_data *inq_buf; - u_int8_t periph_qual; + struct scsi_inquiry_data *inq_buf; + u_int8_t periph_qual, len; - path->device->flags |= CAM_DEV_INQUIRY_DATA_VALID; - inq_buf = &path->device->inq_data; + path->device->flags |= CAM_DEV_INQUIRY_DATA_VALID; + inq_buf = &path->device->inq_data; - periph_qual = SID_QUAL(inq_buf); + periph_qual = SID_QUAL(inq_buf); - if (periph_qual == SID_QUAL_LU_CONNECTED) { - u_int8_t len; + if (periph_qual != SID_QUAL_LU_CONNECTED) + break; - /* - * We conservatively request only - * SHORT_INQUIRY_LEN bytes of inquiry - * information during our first try - * at sending an INQUIRY. If the device - * has more information to give, - * perform a second request specifying - * the amount of information the device - * is willing to give. - */ - len = inq_buf->additional_length - + offsetof(struct scsi_inquiry_data, - additional_length) + 1; - if (softc->action == PROBE_INQUIRY - && len > SHORT_INQUIRY_LENGTH) { - PROBE_SET_ACTION(softc, PROBE_FULL_INQUIRY); - xpt_release_ccb(done_ccb); - xpt_schedule(periph, priority); - return; - } - - scsi_find_quirk(path->device); - ata_device_transport(path); - path->device->flags &= ~CAM_DEV_UNCONFIGURED; - done_ccb->ccb_h.func_code = XPT_GDEV_TYPE; - xpt_action(done_ccb); - xpt_async(AC_FOUND_DEVICE, done_ccb->ccb_h.path, - done_ccb); - xpt_release_ccb(done_ccb); - break; - } - } else if (cam_periph_error(done_ccb, 0, 0, - &softc->saved_ccb) == ERESTART) { + /* + * We conservatively request only + * SHORT_INQUIRY_LEN bytes of inquiry + * information during our first try + * at sending an INQUIRY. If the device + * has more information to give, + * perform a second request specifying + * the amount of information the device + * is willing to give. + */ + len = inq_buf->additional_length + + offsetof(struct scsi_inquiry_data, additional_length) + 1; + if (softc->action == PROBE_INQUIRY + && len > SHORT_INQUIRY_LENGTH) { + PROBE_SET_ACTION(softc, PROBE_FULL_INQUIRY); + xpt_release_ccb(done_ccb); + xpt_schedule(periph, priority); return; - } else if ((done_ccb->ccb_h.status & CAM_DEV_QFRZN) != 0) { - /* Don't wedge the queue */ - xpt_release_devq(done_ccb->ccb_h.path, /*count*/1, - /*run_queue*/TRUE); } - goto device_fail; + + scsi_find_quirk(path->device); + ata_device_transport(path); + path->device->flags &= ~CAM_DEV_UNCONFIGURED; + done_ccb->ccb_h.func_code = XPT_GDEV_TYPE; + xpt_action(done_ccb); + xpt_async(AC_FOUND_DEVICE, done_ccb->ccb_h.path, done_ccb); + break; } case PROBE_PM_PID: - if ((done_ccb->ccb_h.status & CAM_STATUS_MASK) == CAM_REQ_CMP) { - if ((path->device->flags & CAM_DEV_IDENTIFY_DATA_VALID) == 0) - bzero(ident_buf, sizeof(*ident_buf)); - softc->pm_pid = (done_ccb->ataio.res.lba_high << 24) + - (done_ccb->ataio.res.lba_mid << 16) + - (done_ccb->ataio.res.lba_low << 8) + - done_ccb->ataio.res.sector_count; - ((uint32_t *)ident_buf)[0] = softc->pm_pid; - printf("PM Product ID: %08x\n", softc->pm_pid); - snprintf(ident_buf->model, sizeof(ident_buf->model), - "Port Multiplier %08x", softc->pm_pid); - PROBE_SET_ACTION(softc, PROBE_PM_PRV); - xpt_release_ccb(done_ccb); - xpt_schedule(periph, priority); - return; - } else if (cam_periph_error(done_ccb, 0, 0, - &softc->saved_ccb) == ERESTART) { - return; - } else if ((done_ccb->ccb_h.status & CAM_DEV_QFRZN) != 0) { - /* Don't wedge the queue */ - xpt_release_devq(done_ccb->ccb_h.path, /*count*/1, - /*run_queue*/TRUE); - } - goto device_fail; + if ((path->device->flags & CAM_DEV_IDENTIFY_DATA_VALID) == 0) + bzero(ident_buf, sizeof(*ident_buf)); + softc->pm_pid = (done_ccb->ataio.res.lba_high << 24) + + (done_ccb->ataio.res.lba_mid << 16) + + (done_ccb->ataio.res.lba_low << 8) + + done_ccb->ataio.res.sector_count; + ((uint32_t *)ident_buf)[0] = softc->pm_pid; + printf("PM Product ID: %08x\n", softc->pm_pid); + snprintf(ident_buf->model, sizeof(ident_buf->model), + "Port Multiplier %08x", softc->pm_pid); + PROBE_SET_ACTION(softc, PROBE_PM_PRV); + xpt_release_ccb(done_ccb); + xpt_schedule(periph, priority); + return; case PROBE_PM_PRV: - if ((done_ccb->ccb_h.status & CAM_STATUS_MASK) == CAM_REQ_CMP) { - softc->pm_prv = (done_ccb->ataio.res.lba_high << 24) + - (done_ccb->ataio.res.lba_mid << 16) + - (done_ccb->ataio.res.lba_low << 8) + - done_ccb->ataio.res.sector_count; - ((uint32_t *)ident_buf)[1] = softc->pm_prv; - printf("PM Revision: %08x\n", softc->pm_prv); - snprintf(ident_buf->revision, sizeof(ident_buf->revision), - "%04x", softc->pm_prv); - path->device->flags |= CAM_DEV_IDENTIFY_DATA_VALID; - if (periph->path->device->flags & CAM_DEV_UNCONFIGURED) { - path->device->flags &= ~CAM_DEV_UNCONFIGURED; - done_ccb->ccb_h.func_code = XPT_GDEV_TYPE; - xpt_action(done_ccb); - xpt_async(AC_FOUND_DEVICE, done_ccb->ccb_h.path, - done_ccb); - } else { - done_ccb->ccb_h.func_code = XPT_GDEV_TYPE; - xpt_action(done_ccb); - xpt_async(AC_SCSI_AEN, done_ccb->ccb_h.path, - done_ccb); - } - xpt_release_ccb(done_ccb); - break; - } else if (cam_periph_error(done_ccb, 0, 0, - &softc->saved_ccb) == ERESTART) { - return; - } else if ((done_ccb->ccb_h.status & CAM_DEV_QFRZN) != 0) { - /* Don't wedge the queue */ - xpt_release_devq(done_ccb->ccb_h.path, /*count*/1, - /*run_queue*/TRUE); + softc->pm_prv = (done_ccb->ataio.res.lba_high << 24) + + (done_ccb->ataio.res.lba_mid << 16) + + (done_ccb->ataio.res.lba_low << 8) + + done_ccb->ataio.res.sector_count; + ((uint32_t *)ident_buf)[1] = softc->pm_prv; + printf("PM Revision: %08x\n", softc->pm_prv); + snprintf(ident_buf->revision, sizeof(ident_buf->revision), + "%04x", softc->pm_prv); + path->device->flags |= CAM_DEV_IDENTIFY_DATA_VALID; + if (periph->path->device->flags & CAM_DEV_UNCONFIGURED) { + path->device->flags &= ~CAM_DEV_UNCONFIGURED; + done_ccb->ccb_h.func_code = XPT_GDEV_TYPE; + xpt_action(done_ccb); + xpt_async(AC_FOUND_DEVICE, done_ccb->ccb_h.path, + done_ccb); + } else { + done_ccb->ccb_h.func_code = XPT_GDEV_TYPE; + xpt_action(done_ccb); + xpt_async(AC_SCSI_AEN, done_ccb->ccb_h.path, done_ccb); } - goto device_fail; + break; case PROBE_INVALID: CAM_DEBUG(done_ccb->ccb_h.path, CAM_DEBUG_INFO, ("probedone: invalid action state\n")); default: break; } +done: + xpt_release_ccb(done_ccb); done_ccb = (union ccb *)TAILQ_FIRST(&softc->request_ccbs); TAILQ_REMOVE(&softc->request_ccbs, &done_ccb->ccb_h, periph_links.tqe); done_ccb->ccb_h.status = CAM_REQ_CMP; From owner-p4-projects@FreeBSD.ORG Sat Oct 24 13:32:47 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 98B2E1065679; Sat, 24 Oct 2009 13:32:47 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5CF35106566B for ; Sat, 24 Oct 2009 13:32:47 +0000 (UTC) (envelope-from jona@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 4AC508FC08 for ; Sat, 24 Oct 2009 13:32:47 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n9ODWlTe099870 for ; Sat, 24 Oct 2009 13:32:47 GMT (envelope-from jona@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n9ODWlnG099868 for perforce@freebsd.org; Sat, 24 Oct 2009 13:32:47 GMT (envelope-from jona@FreeBSD.org) Date: Sat, 24 Oct 2009 13:32:47 GMT Message-Id: <200910241332.n9ODWlnG099868@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jona@FreeBSD.org using -f From: Jonathan Anderson To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 169761 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 24 Oct 2009 13:32:47 -0000 http://p4web.freebsd.org/chv.cgi?CH=169761 Change 169761 by jona@jona-capsicum-kent on 2009/10/24 13:32:24 Since we're using write() rather than err(), we need to actually return something from cap_main() Affected files ... .. //depot/projects/trustedbsd/capabilities/src/lib/csu/common/crtbrand.c#3 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/lib/csu/common/crtbrand.c#3 (text+ko) ==== @@ -58,5 +58,6 @@ "ERROR: attempting to run a regular binary in capability mode.\n\nIf you wish to run a binary in a sandbox, you must provide a cap_main() function which takes the same arguments as main().\n"; write(2, warning, sizeof(warning)); + return 1; } From owner-p4-projects@FreeBSD.ORG Sat Oct 24 15:28:44 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 05434106568D; Sat, 24 Oct 2009 15:28:44 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B3EA41065698 for ; Sat, 24 Oct 2009 15:28:43 +0000 (UTC) (envelope-from mav@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id A06A28FC2B for ; Sat, 24 Oct 2009 15:28:43 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n9OFSh3K010756 for ; Sat, 24 Oct 2009 15:28:43 GMT (envelope-from mav@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n9OFShQt010754 for perforce@freebsd.org; Sat, 24 Oct 2009 15:28:43 GMT (envelope-from mav@freebsd.org) Date: Sat, 24 Oct 2009 15:28:43 GMT Message-Id: <200910241528.n9OFShQt010754@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mav@freebsd.org using -f From: Alexander Motin To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 169765 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 24 Oct 2009 15:28:44 -0000 http://p4web.freebsd.org/chv.cgi?CH=169765 Change 169765 by mav@mav_mavtest on 2009/10/24 15:28:37 Remove error handle code duplication. Affected files ... .. //depot/projects/scottl-camlock/src/sys/cam/ata/ata_pmp.c#12 edit Differences ... ==== //depot/projects/scottl-camlock/src/sys/cam/ata/ata_pmp.c#12 (text+ko) ==== @@ -492,7 +492,7 @@ struct ccb_ataio *ataio; union ccb *work_ccb; struct cam_path *path, *dpath; - u_int32_t priority; + u_int32_t priority, res; softc = (struct pmp_softc *)periph->softc; ataio = &done_ccb->ataio; @@ -502,193 +502,122 @@ path = done_ccb->ccb_h.path; priority = done_ccb->ccb_h.pinfo.priority; - switch (softc->state) { - case PMP_STATE_PORTS: - if ((done_ccb->ccb_h.status & CAM_STATUS_MASK) == CAM_REQ_CMP) { - softc->pm_ports = (done_ccb->ataio.res.lba_high << 24) + - (done_ccb->ataio.res.lba_mid << 16) + - (done_ccb->ataio.res.lba_low << 8) + - done_ccb->ataio.res.sector_count; - /* This PM declares 6 ports, while only 5 of them are real. - * Port 5 is enclosure management bridge port, which has implementation - * problems, causing probe faults. Hide it for now. */ - if (softc->pm_pid == 0x37261095 && softc->pm_ports == 6) - softc->pm_ports = 5; - /* This PM declares 7 ports, while only 5 of them are real. - * Port 5 is some fake "Config Disk" with 640 sectors size, - * port 6 is enclosure management bridge port. - * Both fake ports has implementation problems, causing - * probe faults. Hide them for now. */ - if (softc->pm_pid == 0x47261095 && softc->pm_ports == 7) - softc->pm_ports = 5; - printf("PM ports: %d\n", softc->pm_ports); - softc->state = PMP_STATE_CONFIG; - xpt_release_ccb(done_ccb); - xpt_schedule(periph, priority); - return; - } else if (cam_periph_error(done_ccb, 0, 0, - &softc->saved_ccb) == ERESTART) { + if ((done_ccb->ccb_h.status & CAM_STATUS_MASK) != CAM_REQ_CMP) { + if (cam_periph_error(done_ccb, 0, 0, + &softc->saved_ccb) == ERESTART) { return; } else if ((done_ccb->ccb_h.status & CAM_DEV_QFRZN) != 0) { - cam_release_devq(done_ccb->ccb_h.path, - /*relsim_flags*/0, - /*reduction*/0, - /*timeout*/0, - /*getcount_only*/0); + cam_release_devq(done_ccb->ccb_h.path, + /*relsim_flags*/0, + /*reduction*/0, + /*timeout*/0, + /*getcount_only*/0); } + goto done; + } + + switch (softc->state) { + case PMP_STATE_PORTS: + softc->pm_ports = (done_ccb->ataio.res.lba_high << 24) + + (done_ccb->ataio.res.lba_mid << 16) + + (done_ccb->ataio.res.lba_low << 8) + + done_ccb->ataio.res.sector_count; + /* This PM declares 6 ports, while only 5 of them are real. + * Port 5 is enclosure management bridge port, which has implementation + * problems, causing probe faults. Hide it for now. */ + if (softc->pm_pid == 0x37261095 && softc->pm_ports == 6) + softc->pm_ports = 5; + /* This PM declares 7 ports, while only 5 of them are real. + * Port 5 is some fake "Config Disk" with 640 sectors size, + * port 6 is enclosure management bridge port. + * Both fake ports has implementation problems, causing + * probe faults. Hide them for now. */ + if (softc->pm_pid == 0x47261095 && softc->pm_ports == 7) + softc->pm_ports = 5; + printf("PM ports: %d\n", softc->pm_ports); + softc->state = PMP_STATE_CONFIG; xpt_release_ccb(done_ccb); - break; + xpt_schedule(periph, priority); + return; case PMP_STATE_CONFIG: - if ((done_ccb->ccb_h.status & CAM_STATUS_MASK) == CAM_REQ_CMP) { - softc->pm_step = 0; - softc->state = PMP_STATE_RESET; - xpt_release_ccb(done_ccb); - xpt_schedule(periph, priority); - return; - } else if (cam_periph_error(done_ccb, 0, 0, - &softc->saved_ccb) == ERESTART) { - return; - } else if ((done_ccb->ccb_h.status & CAM_DEV_QFRZN) != 0) { - cam_release_devq(done_ccb->ccb_h.path, - /*relsim_flags*/0, - /*reduction*/0, - /*timeout*/0, - /*getcount_only*/0); - } + softc->pm_step = 0; + softc->state = PMP_STATE_RESET; xpt_release_ccb(done_ccb); - break; + xpt_schedule(periph, priority); + return; case PMP_STATE_RESET: - if ((done_ccb->ccb_h.status & CAM_STATUS_MASK) == CAM_REQ_CMP) { - softc->pm_step++; - if (softc->pm_step < softc->pm_ports) { - xpt_release_ccb(done_ccb); - xpt_schedule(periph, priority); - return; - } else { - softc->pm_step = 0; - DELAY(5000); - printf("PM reset done\n"); - softc->state = PMP_STATE_CONNECT; - xpt_release_ccb(done_ccb); - xpt_schedule(periph, priority); - return; - } - } else if (cam_periph_error(done_ccb, 0, 0, - &softc->saved_ccb) == ERESTART) { - return; - } else if ((done_ccb->ccb_h.status & CAM_DEV_QFRZN) != 0) { - cam_release_devq(done_ccb->ccb_h.path, - /*relsim_flags*/0, - /*reduction*/0, - /*timeout*/0, - /*getcount_only*/0); + softc->pm_step++; + if (softc->pm_step >= softc->pm_ports) { + softc->pm_step = 0; + DELAY(5000); + printf("PM reset done\n"); + softc->state = PMP_STATE_CONNECT; } xpt_release_ccb(done_ccb); - break; + xpt_schedule(periph, priority); + return; case PMP_STATE_CONNECT: - if ((done_ccb->ccb_h.status & CAM_STATUS_MASK) == CAM_REQ_CMP) { - softc->pm_step++; - if (softc->pm_step < softc->pm_ports) { - xpt_release_ccb(done_ccb); - xpt_schedule(periph, priority); - return; - } else { - softc->pm_step = 0; - softc->pm_try = 0; - printf("PM connect done\n"); - softc->state = PMP_STATE_CHECK; - xpt_release_ccb(done_ccb); - xpt_schedule(periph, priority); - return; - } - } else if (cam_periph_error(done_ccb, 0, 0, - &softc->saved_ccb) == ERESTART) { - return; - } else if ((done_ccb->ccb_h.status & CAM_DEV_QFRZN) != 0) { - cam_release_devq(done_ccb->ccb_h.path, - /*relsim_flags*/0, - /*reduction*/0, - /*timeout*/0, - /*getcount_only*/0); + softc->pm_step++; + if (softc->pm_step >= softc->pm_ports) { + softc->pm_step = 0; + softc->pm_try = 0; + printf("PM connect done\n"); + softc->state = PMP_STATE_CHECK; } xpt_release_ccb(done_ccb); - break; + xpt_schedule(periph, priority); + return; case PMP_STATE_CHECK: - if ((done_ccb->ccb_h.status & CAM_STATUS_MASK) == CAM_REQ_CMP) { - int res = (done_ccb->ataio.res.lba_high << 24) + - (done_ccb->ataio.res.lba_mid << 16) + - (done_ccb->ataio.res.lba_low << 8) + - done_ccb->ataio.res.sector_count; - if ((res & 0xf0f) == 0x103 && (res & 0x0f0) != 0) { + res = (done_ccb->ataio.res.lba_high << 24) + + (done_ccb->ataio.res.lba_mid << 16) + + (done_ccb->ataio.res.lba_low << 8) + + done_ccb->ataio.res.sector_count; + if ((res & 0xf0f) == 0x103 && (res & 0x0f0) != 0) { + printf("PM status: %d - %08x\n", softc->pm_step, res); + softc->found |= (1 << softc->pm_step); + softc->pm_step++; + } else { + if (softc->pm_try < 100) { + DELAY(10000); + softc->pm_try++; + } else { printf("PM status: %d - %08x\n", softc->pm_step, res); - softc->found |= (1 << softc->pm_step); + softc->found &= ~(1 << softc->pm_step); + if (xpt_create_path(&dpath, periph, + done_ccb->ccb_h.path_id, + softc->pm_step, 0) == CAM_REQ_CMP) { + xpt_async(AC_LOST_DEVICE, dpath, NULL); + xpt_free_path(dpath); + } softc->pm_step++; - } else { - if (softc->pm_try < 100) { - DELAY(10000); - softc->pm_try++; - } else { - printf("PM status: %d - %08x\n", softc->pm_step, res); - softc->found &= ~(1 << softc->pm_step); - if (xpt_create_path(&dpath, periph, - done_ccb->ccb_h.path_id, - softc->pm_step, 0) == CAM_REQ_CMP) { - xpt_async(AC_LOST_DEVICE, dpath, NULL); - xpt_free_path(dpath); - } - softc->pm_step++; - } } - if (softc->pm_step < softc->pm_ports) { - xpt_release_ccb(done_ccb); - xpt_schedule(periph, priority); - return; - } else { - softc->pm_step = 0; - softc->state = PMP_STATE_CLEAR; - xpt_release_ccb(done_ccb); - xpt_schedule(periph, priority); - return; - } - } else if (cam_periph_error(done_ccb, 0, 0, - &softc->saved_ccb) == ERESTART) { + } + if (softc->pm_step < softc->pm_ports) { + xpt_release_ccb(done_ccb); + xpt_schedule(periph, priority); + return; + } else { + softc->pm_step = 0; + softc->state = PMP_STATE_CLEAR; + xpt_release_ccb(done_ccb); + xpt_schedule(periph, priority); return; - } else if ((done_ccb->ccb_h.status & CAM_DEV_QFRZN) != 0) { - cam_release_devq(done_ccb->ccb_h.path, - /*relsim_flags*/0, - /*reduction*/0, - /*timeout*/0, - /*getcount_only*/0); } - xpt_release_ccb(done_ccb); break; case PMP_STATE_CLEAR: - if ((done_ccb->ccb_h.status & CAM_STATUS_MASK) == CAM_REQ_CMP) { - softc->pm_step++; - if (softc->pm_step < softc->pm_ports) { - xpt_release_ccb(done_ccb); - xpt_schedule(periph, priority); - return; - } else if (softc->found) { - softc->pm_step = 0; - softc->state = PMP_STATE_SCAN; - work_ccb = xpt_alloc_ccb_nowait(); - if (work_ccb != NULL) - goto do_scan; - xpt_release_ccb(done_ccb); - } - break; - } else if (cam_periph_error(done_ccb, 0, 0, - &softc->saved_ccb) == ERESTART) { + softc->pm_step++; + if (softc->pm_step < softc->pm_ports) { + xpt_release_ccb(done_ccb); + xpt_schedule(periph, priority); return; - } else if ((done_ccb->ccb_h.status & CAM_DEV_QFRZN) != 0) { - cam_release_devq(done_ccb->ccb_h.path, - /*relsim_flags*/0, - /*reduction*/0, - /*timeout*/0, - /*getcount_only*/0); + } else if (softc->found) { + softc->pm_step = 0; + softc->state = PMP_STATE_SCAN; + work_ccb = xpt_alloc_ccb_nowait(); + if (work_ccb != NULL) + goto do_scan; + xpt_release_ccb(done_ccb); } - xpt_release_ccb(done_ccb); break; case PMP_STATE_SCAN: work_ccb = done_ccb; @@ -703,7 +632,6 @@ } if (softc->pm_step >= softc->pm_ports) { xpt_free_ccb(work_ccb); - xpt_release_ccb(done_ccb); break; } if (xpt_create_path(&dpath, periph, @@ -712,7 +640,6 @@ printf("pmpdone: xpt_create_path failed" ", bus scan halted\n"); xpt_free_ccb(work_ccb); - xpt_release_ccb(done_ccb); break; } xpt_setup_ccb(&work_ccb->ccb_h, dpath, @@ -727,6 +654,8 @@ default: break; } +done: + xpt_release_ccb(done_ccb); softc->state = PMP_STATE_NORMAL; pmprelease(periph, -1); cam_periph_release_locked(periph);