From owner-svn-src-stable-8@FreeBSD.ORG Sun Nov 15 11:30:59 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5DD3A106566C; Sun, 15 Nov 2009 11:30:59 +0000 (UTC) (envelope-from stas@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 4A59E8FC0C; Sun, 15 Nov 2009 11:30:59 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nAFBUxXb036332; Sun, 15 Nov 2009 11:30:59 GMT (envelope-from stas@svn.freebsd.org) Received: (from stas@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nAFBUx6Y036327; Sun, 15 Nov 2009 11:30:59 GMT (envelope-from stas@svn.freebsd.org) Message-Id: <200911151130.nAFBUx6Y036327@svn.freebsd.org> From: Stanislav Sedov Date: Sun, 15 Nov 2009 11:30:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r199288 - in stable/8/sys: conf dev/bce X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 15 Nov 2009 11:30:59 -0000 Author: stas Date: Sun Nov 15 11:30:59 2009 New Revision: 199288 URL: http://svn.freebsd.org/changeset/base/199288 Log: - MFC r198320: Introduce new option BCE_JUMBO_HDRSPLIT that allows user to enable header in bce(4) instead of (ab)using ZERO_COPY_SOCKETS that was not into if_bce.c anyway. It is disabled by default. Modified: stable/8/sys/conf/NOTES stable/8/sys/conf/options stable/8/sys/dev/bce/if_bce.c stable/8/sys/dev/bce/if_bcereg.h Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) stable/8/sys/netinet6/ (props changed) Modified: stable/8/sys/conf/NOTES ============================================================================== --- stable/8/sys/conf/NOTES Sun Nov 15 11:07:22 2009 (r199287) +++ stable/8/sys/conf/NOTES Sun Nov 15 11:30:59 2009 (r199288) @@ -2023,6 +2023,12 @@ device lmc # only works for Tigon II chips, and has no effect for Tigon I chips. options TI_JUMBO_HDRSPLIT +# +# Use header splitting feature on bce(4) adapters. +# This may help to reduce the amount of jumbo-sized memory buffers used. +# +options BCE_JUMBO_HDRSPLIT + # These two options allow manipulating the mbuf cluster size and mbuf size, # respectively. Be very careful with NIC driver modules when changing # these from their default values, because that can potentially cause a Modified: stable/8/sys/conf/options ============================================================================== --- stable/8/sys/conf/options Sun Nov 15 11:07:22 2009 (r199287) +++ stable/8/sys/conf/options Sun Nov 15 11:30:59 2009 (r199288) @@ -511,6 +511,7 @@ DRM_DEBUG opt_drm.h ZERO_COPY_SOCKETS opt_zero.h TI_PRIVATE_JUMBOS opt_ti.h TI_JUMBO_HDRSPLIT opt_ti.h +BCE_JUMBO_HDRSPLIT opt_bce.h # XXX Conflict: # of devices vs network protocol (Native ATM). # This makes "atm.h" unusable. Modified: stable/8/sys/dev/bce/if_bce.c ============================================================================== --- stable/8/sys/dev/bce/if_bce.c Sun Nov 15 11:07:22 2009 (r199287) +++ stable/8/sys/dev/bce/if_bce.c Sun Nov 15 11:30:59 2009 (r199288) @@ -293,12 +293,12 @@ static void bce_dump_enet (str static void bce_dump_mbuf (struct bce_softc *, struct mbuf *); static void bce_dump_tx_mbuf_chain (struct bce_softc *, u16, int); static void bce_dump_rx_mbuf_chain (struct bce_softc *, u16, int); -#ifdef ZERO_COPY_SOCKETS +#ifdef BCE_JUMBO_HDRSPLIT static void bce_dump_pg_mbuf_chain (struct bce_softc *, u16, int); #endif static void bce_dump_txbd (struct bce_softc *, int, struct tx_bd *); static void bce_dump_rxbd (struct bce_softc *, int, struct rx_bd *); -#ifdef ZERO_COPY_SOCKETS +#ifdef BCE_JUMBO_HDRSPLIT static void bce_dump_pgbd (struct bce_softc *, int, struct rx_bd *); #endif static void bce_dump_l2fhdr (struct bce_softc *, int, struct l2_fhdr *); @@ -306,7 +306,7 @@ static void bce_dump_ctx (struct bce_s static void bce_dump_ftqs (struct bce_softc *); static void bce_dump_tx_chain (struct bce_softc *, u16, int); static void bce_dump_rx_chain (struct bce_softc *, u16, int); -#ifdef ZERO_COPY_SOCKETS +#ifdef BCE_JUMBO_HDRSPLIT static void bce_dump_pg_chain (struct bce_softc *, u16, int); #endif static void bce_dump_status_block (struct bce_softc *); @@ -393,7 +393,7 @@ static int bce_init_rx_chain (struct b static void bce_fill_rx_chain (struct bce_softc *); static void bce_free_rx_chain (struct bce_softc *); -#ifdef ZERO_COPY_SOCKETS +#ifdef BCE_JUMBO_HDRSPLIT static int bce_get_pg_buf (struct bce_softc *, struct mbuf *, u16 *, u16 *); static int bce_init_pg_chain (struct bce_softc *); static void bce_fill_pg_chain (struct bce_softc *); @@ -602,7 +602,7 @@ bce_print_adapter_info(struct bce_softc /* Firmware version and device features. */ printf("B/C (%s); Flags (", sc->bce_bc_ver); -#ifdef ZERO_COPY_SOCKETS +#ifdef BCE_JUMBO_HDRSPLIT printf("SPLT "); i++; #endif @@ -1066,7 +1066,7 @@ bce_attach(device_t dev) * This may change later if the MTU size is set to * something other than 1500. */ -#ifdef ZERO_COPY_SOCKETS +#ifdef BCE_JUMBO_HDRSPLIT sc->rx_bd_mbuf_alloc_size = MHLEN; /* Make sure offset is 16 byte aligned for hardware. */ sc->rx_bd_mbuf_align_pad = roundup2((MSIZE - MHLEN), 16) - @@ -2835,7 +2835,7 @@ bce_dma_free(struct bce_softc *sc) } -#ifdef ZERO_COPY_SOCKETS +#ifdef BCE_JUMBO_HDRSPLIT /* Free, unmap and destroy all page buffer descriptor chain pages. */ for (i = 0; i < PG_PAGES; i++ ) { if (sc->pg_bd_chain[i] != NULL) { @@ -2899,7 +2899,7 @@ bce_dma_free(struct bce_softc *sc) sc->rx_mbuf_tag = NULL; } -#ifdef ZERO_COPY_SOCKETS +#ifdef BCE_JUMBO_HDRSPLIT /* Unload and destroy the page mbuf maps. */ for (i = 0; i < TOTAL_PG_BD; i++) { if (sc->pg_mbuf_map[i] != NULL) { @@ -3345,7 +3345,7 @@ bce_dma_alloc(device_t dev) /* * Create a DMA tag for RX mbufs. */ -#ifdef ZERO_COPY_SOCKETS +#ifdef BCE_JUMBO_HDRSPLIT max_size = max_seg_size = ((sc->rx_bd_mbuf_alloc_size < MCLBYTES) ? MCLBYTES : sc->rx_bd_mbuf_alloc_size); #else @@ -3386,7 +3386,7 @@ bce_dma_alloc(device_t dev) } } -#ifdef ZERO_COPY_SOCKETS +#ifdef BCE_JUMBO_HDRSPLIT /* * Create a DMA tag for the page buffer descriptor chain, * allocate and clear the memory, and fetch the physical @@ -4473,7 +4473,7 @@ bce_stop(struct bce_softc *sc) bce_disable_intr(sc); /* Free RX buffers. */ -#ifdef ZERO_COPY_SOCKETS +#ifdef BCE_JUMBO_HDRSPLIT bce_free_pg_chain(sc); #endif bce_free_rx_chain(sc); @@ -4910,7 +4910,7 @@ bce_get_rx_buf(struct bce_softc *sc, str goto bce_get_rx_buf_exit); /* This is a new mbuf allocation. */ -#ifdef ZERO_COPY_SOCKETS +#ifdef BCE_JUMBO_HDRSPLIT MGETHDR(m_new, M_DONTWAIT, MT_DATA); #else if (sc->rx_bd_mbuf_alloc_size <= MCLBYTES) @@ -4991,7 +4991,7 @@ bce_get_rx_buf_exit: } -#ifdef ZERO_COPY_SOCKETS +#ifdef BCE_JUMBO_HDRSPLIT /****************************************************************************/ /* Encapsulate an mbuf cluster into the page chain. */ /* */ @@ -5100,7 +5100,7 @@ bce_get_pg_buf_exit: return(rc); } -#endif /* ZERO_COPY_SOCKETS */ +#endif /* BCE_JUMBO_HDRSPLIT */ /****************************************************************************/ /* Initialize the TX context memory. */ @@ -5456,7 +5456,7 @@ bce_free_rx_chain(struct bce_softc *sc) } -#ifdef ZERO_COPY_SOCKETS +#ifdef BCE_JUMBO_HDRSPLIT /****************************************************************************/ /* Allocate memory and initialize the page data structures. */ /* Assumes that bce_init_rx_chain() has not already been called. */ @@ -5620,7 +5620,7 @@ bce_free_pg_chain(struct bce_softc *sc) DBEXIT(BCE_VERBOSE_RESET | BCE_VERBOSE_RECV | BCE_VERBOSE_UNLOAD); } -#endif /* ZERO_COPY_SOCKETS */ +#endif /* BCE_JUMBO_HDRSPLIT */ /****************************************************************************/ @@ -5793,7 +5793,7 @@ bce_rx_intr(struct bce_softc *sc) unsigned int pkt_len; u16 sw_rx_cons, sw_rx_cons_idx, hw_rx_cons; u32 status; -#ifdef ZERO_COPY_SOCKETS +#ifdef BCE_JUMBO_HDRSPLIT unsigned int rem_len; u16 sw_pg_cons, sw_pg_cons_idx; #endif @@ -5809,7 +5809,7 @@ bce_rx_intr(struct bce_softc *sc) bus_dmamap_sync(sc->rx_bd_chain_tag, sc->rx_bd_chain_map[i], BUS_DMASYNC_POSTREAD); -#ifdef ZERO_COPY_SOCKETS +#ifdef BCE_JUMBO_HDRSPLIT /* Prepare the page chain pages to be accessed by the host CPU. */ for (int i = 0; i < PG_PAGES; i++) bus_dmamap_sync(sc->pg_bd_chain_tag, @@ -5821,7 +5821,7 @@ bce_rx_intr(struct bce_softc *sc) /* Get working copies of the driver's view of the consumer indices. */ sw_rx_cons = sc->rx_cons; -#ifdef ZERO_COPY_SOCKETS +#ifdef BCE_JUMBO_HDRSPLIT sw_pg_cons = sc->pg_cons; #endif @@ -5882,7 +5882,7 @@ bce_rx_intr(struct bce_softc *sc) */ m_adj(m0, sizeof(struct l2_fhdr) + ETHER_ALIGN); -#ifdef ZERO_COPY_SOCKETS +#ifdef BCE_JUMBO_HDRSPLIT /* * Check whether the received frame fits in a single * mbuf or not (i.e. packet data + FCS <= @@ -6056,7 +6056,7 @@ bce_rx_int_next_rx: if (m0) { /* Make sure we don't lose our place when we release the lock. */ sc->rx_cons = sw_rx_cons; -#ifdef ZERO_COPY_SOCKETS +#ifdef BCE_JUMBO_HDRSPLIT sc->pg_cons = sw_pg_cons; #endif @@ -6066,7 +6066,7 @@ bce_rx_int_next_rx: /* Recover our place. */ sw_rx_cons = sc->rx_cons; -#ifdef ZERO_COPY_SOCKETS +#ifdef BCE_JUMBO_HDRSPLIT sw_pg_cons = sc->pg_cons; #endif } @@ -6077,7 +6077,7 @@ bce_rx_int_next_rx: } /* No new packets to process. Refill the RX and page chains and exit. */ -#ifdef ZERO_COPY_SOCKETS +#ifdef BCE_JUMBO_HDRSPLIT sc->pg_cons = sw_pg_cons; bce_fill_pg_chain(sc); #endif @@ -6090,7 +6090,7 @@ bce_rx_int_next_rx: bus_dmamap_sync(sc->rx_bd_chain_tag, sc->rx_bd_chain_map[i], BUS_DMASYNC_PREWRITE); -#ifdef ZERO_COPY_SOCKETS +#ifdef BCE_JUMBO_HDRSPLIT for (int i = 0; i < PG_PAGES; i++) bus_dmamap_sync(sc->pg_bd_chain_tag, sc->pg_bd_chain_map[i], BUS_DMASYNC_PREWRITE); @@ -6336,7 +6336,7 @@ bce_init_locked(struct bce_softc *sc) * Calculate and program the hardware Ethernet MTU * size. Be generous on the receive if we have room. */ -#ifdef ZERO_COPY_SOCKETS +#ifdef BCE_JUMBO_HDRSPLIT if (ifp->if_mtu <= (sc->rx_bd_mbuf_data_len + sc->pg_bd_mbuf_alloc_size)) ether_mtu = sc->rx_bd_mbuf_data_len + sc->pg_bd_mbuf_alloc_size; #else @@ -6368,7 +6368,7 @@ bce_init_locked(struct bce_softc *sc) /* Program appropriate promiscuous/multicast filtering. */ bce_set_rx_mode(sc); -#ifdef ZERO_COPY_SOCKETS +#ifdef BCE_JUMBO_HDRSPLIT DBPRINT(sc, BCE_INFO_LOAD, "%s(): pg_bd_mbuf_alloc_size = %d\n", __FUNCTION__, sc->pg_bd_mbuf_alloc_size); @@ -6881,7 +6881,7 @@ bce_ioctl(struct ifnet *ifp, u_long comm BCE_LOCK(sc); ifp->if_mtu = ifr->ifr_mtu; ifp->if_drv_flags &= ~IFF_DRV_RUNNING; -#ifdef ZERO_COPY_SOCKETS +#ifdef BCE_JUMBO_HDRSPLIT /* No buffer allocation size changes are necessary. */ #else /* Recalculate our buffer allocation sizes. */ @@ -7584,7 +7584,7 @@ bce_tick(void *xsc) bce_stats_update(sc); /* Top off the receive and page chains. */ -#ifdef ZERO_COPY_SOCKETS +#ifdef BCE_JUMBO_HDRSPLIT bce_fill_pg_chain(sc); #endif bce_fill_rx_chain(sc); @@ -7764,7 +7764,7 @@ bce_sysctl_dump_tx_chain(SYSCTL_HANDLER_ } -#ifdef ZERO_COPY_SOCKETS +#ifdef BCE_JUMBO_HDRSPLIT /****************************************************************************/ /* Provides a sysctl interface to allow dumping the page chain. */ /* */ @@ -8392,7 +8392,7 @@ bce_add_sysctls(struct bce_softc *sc) (void *)sc, 0, bce_sysctl_dump_tx_chain, "I", "Dump tx_bd chain"); -#ifdef ZERO_COPY_SOCKETS +#ifdef BCE_JUMBO_HDRSPLIT SYSCTL_ADD_PROC(ctx, children, OID_AUTO, "dump_pg_chain", CTLTYPE_INT | CTLFLAG_RW, (void *)sc, 0, @@ -8687,7 +8687,7 @@ bce_dump_rx_mbuf_chain(struct bce_softc } -#ifdef ZERO_COPY_SOCKETS +#ifdef BCE_JUMBO_HDRSPLIT /****************************************************************************/ /* Prints out the mbufs in the mbuf page chain. */ /* */ @@ -8811,7 +8811,7 @@ bce_dump_rxbd(struct bce_softc *sc, int } -#ifdef ZERO_COPY_SOCKETS +#ifdef BCE_JUMBO_HDRSPLIT /****************************************************************************/ /* Prints out a rx_bd structure in the page chain. */ /* */ @@ -9298,7 +9298,7 @@ bce_dump_rx_chain(struct bce_softc *sc, } -#ifdef ZERO_COPY_SOCKETS +#ifdef BCE_JUMBO_HDRSPLIT /****************************************************************************/ /* Prints out the page chain. */ /* */ @@ -9779,7 +9779,7 @@ bce_dump_driver_state(struct bce_softc * "0x%08X:%08X - (sc->rx_bd_chain) rx_bd chain virtual address\n", val_hi, val_lo); -#ifdef ZERO_COPY_SOCKETS +#ifdef BCE_JUMBO_HDRSPLIT val_hi = BCE_ADDR_HI(sc->pg_bd_chain); val_lo = BCE_ADDR_LO(sc->pg_bd_chain); BCE_PRINTF( @@ -9799,7 +9799,7 @@ bce_dump_driver_state(struct bce_softc * "0x%08X:%08X - (sc->rx_mbuf_ptr) rx mbuf chain virtual address\n", val_hi, val_lo); -#ifdef ZERO_COPY_SOCKETS +#ifdef BCE_JUMBO_HDRSPLIT val_hi = BCE_ADDR_HI(sc->pg_mbuf_ptr); val_lo = BCE_ADDR_LO(sc->pg_mbuf_ptr); BCE_PRINTF( @@ -9852,7 +9852,7 @@ bce_dump_driver_state(struct bce_softc * BCE_PRINTF(" 0x%08X - (sc->free_rx_bd) free rx_bd's\n", sc->free_rx_bd); -#ifdef ZERO_COPY_SOCKETS +#ifdef BCE_JUMBO_HDRSPLIT BCE_PRINTF(" 0x%04X(0x%04X) - (sc->pg_prod) page producer index\n", sc->pg_prod, (u16) PG_CHAIN_IDX(sc->pg_prod)); @@ -10358,7 +10358,7 @@ bce_breakpoint(struct bce_softc *sc) bce_dump_tpat_state(sc, 0); bce_dump_cp_state(sc, 0); bce_dump_com_state(sc, 0); -#ifdef ZERO_COPY_SOCKETS +#ifdef BCE_JUMBO_HDRSPLIT bce_dump_pgbd(sc, 0, NULL); bce_dump_pg_mbuf_chain(sc, 0, USABLE_PG_BD); bce_dump_pg_chain(sc, 0, USABLE_PG_BD); Modified: stable/8/sys/dev/bce/if_bcereg.h ============================================================================== --- stable/8/sys/dev/bce/if_bcereg.h Sun Nov 15 11:07:22 2009 (r199287) +++ stable/8/sys/dev/bce/if_bcereg.h Sun Nov 15 11:30:59 2009 (r199288) @@ -6216,7 +6216,7 @@ struct l2_fhdr { #define RX_PAGE(x) (((x) & ~USABLE_RX_BD_PER_PAGE) >> (BCM_PAGE_BITS - 4)) #define RX_IDX(x) ((x) & USABLE_RX_BD_PER_PAGE) -#ifdef ZERO_COPY_SOCKETS +#ifdef BCE_JUMBO_HDRSPLIT /* * To accomodate jumbo frames, the page chain should * be 4 times larger than the receive chain. @@ -6238,7 +6238,7 @@ struct l2_fhdr { #define PG_PAGE(x) (((x) & ~USABLE_PG_BD_PER_PAGE) >> (BCM_PAGE_BITS - 4)) #define PG_IDX(x) ((x) & USABLE_PG_BD_PER_PAGE) -#endif /* ZERO_COPY_SOCKETS */ +#endif /* BCE_JUMBO_HDRSPLIT */ #define CTX_INIT_RETRY_COUNT 10 @@ -6517,7 +6517,7 @@ struct bce_softc u16 tx_cons; u32 tx_prod_bseq; /* Counts the bytes used. */ -#ifdef ZERO_COPY_SOCKETS +#ifdef BCE_JUMBO_HDRSPLIT u16 pg_prod; u16 pg_cons; #endif @@ -6534,7 +6534,7 @@ struct bce_softc int rx_bd_mbuf_data_len; int rx_bd_mbuf_align_pad; -#ifdef ZERO_COPY_SOCKETS +#ifdef BCE_JUMBO_HDRSPLIT int pg_bd_mbuf_alloc_size; #endif @@ -6556,7 +6556,7 @@ struct bce_softc struct rx_bd *rx_bd_chain[RX_PAGES]; bus_addr_t rx_bd_chain_paddr[RX_PAGES]; -#ifdef ZERO_COPY_SOCKETS +#ifdef BCE_JUMBO_HDRSPLIT /* H/W maintained page buffer descriptor chain structure. */ bus_dma_tag_t pg_bd_chain_tag; bus_dmamap_t pg_bd_chain_map[PG_PAGES]; @@ -6593,7 +6593,7 @@ struct bce_softc bus_dma_tag_t rx_mbuf_tag; bus_dma_tag_t tx_mbuf_tag; -#ifdef ZERO_COPY_SOCKETS +#ifdef BCE_JUMBO_HDRSPLIT bus_dma_tag_t pg_mbuf_tag; #endif @@ -6605,7 +6605,7 @@ struct bce_softc bus_dmamap_t rx_mbuf_map[TOTAL_RX_BD]; struct mbuf *rx_mbuf_ptr[TOTAL_RX_BD]; -#ifdef ZERO_COPY_SOCKETS +#ifdef BCE_JUMBO_HDRSPLIT /* S/W maintained mbuf page chain structure. */ bus_dmamap_t pg_mbuf_map[TOTAL_PG_BD]; struct mbuf *pg_mbuf_ptr[TOTAL_PG_BD]; @@ -6617,7 +6617,7 @@ struct bce_softc u16 used_tx_bd; u16 max_tx_bd; -#ifdef ZERO_COPY_SOCKETS +#ifdef BCE_JUMBO_HDRSPLIT u16 free_pg_bd; u16 max_pg_bd; #endif @@ -6705,7 +6705,7 @@ struct bce_softc int debug_tx_mbuf_alloc; int debug_rx_mbuf_alloc; -#ifdef ZERO_COPY_SOCKETS +#ifdef BCE_JUMBO_HDRSPLIT int debug_pg_mbuf_alloc; #endif @@ -6722,7 +6722,7 @@ struct bce_softc u32 rx_low_watermark; /* Lowest number of rx_bd's free. */ u32 rx_empty_count; /* Number of times the RX chain was empty. */ -#ifdef ZERO_COPY_SOCKETS +#ifdef BCE_JUMBO_HDRSPLIT u32 pg_low_watermark; /* Lowest number of pages free. */ u32 pg_empty_count; /* Number of times the page chain was empty. */ #endif From owner-svn-src-stable-8@FreeBSD.ORG Sun Nov 15 14:11:27 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 89D551065670; Sun, 15 Nov 2009 14:11:27 +0000 (UTC) (envelope-from jh@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 78C8B8FC1C; Sun, 15 Nov 2009 14:11:27 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nAFEBRbq039615; Sun, 15 Nov 2009 14:11:27 GMT (envelope-from jh@svn.freebsd.org) Received: (from jh@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nAFEBRhI039614; Sun, 15 Nov 2009 14:11:27 GMT (envelope-from jh@svn.freebsd.org) Message-Id: <200911151411.nAFEBRhI039614@svn.freebsd.org> From: Jaakko Heinonen Date: Sun, 15 Nov 2009 14:11:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r199290 - stable/8/usr.bin/systat X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 15 Nov 2009 14:11:27 -0000 Author: jh Date: Sun Nov 15 14:11:26 2009 New Revision: 199290 URL: http://svn.freebsd.org/changeset/base/199290 Log: MFC r197956: - Catch SIGHUP to perform cleanup before exiting. - Exit if getch() returns with an error other than EINTR. Otherwise systat(1) may get stuck in an infinite loop if it doesn't receive SIGHUP when terminal closes. - Remove attempt to clear stdio error indicators. getch() doesn't use stdio, making it useless. - Remove unneeded masking of getch() return value. PR: bin/107171 Approved by: trasz (mentor) Modified: stable/8/usr.bin/systat/keyboard.c stable/8/usr.bin/systat/main.c Directory Properties: stable/8/usr.bin/systat/ (props changed) Modified: stable/8/usr.bin/systat/keyboard.c ============================================================================== --- stable/8/usr.bin/systat/keyboard.c Sun Nov 15 11:43:28 2009 (r199289) +++ stable/8/usr.bin/systat/keyboard.c Sun Nov 15 14:11:26 2009 (r199290) @@ -39,8 +39,10 @@ __FBSDID("$FreeBSD$"); static const char sccsid[] = "@(#)keyboard.c 8.1 (Berkeley) 6/6/93"; #endif +#include #include #include +#include #include #include "systat.h" @@ -57,10 +59,11 @@ keyboard(void) move(CMDLINE, 0); do { refresh(); - ch = getch() & 0177; - if (ch == 0177 && ferror(stdin)) { - clearerr(stdin); - continue; + ch = getch(); + if (ch == ERR) { + if (errno == EINTR) + continue; + exit(1); } if (ch >= 'A' && ch <= 'Z') ch += 'a' - 'A'; Modified: stable/8/usr.bin/systat/main.c ============================================================================== --- stable/8/usr.bin/systat/main.c Sun Nov 15 11:43:28 2009 (r199289) +++ stable/8/usr.bin/systat/main.c Sun Nov 15 14:11:26 2009 (r199290) @@ -133,6 +133,7 @@ main(int argc, char **argv) exit(1); } } + signal(SIGHUP, die); signal(SIGINT, die); signal(SIGQUIT, die); signal(SIGTERM, die); From owner-svn-src-stable-8@FreeBSD.ORG Sun Nov 15 19:26:07 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 37F601065676; Sun, 15 Nov 2009 19:26:07 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 0CB4C8FC1B; Sun, 15 Nov 2009 19:26:07 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nAFJQ6CJ045984; Sun, 15 Nov 2009 19:26:06 GMT (envelope-from rmacklem@svn.freebsd.org) Received: (from rmacklem@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nAFJQ6jf045982; Sun, 15 Nov 2009 19:26:06 GMT (envelope-from rmacklem@svn.freebsd.org) Message-Id: <200911151926.nAFJQ6jf045982@svn.freebsd.org> From: Rick Macklem Date: Sun, 15 Nov 2009 19:26:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r199293 - stable/8/sys/rpc X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 15 Nov 2009 19:26:07 -0000 Author: rmacklem Date: Sun Nov 15 19:26:06 2009 New Revision: 199293 URL: http://svn.freebsd.org/changeset/base/199293 Log: MFC: r199053 Add a check for the connection being shut down to the krpc client just before queuing a request for the connection. The code already had a check for the connection being shut down while the request was queued, but not one for the shut down having been initiated by the server before the request was in the queue. This fixes some cases of problems w.r.t. reconnecting to a NFS server that drops inactive TCP connections. Tested by: Olaf Seibert, Daniel Braniss Reviewed by: dfr Modified: stable/8/sys/rpc/clnt_vc.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) stable/8/sys/netinet6/ (props changed) Modified: stable/8/sys/rpc/clnt_vc.c ============================================================================== --- stable/8/sys/rpc/clnt_vc.c Sun Nov 15 18:31:57 2009 (r199292) +++ stable/8/sys/rpc/clnt_vc.c Sun Nov 15 19:26:06 2009 (r199293) @@ -413,6 +413,22 @@ call_again: cr->cr_xid = xid; mtx_lock(&ct->ct_lock); + /* + * Check to see if the other end has already started to close down + * the connection. The upcall will have set ct_error.re_status + * to RPC_CANTRECV if this is the case. + * If the other end starts to close down the connection after this + * point, it will be detected later when cr_error is checked, + * since the request is in the ct_pending queue. + */ + if (ct->ct_error.re_status == RPC_CANTRECV) { + if (errp != &ct->ct_error) { + errp->re_errno = ct->ct_error.re_errno; + errp->re_status = RPC_CANTRECV; + } + stat = RPC_CANTRECV; + goto out; + } TAILQ_INSERT_TAIL(&ct->ct_pending, cr, cr_link); mtx_unlock(&ct->ct_lock); From owner-svn-src-stable-8@FreeBSD.ORG Sun Nov 15 23:48:29 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A5A19106566C; Sun, 15 Nov 2009 23:48:29 +0000 (UTC) (envelope-from dougb@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 93EC78FC13; Sun, 15 Nov 2009 23:48:29 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nAFNmTpB051399; Sun, 15 Nov 2009 23:48:29 GMT (envelope-from dougb@svn.freebsd.org) Received: (from dougb@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nAFNmTc7051397; Sun, 15 Nov 2009 23:48:29 GMT (envelope-from dougb@svn.freebsd.org) Message-Id: <200911152348.nAFNmTc7051397@svn.freebsd.org> From: Doug Barton Date: Sun, 15 Nov 2009 23:48:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r199300 - stable/8/share/man/man5 X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 15 Nov 2009 23:48:29 -0000 Author: dougb Date: Sun Nov 15 23:48:29 2009 New Revision: 199300 URL: http://svn.freebsd.org/changeset/base/199300 Log: MFC r199127: Add a note about no hostname leading to "Amnesiac" on the console The text is inspired by the PR, but more in line with the existing text PR: docs/140434 Submitted by: Jason Helfman MFC r199152: s/a default/the default/ Submitted by: remko MFC r199299: In r199127/r199152 I forgot to bump .Dd Modified: stable/8/share/man/man5/rc.conf.5 Directory Properties: stable/8/share/man/man5/ (props changed) Modified: stable/8/share/man/man5/rc.conf.5 ============================================================================== --- stable/8/share/man/man5/rc.conf.5 Sun Nov 15 23:31:07 2009 (r199299) +++ stable/8/share/man/man5/rc.conf.5 Sun Nov 15 23:48:29 2009 (r199300) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd September 17, 2009 +.Dd November 11, 2009 .Dt RC.CONF 5 .Os .Sh NAME @@ -351,6 +351,9 @@ If .Xr dhclient 8 is used to set the hostname via DHCP, this variable should be set to an empty string. +If this value remains unset when the system is done booting +your console login will display the default hostname of +.Dq Amnesiac. .It Va ipv6_enable .Pq Vt bool Enable support for IPv6 networking. From owner-svn-src-stable-8@FreeBSD.ORG Mon Nov 16 03:52:18 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B1E46106568F; Mon, 16 Nov 2009 03:52:18 +0000 (UTC) (envelope-from ume@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 9F4C68FC12; Mon, 16 Nov 2009 03:52:18 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nAG3qIAO056688; Mon, 16 Nov 2009 03:52:18 GMT (envelope-from ume@svn.freebsd.org) Received: (from ume@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nAG3qI7K056684; Mon, 16 Nov 2009 03:52:18 GMT (envelope-from ume@svn.freebsd.org) Message-Id: <200911160352.nAG3qI7K056684@svn.freebsd.org> From: Hajimu UMEMOTO Date: Mon, 16 Nov 2009 03:52:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r199307 - stable/8/lib/libc/nls X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 Nov 2009 03:52:18 -0000 Author: ume Date: Mon Nov 16 03:52:18 2009 New Revision: 199307 URL: http://svn.freebsd.org/changeset/base/199307 Log: MFC r199080, r199081, r199082: Add ja_JP.UTF-8 and ja_JP.eucJP catalogs. Added: stable/8/lib/libc/nls/ja_JP.UTF-8.msg - copied, changed from r199080, head/lib/libc/nls/ja_JP.UTF-8.msg stable/8/lib/libc/nls/ja_JP.eucJP.msg - copied, changed from r199081, head/lib/libc/nls/ja_JP.eucJP.msg Modified: stable/8/lib/libc/nls/Makefile.inc Directory Properties: stable/8/lib/libc/ (props changed) stable/8/lib/libc/stdtime/ (props changed) Modified: stable/8/lib/libc/nls/Makefile.inc ============================================================================== --- stable/8/lib/libc/nls/Makefile.inc Mon Nov 16 03:36:54 2009 (r199306) +++ stable/8/lib/libc/nls/Makefile.inc Mon Nov 16 03:52:18 2009 (r199307) @@ -22,6 +22,8 @@ NLS+= fi_FI.ISO8859-1 NLS+= fr_FR.ISO8859-1 NLS+= hu_HU.ISO8859-2 NLS+= it_IT.ISO8859-15 +NLS+= ja_JP.UTF-8 +NLS+= ja_JP.eucJP NLS+= ko_KR.UTF-8 NLS+= ko_KR.eucKR NLS+= mn_MN.UTF-8 Copied and modified: stable/8/lib/libc/nls/ja_JP.UTF-8.msg (from r199080, head/lib/libc/nls/ja_JP.UTF-8.msg) ============================================================================== --- head/lib/libc/nls/ja_JP.UTF-8.msg Mon Nov 9 12:28:59 2009 (r199080, copy source) +++ stable/8/lib/libc/nls/ja_JP.UTF-8.msg Mon Nov 16 03:52:18 2009 (r199307) @@ -1,6 +1,6 @@ $ $FreeBSD$ $ -$ Message catalog for C locale (template) +$ Message catalog for ja_JP.UTF-8 locale $ $ strerror() support catalog $ Copied and modified: stable/8/lib/libc/nls/ja_JP.eucJP.msg (from r199081, head/lib/libc/nls/ja_JP.eucJP.msg) ============================================================================== --- head/lib/libc/nls/ja_JP.eucJP.msg Mon Nov 9 12:33:47 2009 (r199081, copy source) +++ stable/8/lib/libc/nls/ja_JP.eucJP.msg Mon Nov 16 03:52:18 2009 (r199307) @@ -1,6 +1,6 @@ $ $FreeBSD$ $ -$ Message catalog for C locale (template) +$ Message catalog for ja_JP.eucJP locale $ $ strerror() support catalog $ From owner-svn-src-stable-8@FreeBSD.ORG Mon Nov 16 08:26:56 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C0E121065672; Mon, 16 Nov 2009 08:26:56 +0000 (UTC) (envelope-from brueffer@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id AF6D28FC14; Mon, 16 Nov 2009 08:26:56 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nAG8QuNQ062584; Mon, 16 Nov 2009 08:26:56 GMT (envelope-from brueffer@svn.freebsd.org) Received: (from brueffer@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nAG8Qu0R062582; Mon, 16 Nov 2009 08:26:56 GMT (envelope-from brueffer@svn.freebsd.org) Message-Id: <200911160826.nAG8Qu0R062582@svn.freebsd.org> From: Christian Brueffer Date: Mon, 16 Nov 2009 08:26:56 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r199314 - stable/8/lib/libc/gen X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 Nov 2009 08:26:56 -0000 Author: brueffer Date: Mon Nov 16 08:26:56 2009 New Revision: 199314 URL: http://svn.freebsd.org/changeset/base/199314 Log: MFC: r199046 Fix a copy+paste error by checking the correct variable against MM_NULLACT. Modified: stable/8/lib/libc/gen/fmtmsg.c Directory Properties: stable/8/lib/libc/ (props changed) stable/8/lib/libc/stdtime/ (props changed) Modified: stable/8/lib/libc/gen/fmtmsg.c ============================================================================== --- stable/8/lib/libc/gen/fmtmsg.c Mon Nov 16 06:12:49 2009 (r199313) +++ stable/8/lib/libc/gen/fmtmsg.c Mon Nov 16 08:26:56 2009 (r199314) @@ -128,7 +128,7 @@ printfmt(char *msgverb, long class, cons size += strlen(sevname); if (text != MM_NULLTXT) size += strlen(text); - if (text != MM_NULLACT) + if (act != MM_NULLACT) size += strlen(act); if (tag != MM_NULLTAG) size += strlen(tag); From owner-svn-src-stable-8@FreeBSD.ORG Mon Nov 16 18:58:46 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 16425106566B; Mon, 16 Nov 2009 18:58:46 +0000 (UTC) (envelope-from jfv@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id DEEC58FC12; Mon, 16 Nov 2009 18:58:45 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nAGIwjBE078579; Mon, 16 Nov 2009 18:58:45 GMT (envelope-from jfv@svn.freebsd.org) Received: (from jfv@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nAGIwjiQ078577; Mon, 16 Nov 2009 18:58:45 GMT (envelope-from jfv@svn.freebsd.org) Message-Id: <200911161858.nAGIwjiQ078577@svn.freebsd.org> From: Jack F Vogel Date: Mon, 16 Nov 2009 18:58:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r199327 - stable/8/sys/dev/e1000 X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 Nov 2009 18:58:46 -0000 Author: jfv Date: Mon Nov 16 18:58:45 2009 New Revision: 199327 URL: http://svn.freebsd.org/changeset/base/199327 Log: On a 32 bit kernel the igb driver may cause a page fault panic due to a failed bounce page allocation during RX mbuf setup. The large demand on bounce pages is due to the alignment requirement in the tag. This restriction was removed in the ixgbe driver with no ill effects and so is being removed here also. Modified: stable/8/sys/dev/e1000/if_igb.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) stable/8/sys/netinet6/ (props changed) Modified: stable/8/sys/dev/e1000/if_igb.c ============================================================================== --- stable/8/sys/dev/e1000/if_igb.c Mon Nov 16 18:50:51 2009 (r199326) +++ stable/8/sys/dev/e1000/if_igb.c Mon Nov 16 18:58:45 2009 (r199327) @@ -2654,7 +2654,7 @@ igb_dma_malloc(struct adapter *adapter, int error; error = bus_dma_tag_create(bus_get_dma_tag(adapter->dev), /* parent */ - IGB_DBA_ALIGN, 0, /* alignment, bounds */ + 1, 0, /* alignment, bounds */ BUS_SPACE_MAXADDR, /* lowaddr */ BUS_SPACE_MAXADDR, /* highaddr */ NULL, NULL, /* filter, filterarg */ @@ -2867,7 +2867,7 @@ igb_allocate_transmit_buffers(struct tx_ * Setup DMA descriptor areas. */ if ((error = bus_dma_tag_create(NULL, /* parent */ - PAGE_SIZE, 0, /* alignment, bounds */ + 1, 0, /* alignment, bounds */ BUS_SPACE_MAXADDR, /* lowaddr */ BUS_SPACE_MAXADDR, /* highaddr */ NULL, NULL, /* filter, filterarg */ @@ -3554,7 +3554,7 @@ igb_allocate_receive_buffers(struct rx_r ** it may not always use this. */ if ((error = bus_dma_tag_create(NULL, /* parent */ - PAGE_SIZE, 0, /* alignment, bounds */ + 1, 0, /* alignment, bounds */ BUS_SPACE_MAXADDR, /* lowaddr */ BUS_SPACE_MAXADDR, /* highaddr */ NULL, NULL, /* filter, filterarg */ From owner-svn-src-stable-8@FreeBSD.ORG Tue Nov 17 09:35:13 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id F1CD61065670; Tue, 17 Nov 2009 09:35:13 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id E02348FC08; Tue, 17 Nov 2009 09:35:13 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nAH9ZDWC098543; Tue, 17 Nov 2009 09:35:13 GMT (envelope-from avg@svn.freebsd.org) Received: (from avg@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nAH9ZDB3098540; Tue, 17 Nov 2009 09:35:13 GMT (envelope-from avg@svn.freebsd.org) Message-Id: <200911170935.nAH9ZDB3098540@svn.freebsd.org> From: Andriy Gapon Date: Tue, 17 Nov 2009 09:35:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r199352 - in stable/8/sys: dev/ichwd modules/ichwd X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Nov 2009 09:35:14 -0000 Author: avg Date: Tue Nov 17 09:35:13 2009 New Revision: 199352 URL: http://svn.freebsd.org/changeset/base/199352 Log: MFC r199015: ichwd: don't attach to isa pnp device(s) by accident Modified: stable/8/sys/dev/ichwd/ichwd.c stable/8/sys/modules/ichwd/Makefile Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) stable/8/sys/netinet6/ (props changed) Modified: stable/8/sys/dev/ichwd/ichwd.c ============================================================================== --- stable/8/sys/dev/ichwd/ichwd.c Tue Nov 17 07:29:35 2009 (r199351) +++ stable/8/sys/dev/ichwd/ichwd.c Tue Nov 17 09:35:13 2009 (r199352) @@ -68,6 +68,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include #include @@ -393,7 +394,9 @@ static int ichwd_probe(device_t dev) { - (void)dev; + /* Do not claim some ISA PnP device by accident. */ + if (isa_get_logicalid(dev) != 0) + return (ENXIO); return (0); } Modified: stable/8/sys/modules/ichwd/Makefile ============================================================================== --- stable/8/sys/modules/ichwd/Makefile Tue Nov 17 07:29:35 2009 (r199351) +++ stable/8/sys/modules/ichwd/Makefile Tue Nov 17 09:35:13 2009 (r199352) @@ -3,6 +3,6 @@ .PATH: ${.CURDIR}/../../dev/ichwd KMOD= ichwd -SRCS= ichwd.c device_if.h bus_if.h pci_if.h +SRCS= ichwd.c device_if.h bus_if.h pci_if.h isa_if.h .include From owner-svn-src-stable-8@FreeBSD.ORG Tue Nov 17 10:59:52 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 007D81065670; Tue, 17 Nov 2009 10:59:52 +0000 (UTC) (envelope-from bms@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id C99038FC15; Tue, 17 Nov 2009 10:59:51 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nAHAxpJa004234; Tue, 17 Nov 2009 10:59:51 GMT (envelope-from bms@svn.freebsd.org) Received: (from bms@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nAHAxpRK004232; Tue, 17 Nov 2009 10:59:51 GMT (envelope-from bms@svn.freebsd.org) Message-Id: <200911171059.nAHAxpRK004232@svn.freebsd.org> From: Bruce M Simpson Date: Tue, 17 Nov 2009 10:59:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r199354 - stable/8/sys/netinet X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Nov 2009 10:59:52 -0000 Author: bms Date: Tue Nov 17 10:59:51 2009 New Revision: 199354 URL: http://svn.freebsd.org/changeset/base/199354 Log: MFC r199287: Fix a functional regression in multicast. Userland daemons need to see IGMP traffic regardless of the group; omit the imo filter check if the proto is IGMP. The kernel part of IGMP will have already filtered appropriately at this point. Submitted by: Franz Struwig Reported by: Ivor Prebeg, Franz Struwig Modified: stable/8/sys/netinet/raw_ip.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) stable/8/sys/netinet6/ (props changed) Modified: stable/8/sys/netinet/raw_ip.c ============================================================================== --- stable/8/sys/netinet/raw_ip.c Tue Nov 17 09:37:43 2009 (r199353) +++ stable/8/sys/netinet/raw_ip.c Tue Nov 17 10:59:51 2009 (r199354) @@ -343,17 +343,35 @@ rip_input(struct mbuf *m, int off) */ if (inp->inp_moptions != NULL && IN_MULTICAST(ntohl(ip->ip_dst.s_addr))) { - struct sockaddr_in group; + /* + * If the incoming datagram is for IGMP, allow it + * through unconditionally to the raw socket. + * + * In the case of IGMPv2, we may not have explicitly + * joined the group, and may have set IFF_ALLMULTI + * on the interface. imo_multi_filter() may discard + * control traffic we actually need to see. + * + * Userland multicast routing daemons should continue + * filter the control traffic appropriately. + */ int blocked; - bzero(&group, sizeof(struct sockaddr_in)); - group.sin_len = sizeof(struct sockaddr_in); - group.sin_family = AF_INET; - group.sin_addr = ip->ip_dst; - - blocked = imo_multi_filter(inp->inp_moptions, ifp, - (struct sockaddr *)&group, - (struct sockaddr *)&ripsrc); + blocked = MCAST_PASS; + if (proto != IPPROTO_IGMP) { + struct sockaddr_in group; + + bzero(&group, sizeof(struct sockaddr_in)); + group.sin_len = sizeof(struct sockaddr_in); + group.sin_family = AF_INET; + group.sin_addr = ip->ip_dst; + + blocked = imo_multi_filter(inp->inp_moptions, + ifp, + (struct sockaddr *)&group, + (struct sockaddr *)&ripsrc); + } + if (blocked != MCAST_PASS) { IPSTAT_INC(ips_notmember); continue; From owner-svn-src-stable-8@FreeBSD.ORG Tue Nov 17 11:43:53 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5841F1065697; Tue, 17 Nov 2009 11:43:53 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 474378FC1E; Tue, 17 Nov 2009 11:43:53 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nAHBhrC1005265; Tue, 17 Nov 2009 11:43:53 GMT (envelope-from kib@svn.freebsd.org) Received: (from kib@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nAHBhrGW005263; Tue, 17 Nov 2009 11:43:53 GMT (envelope-from kib@svn.freebsd.org) Message-Id: <200911171143.nAHBhrGW005263@svn.freebsd.org> From: Konstantin Belousov Date: Tue, 17 Nov 2009 11:43:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r199356 - stable/8/sys/kern X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Nov 2009 11:43:53 -0000 Author: kib Date: Tue Nov 17 11:43:53 2009 New Revision: 199356 URL: http://svn.freebsd.org/changeset/base/199356 Log: MFC r198853: If socket buffer space appears to be lower then sum of count of already prepared bytes and next portion of transfer, inner loop of kern_sendfile() aborts, not preparing next mbuf for socket buffer, and not modifying any outer loop invariants. The thread loops in the outer loop forever. Instead of breaking from inner loop, prepare only bytes that fit into the socket buffer space. Modified: stable/8/sys/kern/uipc_syscalls.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) stable/8/sys/netinet6/ (props changed) Modified: stable/8/sys/kern/uipc_syscalls.c ============================================================================== --- stable/8/sys/kern/uipc_syscalls.c Tue Nov 17 11:39:15 2009 (r199355) +++ stable/8/sys/kern/uipc_syscalls.c Tue Nov 17 11:43:53 2009 (r199356) @@ -2036,20 +2036,12 @@ retry_space: rem = obj->un_pager.vnp.vnp_size - uap->offset - fsbytes - loopbytes; xfsize = omin(rem, xfsize); + xfsize = omin(space - loopbytes, xfsize); if (xfsize <= 0) { VM_OBJECT_UNLOCK(obj); done = 1; /* all data sent */ break; } - /* - * Don't overflow the send buffer. - * Stop here and send out what we've - * already got. - */ - if (space < loopbytes + xfsize) { - VM_OBJECT_UNLOCK(obj); - break; - } /* * Attempt to look up the page. Allocate From owner-svn-src-stable-8@FreeBSD.ORG Tue Nov 17 11:46:55 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A814B106566C; Tue, 17 Nov 2009 11:46:55 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 96FAB8FC19; Tue, 17 Nov 2009 11:46:55 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nAHBktHp005397; Tue, 17 Nov 2009 11:46:55 GMT (envelope-from kib@svn.freebsd.org) Received: (from kib@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nAHBktNV005395; Tue, 17 Nov 2009 11:46:55 GMT (envelope-from kib@svn.freebsd.org) Message-Id: <200911171146.nAHBktNV005395@svn.freebsd.org> From: Konstantin Belousov Date: Tue, 17 Nov 2009 11:46:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r199357 - stable/8/sys/kern X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Nov 2009 11:46:55 -0000 Author: kib Date: Tue Nov 17 11:46:55 2009 New Revision: 199357 URL: http://svn.freebsd.org/changeset/base/199357 Log: MFC r199137: Detect the slashdot lookup for RENAME or REMOVE in lookup(), and return EINVAL. Modified: stable/8/sys/kern/vfs_lookup.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) stable/8/sys/netinet6/ (props changed) Modified: stable/8/sys/kern/vfs_lookup.c ============================================================================== --- stable/8/sys/kern/vfs_lookup.c Tue Nov 17 11:43:53 2009 (r199356) +++ stable/8/sys/kern/vfs_lookup.c Tue Nov 17 11:46:55 2009 (r199357) @@ -552,6 +552,12 @@ dirloop: else cnp->cn_flags &= ~ISLASTCN; + if ((cnp->cn_flags & ISLASTCN) != 0 && + cnp->cn_namelen == 1 && cnp->cn_nameptr[0] == '.' && + (cnp->cn_nameiop == DELETE || cnp->cn_nameiop == RENAME)) { + error = EINVAL; + goto bad; + } /* * Check for degenerate name (e.g. / or "") From owner-svn-src-stable-8@FreeBSD.ORG Tue Nov 17 12:18:14 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C719E106568B; Tue, 17 Nov 2009 12:18:14 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id B621B8FC13; Tue, 17 Nov 2009 12:18:14 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nAHCIEJt006419; Tue, 17 Nov 2009 12:18:14 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nAHCIEtX006417; Tue, 17 Nov 2009 12:18:14 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <200911171218.nAHCIEtX006417@svn.freebsd.org> From: Alexander Motin Date: Tue, 17 Nov 2009 12:18:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r199360 - stable/8/sys/dev/ata X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Nov 2009 12:18:14 -0000 Author: mav Date: Tue Nov 17 12:18:14 2009 New Revision: 199360 URL: http://svn.freebsd.org/changeset/base/199360 Log: MFC r198519: Don't ignore the return value of g_modevent() in acd_modevent(). Modified: stable/8/sys/dev/ata/atapi-cd.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) stable/8/sys/netinet6/ (props changed) Modified: stable/8/sys/dev/ata/atapi-cd.c ============================================================================== --- stable/8/sys/dev/ata/atapi-cd.c Tue Nov 17 12:11:12 2009 (r199359) +++ stable/8/sys/dev/ata/atapi-cd.c Tue Nov 17 12:18:14 2009 (r199360) @@ -1905,8 +1905,7 @@ static devclass_t acd_devclass; static int acd_modevent(module_t mod, int what, void *arg) { - g_modevent(0, what, &acd_class); - return 0; + return g_modevent(0, what, &acd_class); } DRIVER_MODULE(acd, ata, acd_driver, acd_devclass, acd_modevent, NULL); From owner-svn-src-stable-8@FreeBSD.ORG Tue Nov 17 12:23:14 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D1067106566C; Tue, 17 Nov 2009 12:23:14 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id A6AF38FC0A; Tue, 17 Nov 2009 12:23:14 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nAHCNEsG006585; Tue, 17 Nov 2009 12:23:14 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nAHCNEnu006583; Tue, 17 Nov 2009 12:23:14 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <200911171223.nAHCNEnu006583@svn.freebsd.org> From: Alexander Motin Date: Tue, 17 Nov 2009 12:23:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r199361 - stable/8/sys/dev/ata X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Nov 2009 12:23:14 -0000 Author: mav Date: Tue Nov 17 12:23:14 2009 New Revision: 199361 URL: http://svn.freebsd.org/changeset/base/199361 Log: MFC r198582: Turn off use of ATA_A_4BIT on modern hardware. This flag was already obsoleted in 1996 by ATA-2, and crashes some modern hardware like some revisions of the Serverworks K2 SATA controller. Even very ancient hardware seems not to require it. In the unlikely event this causes problems, the previous behavior can be re-enabled by defining ATA_LEGACY_SUPPORT at the top of this file. Modified: stable/8/sys/dev/ata/ata-all.h Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) stable/8/sys/netinet6/ (props changed) Modified: stable/8/sys/dev/ata/ata-all.h ============================================================================== --- stable/8/sys/dev/ata/ata-all.h Tue Nov 17 12:18:14 2009 (r199360) +++ stable/8/sys/dev/ata/ata-all.h Tue Nov 17 12:23:14 2009 (r199361) @@ -26,6 +26,11 @@ * $FreeBSD$ */ +#if 0 +#define ATA_LEGACY_SUPPORT /* Enable obsolete features that break + * some modern devices */ +#endif + /* ATA register defines */ #define ATA_DATA 0 /* (RW) data */ @@ -81,7 +86,11 @@ #define ATA_PC98_CTLOFFSET 0x10c /* do for PC98 devices */ #define ATA_A_IDS 0x02 /* disable interrupts */ #define ATA_A_RESET 0x04 /* RESET controller */ -#define ATA_A_4BIT 0x08 /* 4 head bits */ +#ifdef ATA_LEGACY_SUPPORT +#define ATA_A_4BIT 0x08 /* 4 head bits: obsolete 1996 */ +#else +#define ATA_A_4BIT 0x00 +#endif #define ATA_A_HOB 0x80 /* High Order Byte enable */ /* SATA register defines */ From owner-svn-src-stable-8@FreeBSD.ORG Tue Nov 17 12:23:17 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C837E1065679; Tue, 17 Nov 2009 12:23:17 +0000 (UTC) (envelope-from flo@smeets.im) Received: from mail.solomo.de (mail.solomo.de [85.214.49.72]) by mx1.freebsd.org (Postfix) with ESMTP id 7DBC48FC15; Tue, 17 Nov 2009 12:23:17 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by mail.solomo.de (Postfix) with ESMTP id D3CB43F696; Tue, 17 Nov 2009 13:06:05 +0100 (CET) X-Virus-Scanned: amavisd-new at vistream.de Received: from mail.solomo.de ([127.0.0.1]) by localhost (mail.solomo.de [127.0.0.1]) (amavisd-new, port 10024) with LMTP id AD5QjpdwNG0x; Tue, 17 Nov 2009 13:06:03 +0100 (CET) Received: from nibbler.vistream.local (relay3.vistream.de [87.139.10.28]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (No client certificate requested) by mail.solomo.de (Postfix) with ESMTPSA id A17033F68E; Tue, 17 Nov 2009 13:06:03 +0100 (CET) Message-ID: <4B0291AB.8090300@smeets.im> Date: Tue, 17 Nov 2009 13:06:03 +0100 From: Florian Smeets User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.1.5) Gecko/20091115 Shredder/3.0.1pre MIME-Version: 1.0 To: Andrew Thompson References: <200910292325.n9TNPrGq015678@svn.freebsd.org> In-Reply-To: <200910292325.n9TNPrGq015678@svn.freebsd.org> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Cc: svn-src-stable@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, svn-src-stable-8@freebsd.org Subject: Re: svn commit: r198659 - in stable/8/sys: . amd64/include/xen cddl/contrib/opensolaris contrib/dev/acpica contrib/pf dev/pci dev/usb/controller dev/xen/xenpci X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Nov 2009 12:23:17 -0000 On 10/30/09 12:25 AM, Andrew Thompson wrote: > Author: thompsa > Date: Thu Oct 29 23:25:52 2009 > New Revision: 198659 > URL: http://svn.freebsd.org/changeset/base/198659 > > Log: > MFC r198151 > > Workaround buggy BIOS code in USB regard. By doing the BIOS to OS handover for > all host controllers at the same time, we avoid problems where the BIOS will > actually write to the USB registers of all the USB host controllers every time > we handover one of them, and consequently reset the OS programmed values. > Hi, this commit causes some of my servers (all of the same type), to detect interrupt storms on irq11: interrupt storm detected on "irq11:"; throttling interrupt source and it does not stop logging these. flo@relay3:~ 6 > vmstat -i interrupt total rate irq0: clk 229846 990 irq4: uart0 596 2 irq5: sis0 2850 12 irq8: rtc 29595 127 irq11: sis3 115799 499 irq14: ata0 2071 8 Total 380757 1641 sis3 is not used and not even up. Setting sysctl hw.intr_storm_threshold to high values e.g. 10000 does not help. The kernels on these servers do not have usb compiled in at all, but it's enabled in the BIOS. Setting hw.pci.usb_early_takeover=0 "fixes" the problem. Is this expected? Cheers, Florian From owner-svn-src-stable-8@FreeBSD.ORG Tue Nov 17 12:25:34 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 768A51065679; Tue, 17 Nov 2009 12:25:34 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 4BE428FC14; Tue, 17 Nov 2009 12:25:34 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nAHCPYY3006686; Tue, 17 Nov 2009 12:25:34 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nAHCPYxR006684; Tue, 17 Nov 2009 12:25:34 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <200911171225.nAHCPYxR006684@svn.freebsd.org> From: Alexander Motin Date: Tue, 17 Nov 2009 12:25:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r199362 - stable/8/sys/dev/ata/chipsets X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Nov 2009 12:25:34 -0000 Author: mav Date: Tue Nov 17 12:25:34 2009 New Revision: 199362 URL: http://svn.freebsd.org/changeset/base/199362 Log: MFC r198583: Add some magic taken from OS X and Linux to support early revision K2 SATA controllers, like those found on the G5 Xserve. Modified: stable/8/sys/dev/ata/chipsets/ata-serverworks.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) stable/8/sys/netinet6/ (props changed) Modified: stable/8/sys/dev/ata/chipsets/ata-serverworks.c ============================================================================== --- stable/8/sys/dev/ata/chipsets/ata-serverworks.c Tue Nov 17 12:23:14 2009 (r199361) +++ stable/8/sys/dev/ata/chipsets/ata-serverworks.c Tue Nov 17 12:25:34 2009 (r199362) @@ -41,6 +41,9 @@ __FBSDID("$FreeBSD$"); #include #include #include +#ifdef __powerpc__ +#include +#endif #include #include #include @@ -106,6 +109,13 @@ static int ata_serverworks_status(device_t dev) { struct ata_channel *ch = device_get_softc(dev); + struct ata_pci_controller *ctlr = device_get_softc(device_get_parent(dev)); + + /* + * Check if this interrupt belongs to our channel. + */ + if (!(ATA_INL(ctlr->r_res2, 0x1f80) & (1 << ch->unit))) + return (0); /* * We need to do a 4-byte read on the status reg before the values @@ -208,8 +218,29 @@ ata_serverworks_ch_attach(device_t dev) ch->hw.tf_write = ata_serverworks_tf_write; #ifdef __powerpc__ ch->hw.status = ata_serverworks_status; + + /* Make sure that our interrupt is edge triggered */ + powerpc_config_intr(bus_get_resource_start(device_get_parent(dev), + SYS_RES_IRQ, 0), INTR_TRIGGER_EDGE, INTR_POLARITY_HIGH); #endif + if (ctlr->chip->chipid == ATA_K2) { + /* + * The revision 1 K2 SATA controller has interesting bugs. Patch them. + * These magic numbers regulate interrupt delivery in the first few + * cases and are pure magic in the last case. + * + * Values obtained from the Darwin driver. + */ + + ATA_IDX_OUTB(ch, ATA_BMSTAT_PORT, 0x04); + ATA_IDX_OUTL(ch, ATA_SERROR, 0xffffffff); + ATA_IDX_OUTL(ch, ATA_SCONTROL, 0x00000300); + ATA_OUTL(ctlr->r_res2, ch_offset + 0x88, 0); + ATA_OUTL(ctlr->r_res2, ch_offset + 0x80, + ATA_INL(ctlr->r_res2, ch_offset + 0x80) & ~0x00040000); + } + /* chip does not reliably do 64K DMA transfers */ ch->dma.max_iosize = 64 * DEV_BSIZE; From owner-svn-src-stable-8@FreeBSD.ORG Tue Nov 17 12:30:07 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3BEA610656AB; Tue, 17 Nov 2009 12:30:07 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 1102B8FC1F; Tue, 17 Nov 2009 12:30:07 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nAHCU6sW006845; Tue, 17 Nov 2009 12:30:06 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nAHCU6Fc006842; Tue, 17 Nov 2009 12:30:06 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <200911171230.nAHCU6Fc006842@svn.freebsd.org> From: Alexander Motin Date: Tue, 17 Nov 2009 12:30:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r199363 - in stable/8/sys/dev/ata: . chipsets X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Nov 2009 12:30:07 -0000 Author: mav Date: Tue Nov 17 12:30:06 2009 New Revision: 199363 URL: http://svn.freebsd.org/changeset/base/199363 Log: MFC r199074: Add more ICH10 chip IDs. Modified: stable/8/sys/dev/ata/ata-pci.h stable/8/sys/dev/ata/chipsets/ata-intel.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) stable/8/sys/netinet6/ (props changed) Modified: stable/8/sys/dev/ata/ata-pci.h ============================================================================== --- stable/8/sys/dev/ata/ata-pci.h Tue Nov 17 12:25:34 2009 (r199362) +++ stable/8/sys/dev/ata/ata-pci.h Tue Nov 17 12:30:06 2009 (r199363) @@ -196,6 +196,10 @@ struct ata_pci_controller { #define ATA_I82801JD_AH 0x3a028086 #define ATA_I82801JD_R1 0x3a058086 #define ATA_I82801JD_S2 0x3a068086 +#define ATA_I82801JI_S1 0x3a208086 +#define ATA_I82801JI_AH 0x3a228086 +#define ATA_I82801JI_R1 0x3a258086 +#define ATA_I82801JI_S2 0x3a268086 #define ATA_I31244 0x32008086 #define ATA_ITE_ID 0x1283 Modified: stable/8/sys/dev/ata/chipsets/ata-intel.c ============================================================================== --- stable/8/sys/dev/ata/chipsets/ata-intel.c Tue Nov 17 12:25:34 2009 (r199362) +++ stable/8/sys/dev/ata/chipsets/ata-intel.c Tue Nov 17 12:30:06 2009 (r199363) @@ -135,6 +135,10 @@ ata_intel_probe(device_t dev) { ATA_I82801JD_AH, 0, INTEL_AHCI, 0, ATA_SA300, "ICH10" }, { ATA_I82801JD_R1, 0, INTEL_AHCI, 0, ATA_SA300, "ICH10" }, { ATA_I82801JD_S2, 0, INTEL_AHCI, 0, ATA_SA300, "ICH10" }, + { ATA_I82801JI_S1, 0, INTEL_AHCI, 0, ATA_SA300, "ICH10" }, + { ATA_I82801JI_AH, 0, INTEL_AHCI, 0, ATA_SA300, "ICH10" }, + { ATA_I82801JI_R1, 0, INTEL_AHCI, 0, ATA_SA300, "ICH10" }, + { ATA_I82801JI_S2, 0, INTEL_AHCI, 0, ATA_SA300, "ICH10" }, { ATA_I31244, 0, 0, 2, ATA_SA150, "31244" }, { 0, 0, 0, 0, 0, 0}}; From owner-svn-src-stable-8@FreeBSD.ORG Tue Nov 17 12:42:28 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 03E401065679; Tue, 17 Nov 2009 12:42:28 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id E6EA68FC21; Tue, 17 Nov 2009 12:42:27 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nAHCgR8C007202; Tue, 17 Nov 2009 12:42:27 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nAHCgRa8007200; Tue, 17 Nov 2009 12:42:27 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <200911171242.nAHCgRa8007200@svn.freebsd.org> From: Alexander Motin Date: Tue, 17 Nov 2009 12:42:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r199364 - stable/8/sys/sys X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Nov 2009 12:42:28 -0000 Author: mav Date: Tue Nov 17 12:42:27 2009 New Revision: 199364 URL: http://svn.freebsd.org/changeset/base/199364 Log: MFC r197540, r198587, r198865: Add more defines for bits from ATA and CF specifications. Modified: stable/8/sys/sys/ata.h Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) stable/8/sys/netinet6/ (props changed) Modified: stable/8/sys/sys/ata.h ============================================================================== --- stable/8/sys/sys/ata.h Tue Nov 17 12:30:06 2009 (r199363) +++ stable/8/sys/sys/ata.h Tue Nov 17 12:42:27 2009 (r199364) @@ -67,6 +67,8 @@ struct ata_params { /*049*/ u_int16_t capabilities1; #define ATA_SUPPORT_DMA 0x0100 #define ATA_SUPPORT_LBA 0x0200 +#define ATA_SUPPORT_IORDY 0x0400 +#define ATA_SUPPORT_IORDYDIS 0x0800 #define ATA_SUPPORT_OVERLAP 0x4000 /*050*/ u_int16_t capabilities2; @@ -108,22 +110,31 @@ struct ata_params { /*075*/ u_int16_t queue; #define ATA_QUEUE_LEN(x) ((x) & 0x001f) - u_int16_t satacapabilities; +/*76*/ u_int16_t satacapabilities; #define ATA_SATA_GEN1 0x0002 #define ATA_SATA_GEN2 0x0004 +#define ATA_SATA_GEN3 0x0008 #define ATA_SUPPORT_NCQ 0x0100 #define ATA_SUPPORT_IFPWRMNGTRCV 0x0200 #define ATA_SUPPORT_PHYEVENTCNT 0x0400 #define ATA_SUPPORT_NCQ_UNLOAD 0x0800 #define ATA_SUPPORT_NCQ_PRIO 0x1000 - - u_int16_t reserved77; - u_int16_t satasupport; +#define ATA_SUPPORT_HAPST 0x2000 +#define ATA_SUPPORT_DAPST 0x4000 +#define ATA_SUPPORT_READLOGDMAEXT 0x8000 + +/*77*/ u_int16_t satacapabilities2; +#define ATA_SATA_CURR_GEN_MASK 0x0006 +#define ATA_SUPPORT_NCQ_STREAM 0x0010 +#define ATA_SUPPORT_NCQ_QMANAGEMENT 0x0020 +/*78*/ u_int16_t satasupport; #define ATA_SUPPORT_NONZERO 0x0002 #define ATA_SUPPORT_AUTOACTIVATE 0x0004 #define ATA_SUPPORT_IFPWRMNGT 0x0008 #define ATA_SUPPORT_INORDERDATA 0x0010 - u_int16_t sataenabled; +#define ATA_SUPPORT_SOFTSETPRESERVE 0x0040 +/*79*/ u_int16_t sataenabled; +#define ATA_ENABLED_DAPST 0x0080 /*080*/ u_int16_t version_major; /*081*/ u_int16_t version_minor; @@ -161,8 +172,8 @@ struct ata_params { #define ATA_SUPPORT_FLUSHCACHE48 0x2000 /*084/087*/ u_int16_t extension; -#define ATA_SUPPORT_SMARTTEST 0x0001 -#define ATA_SUPPORT_SMARTLOG 0x0002 +#define ATA_SUPPORT_SMARTLOG 0x0001 +#define ATA_SUPPORT_SMARTTEST 0x0002 #define ATA_SUPPORT_MEDIASN 0x0004 #define ATA_SUPPORT_MEDIAPASS 0x0008 #define ATA_SUPPORT_STREAMING 0x0010 @@ -170,6 +181,7 @@ struct ata_params { #define ATA_SUPPORT_WRITEDMAFUAEXT 0x0040 #define ATA_SUPPORT_WRITEDMAQFUAEXT 0x0080 #define ATA_SUPPORT_64BITWWN 0x0100 +#define ATA_SUPPORT_UNLOAD 0x2000 } __packed support, enabled; /*088*/ u_int16_t udmamodes; /* UltraDMA modes */ @@ -192,14 +204,52 @@ struct ata_params { u_int16_t lba_size48_2; u_int16_t lba_size48_3; u_int16_t lba_size48_4; - u_int16_t reserved104[23]; + u_int16_t reserved104[2]; +/*106*/ u_int16_t pss; +#define ATA_PSS_LSPPS 0x000F +#define ATA_PSS_LSSABOVE512 0x1000 +#define ATA_PSS_MULTLS 0x2000 +/*107*/ u_int16_t isd; +/*108*/ u_int16_t wwn[4]; + u_int16_t reserved112[5]; +/*117*/ u_int16_t lss_1; +/*118*/ u_int16_t lss_2; +/*119*/ u_int16_t support2; +#define ATA_SUPPORT_WRITEREADVERIFY 0x0002 +#define ATA_SUPPORT_WRITEUNCORREXT 0x0004 +#define ATA_SUPPORT_RWLOGDMAEXT 0x0008 +#define ATA_SUPPORT_MICROCODE3 0x0010 +#define ATA_SUPPORT_FREEFALL 0x0020 +/*120*/ u_int16_t enabled2; + u_int16_t reserved121[6]; /*127*/ u_int16_t removable_status; /*128*/ u_int16_t security_status; u_int16_t reserved129[31]; /*160*/ u_int16_t cfa_powermode1; - u_int16_t reserved161[15]; -/*176*/ u_int16_t media_serial[30]; - u_int16_t reserved206[49]; + u_int16_t reserved161; +/*162*/ u_int16_t cfa_kms_support; +/*163*/ u_int16_t cfa_trueide_modes; +/*164*/ u_int16_t cfa_memory_modes; + u_int16_t reserved165[11]; +/*176*/ u_int8_t media_serial[60]; +/*206*/ u_int16_t sct; + u_int16_t reserved206[2]; +/*209*/ u_int16_t lbalign; +/*210*/ u_int16_t wrv_sectors_m3_1; + u_int16_t wrv_sectors_m3_2; +/*212*/ u_int16_t wrv_sectors_m2_1; + u_int16_t wrv_sectors_m2_2; +/*214*/ u_int16_t nv_cache_caps; +/*215*/ u_int16_t nv_cache_size_1; + u_int16_t nv_cache_size_2; +/*217*/ u_int16_t media_rotation_rate; + u_int16_t reserved218; +/*219*/ u_int16_t nv_cache_opt; +/*220*/ u_int16_t wrv_mode; + u_int16_t reserved221; +/*222*/ u_int16_t transport_major; +/*223*/ u_int16_t transport_minor; + u_int16_t reserved224[31]; /*255*/ u_int16_t integrity; } __packed; From owner-svn-src-stable-8@FreeBSD.ORG Tue Nov 17 12:42:58 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E958A10656A7 for ; Tue, 17 Nov 2009 12:42:58 +0000 (UTC) (envelope-from avg@freebsd.org) Received: from citadel.icyb.net.ua (citadel.icyb.net.ua [212.40.38.140]) by mx1.freebsd.org (Postfix) with ESMTP id 34E608FC1C for ; Tue, 17 Nov 2009 12:42:57 +0000 (UTC) Received: from odyssey.starpoint.kiev.ua (alpha-e.starpoint.kiev.ua [212.40.38.101]) by citadel.icyb.net.ua (8.8.8p3/ICyb-2.3exp) with ESMTP id OAA11610; Tue, 17 Nov 2009 14:28:13 +0200 (EET) (envelope-from avg@freebsd.org) Message-ID: <4B0296DC.6080505@freebsd.org> Date: Tue, 17 Nov 2009 14:28:12 +0200 From: Andriy Gapon User-Agent: Thunderbird 2.0.0.23 (X11/20090825) MIME-Version: 1.0 To: Florian Smeets References: <200910292325.n9TNPrGq015678@svn.freebsd.org> <4B0291AB.8090300@smeets.im> In-Reply-To: <4B0291AB.8090300@smeets.im> X-Enigmail-Version: 0.95.7 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Cc: svn-src-stable@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, svn-src-stable-8@freebsd.org, Andrew Thompson Subject: Re: svn commit: r198659 - in stable/8/sys: . amd64/include/xen cddl/contrib/opensolaris contrib/dev/acpica contrib/pf dev/pci dev/usb/controller dev/xen/xenpci X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Nov 2009 12:42:59 -0000 on 17/11/2009 14:06 Florian Smeets said the following: > On 10/30/09 12:25 AM, Andrew Thompson wrote: >> Author: thompsa >> Date: Thu Oct 29 23:25:52 2009 >> New Revision: 198659 >> URL: http://svn.freebsd.org/changeset/base/198659 >> >> Log: >> MFC r198151 >> >> Workaround buggy BIOS code in USB regard. By doing the BIOS to OS >> handover for >> all host controllers at the same time, we avoid problems where the >> BIOS will >> actually write to the USB registers of all the USB host >> controllers every time >> we handover one of them, and consequently reset the OS programmed >> values. >> > > Hi, > > this commit causes some of my servers (all of the same type), to detect > interrupt storms on irq11: > > interrupt storm detected on "irq11:"; throttling interrupt source > > and it does not stop logging these. > > flo@relay3:~ 6 > vmstat -i > interrupt total rate > irq0: clk 229846 990 > irq4: uart0 596 2 > irq5: sis0 2850 12 > irq8: rtc 29595 127 > irq11: sis3 115799 499 > irq14: ata0 2071 8 > Total 380757 1641 > > sis3 is not used and not even up. > > Setting sysctl hw.intr_storm_threshold to high values e.g. 10000 does > not help. > > The kernels on these servers do not have usb compiled in at all, but > it's enabled in the BIOS. > > Setting hw.pci.usb_early_takeover=0 "fixes" the problem. > > Is this expected? This is not expected in a sense that nobody planned to introduce interrupt storms. But it is possible, because this is one of the edge cases introduced by the commit in question, and the tunable is there exactly to deal with the edge cases. What might be happening here is that your USB controller(s) is configured with interrupt 11, but you don't see it in vmstat -i output, because there is no USB driver to discover the hardware and its configuration. If we take over the controllers, BIOS no longer controls the devices and it is expected that the OS would do it, but it doesn't. So if interrupts are generated by USB hardware they remain unhandled and cause the storm. Thus, there are 3 choices: 1. what you have already done (and it does fix the problem, no quote-unquote needed); 2. add USB drivers, so that USB interrupts are handled; 3. disable USB in BIOS. Depending on your goals one choice may suite better than the others. Does this make sense? -- Andriy Gapon From owner-svn-src-stable-8@FreeBSD.ORG Tue Nov 17 12:58:08 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6CBA71065676; Tue, 17 Nov 2009 12:58:08 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 42E138FC24; Tue, 17 Nov 2009 12:58:08 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nAHCw85a007643; Tue, 17 Nov 2009 12:58:08 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nAHCw8vf007641; Tue, 17 Nov 2009 12:58:08 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <200911171258.nAHCw8vf007641@svn.freebsd.org> From: Alexander Motin Date: Tue, 17 Nov 2009 12:58:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r199366 - stable/8/sys/cam X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Nov 2009 12:58:08 -0000 Author: mav Date: Tue Nov 17 12:58:07 2009 New Revision: 199366 URL: http://svn.freebsd.org/changeset/base/199366 Log: MFC r196897: Avoid extra swi_sched() call, if this SIM is already queued. It reduces overhead for coalesced command completions. Modified: stable/8/sys/cam/cam_xpt.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) stable/8/sys/netinet6/ (props changed) Modified: stable/8/sys/cam/cam_xpt.c ============================================================================== --- stable/8/sys/cam/cam_xpt.c Tue Nov 17 12:57:10 2009 (r199365) +++ stable/8/sys/cam/cam_xpt.c Tue Nov 17 12:58:07 2009 (r199366) @@ -4203,12 +4203,12 @@ xpt_done(union ccb *done_ccb) mtx_lock(&cam_simq_lock); TAILQ_INSERT_TAIL(&cam_simq, sim, links); - sim->flags |= CAM_SIM_ON_DONEQ; mtx_unlock(&cam_simq_lock); + sim->flags |= CAM_SIM_ON_DONEQ; + if ((done_ccb->ccb_h.path->periph->flags & + CAM_PERIPH_POLLED) == 0) + swi_sched(cambio_ih, 0); } - if ((done_ccb->ccb_h.path->periph->flags & - CAM_PERIPH_POLLED) == 0) - swi_sched(cambio_ih, 0); break; default: panic("unknown periph type %d", @@ -4894,16 +4894,20 @@ camisr(void *dummy) mtx_lock(&cam_simq_lock); TAILQ_INIT(&queue); - TAILQ_CONCAT(&queue, &cam_simq, links); - mtx_unlock(&cam_simq_lock); - - while ((sim = TAILQ_FIRST(&queue)) != NULL) { - TAILQ_REMOVE(&queue, sim, links); - CAM_SIM_LOCK(sim); - sim->flags &= ~CAM_SIM_ON_DONEQ; - camisr_runqueue(&sim->sim_doneq); - CAM_SIM_UNLOCK(sim); + while (!TAILQ_EMPTY(&cam_simq)) { + TAILQ_CONCAT(&queue, &cam_simq, links); + mtx_unlock(&cam_simq_lock); + + while ((sim = TAILQ_FIRST(&queue)) != NULL) { + TAILQ_REMOVE(&queue, sim, links); + CAM_SIM_LOCK(sim); + sim->flags &= ~CAM_SIM_ON_DONEQ; + camisr_runqueue(&sim->sim_doneq); + CAM_SIM_UNLOCK(sim); + } + mtx_lock(&cam_simq_lock); } + mtx_unlock(&cam_simq_lock); } static void From owner-svn-src-stable-8@FreeBSD.ORG Tue Nov 17 13:01:18 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 472E9106566B; Tue, 17 Nov 2009 13:01:18 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 1CD618FC14; Tue, 17 Nov 2009 13:01:18 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nAHD1I1a007792; Tue, 17 Nov 2009 13:01:18 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nAHD1HJX007790; Tue, 17 Nov 2009 13:01:17 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <200911171301.nAHD1HJX007790@svn.freebsd.org> From: Alexander Motin Date: Tue, 17 Nov 2009 13:01:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r199367 - stable/8/sys/cam X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Nov 2009 13:01:18 -0000 Author: mav Date: Tue Nov 17 13:01:17 2009 New Revision: 199367 URL: http://svn.freebsd.org/changeset/base/199367 Log: MFC r196898: Report scbusX in xpt_announce_periph() to less confuse users by two different bus addressing schemes. MFC r196900: s/bus %d/scbus%d/ in some messages to correct terminology. Modified: stable/8/sys/cam/cam_xpt.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) stable/8/sys/netinet6/ (props changed) Modified: stable/8/sys/cam/cam_xpt.c ============================================================================== --- stable/8/sys/cam/cam_xpt.c Tue Nov 17 12:58:07 2009 (r199366) +++ stable/8/sys/cam/cam_xpt.c Tue Nov 17 13:01:17 2009 (r199367) @@ -1038,11 +1038,12 @@ xpt_announce_periph(struct cam_periph *p * To ensure that this is printed in one piece, * mask out CAM interrupts. */ - printf("%s%d at %s%d bus %d target %d lun %d\n", + printf("%s%d at %s%d bus %d scbus%d target %d lun %d\n", periph->periph_name, periph->unit_number, path->bus->sim->sim_name, path->bus->sim->unit_number, path->bus->sim->bus_id, + path->bus->path_id, path->target->target_id, path->device->lun_id); printf("%s%d: ", periph->periph_name, periph->unit_number); @@ -4609,7 +4610,7 @@ xptconfigfunc(struct cam_eb *bus, void * CAM_TARGET_WILDCARD, CAM_LUN_WILDCARD)) !=CAM_REQ_CMP){ printf("xptconfigfunc: xpt_create_path failed with " - "status %#x for bus %d\n", status, bus->path_id); + "status %#x for scbus%d\n", status, bus->path_id); printf("xptconfigfunc: halting bus configuration\n"); xpt_free_ccb(work_ccb); busses_to_config--; @@ -4620,7 +4621,7 @@ xptconfigfunc(struct cam_eb *bus, void * work_ccb->ccb_h.func_code = XPT_PATH_INQ; xpt_action(work_ccb); if (work_ccb->ccb_h.status != CAM_REQ_CMP) { - printf("xptconfigfunc: CPI failed on bus %d " + printf("xptconfigfunc: CPI failed on scbus%d " "with status %d\n", bus->path_id, work_ccb->ccb_h.status); xpt_finishconfig(xpt_periph, work_ccb); From owner-svn-src-stable-8@FreeBSD.ORG Tue Nov 17 13:04:05 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id AC30A106566B; Tue, 17 Nov 2009 13:04:05 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 9B7698FC13; Tue, 17 Nov 2009 13:04:05 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nAHD45lP007888; Tue, 17 Nov 2009 13:04:05 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nAHD45Xo007886; Tue, 17 Nov 2009 13:04:05 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <200911171304.nAHD45Xo007886@svn.freebsd.org> From: Alexander Motin Date: Tue, 17 Nov 2009 13:04:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r199368 - stable/8/sys/cam X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Nov 2009 13:04:05 -0000 Author: mav Date: Tue Nov 17 13:04:05 2009 New Revision: 199368 URL: http://svn.freebsd.org/changeset/base/199368 Log: MFC r196901: Remove unneeded CAM_SIM_MPSAFE check. Modified: stable/8/sys/cam/cam_xpt.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) stable/8/sys/netinet6/ (props changed) Modified: stable/8/sys/cam/cam_xpt.c ============================================================================== --- stable/8/sys/cam/cam_xpt.c Tue Nov 17 13:01:17 2009 (r199367) +++ stable/8/sys/cam/cam_xpt.c Tue Nov 17 13:04:05 2009 (r199368) @@ -4412,10 +4412,7 @@ xpt_alloc_device(struct cam_eb *bus, str device->tag_delay_count = 0; device->tag_saved_openings = 0; device->refcount = 1; - if (bus->sim->flags & CAM_SIM_MPSAFE) - callout_init_mtx(&device->callout, bus->sim->mtx, 0); - else - callout_init_mtx(&device->callout, &Giant, 0); + callout_init_mtx(&device->callout, bus->sim->mtx, 0); /* * Hold a reference to our parent target so it From owner-svn-src-stable-8@FreeBSD.ORG Tue Nov 17 13:37:28 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1B8271065672; Tue, 17 Nov 2009 13:37:28 +0000 (UTC) (envelope-from brueffer@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 09CB08FC15; Tue, 17 Nov 2009 13:37:28 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nAHDbRZd008961; Tue, 17 Nov 2009 13:37:27 GMT (envelope-from brueffer@svn.freebsd.org) Received: (from brueffer@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nAHDbR1S008959; Tue, 17 Nov 2009 13:37:27 GMT (envelope-from brueffer@svn.freebsd.org) Message-Id: <200911171337.nAHDbR1S008959@svn.freebsd.org> From: Christian Brueffer Date: Tue, 17 Nov 2009 13:37:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r199375 - stable/8/sys/contrib/altq/altq X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Nov 2009 13:37:28 -0000 Author: brueffer Date: Tue Nov 17 13:37:27 2009 New Revision: 199375 URL: http://svn.freebsd.org/changeset/base/199375 Log: MFC: r198952 Fix two memory leaks in error cases. Modified: stable/8/sys/contrib/altq/altq/altq_hfsc.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) stable/8/sys/netinet6/ (props changed) Modified: stable/8/sys/contrib/altq/altq/altq_hfsc.c ============================================================================== --- stable/8/sys/contrib/altq/altq/altq_hfsc.c Tue Nov 17 13:36:21 2009 (r199374) +++ stable/8/sys/contrib/altq/altq/altq_hfsc.c Tue Nov 17 13:37:27 2009 (r199375) @@ -1809,15 +1809,20 @@ hfsc_class_modify(cl, rsc, fsc, usc) cl->cl_fsc == NULL) { fsc_tmp = malloc(sizeof(struct internal_sc), M_DEVBUF, M_WAITOK); - if (fsc_tmp == NULL) + if (fsc_tmp == NULL) { + free(rsc_tmp); return (ENOMEM); + } } if (usc != NULL && (usc->m1 != 0 || usc->m2 != 0) && cl->cl_usc == NULL) { usc_tmp = malloc(sizeof(struct internal_sc), M_DEVBUF, M_WAITOK); - if (usc_tmp == NULL) + if (usc_tmp == NULL) { + free(rsc_tmp); + free(fsc_tmp); return (ENOMEM); + } } cur_time = read_machclk(); From owner-svn-src-stable-8@FreeBSD.ORG Tue Nov 17 13:48:27 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5EA361065672; Tue, 17 Nov 2009 13:48:27 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 4CCA18FC12; Tue, 17 Nov 2009 13:48:27 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nAHDmRCW009242; Tue, 17 Nov 2009 13:48:27 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nAHDmRPB009239; Tue, 17 Nov 2009 13:48:27 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <200911171348.nAHDmRPB009239@svn.freebsd.org> From: Alexander Motin Date: Tue, 17 Nov 2009 13:48:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r199376 - stable/8/sys/cam X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Nov 2009 13:48:27 -0000 Author: mav Date: Tue Nov 17 13:48:27 2009 New Revision: 199376 URL: http://svn.freebsd.org/changeset/base/199376 Log: MFC r196903: Remove duplicate qfrozen_cnt variable from struct cam_ed. ccbq.queue.qfrozen_cnt should be used instead. Modified: stable/8/sys/cam/cam_xpt.c stable/8/sys/cam/cam_xpt_internal.h Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) stable/8/sys/netinet6/ (props changed) Modified: stable/8/sys/cam/cam_xpt.c ============================================================================== --- stable/8/sys/cam/cam_xpt.c Tue Nov 17 13:37:27 2009 (r199375) +++ stable/8/sys/cam/cam_xpt.c Tue Nov 17 13:48:27 2009 (r199376) @@ -2477,7 +2477,7 @@ xpt_action_default(union ccb *start_ccb) path = start_ccb->ccb_h.path; cam_ccbq_insert_ccb(&path->device->ccbq, start_ccb); - if (path->device->qfrozen_cnt == 0) + if (path->device->ccbq.queue.qfrozen_cnt == 0) runq = xpt_schedule_dev_sendq(path->bus, path->device); else runq = 0; @@ -2936,7 +2936,7 @@ xpt_action_default(union ccb *start_ccb) xpt_release_devq(crs->ccb_h.path, /*count*/1, /*run_queue*/TRUE); } - start_ccb->crs.qfrozen_cnt = dev->qfrozen_cnt; + start_ccb->crs.qfrozen_cnt = dev->ccbq.queue.qfrozen_cnt; start_ccb->ccb_h.status = CAM_REQ_CMP; break; } @@ -3232,7 +3232,7 @@ xpt_run_dev_sendq(struct cam_eb *bus) * If the device has been "frozen", don't attempt * to run it. */ - if (device->qfrozen_cnt > 0) { + if (device->ccbq.queue.qfrozen_cnt > 0) { continue; } @@ -3255,7 +3255,7 @@ xpt_run_dev_sendq(struct cam_eb *bus) * the device queue until we have a slot * available. */ - device->qfrozen_cnt++; + device->ccbq.queue.qfrozen_cnt++; STAILQ_INSERT_TAIL(&xsoftc.highpowerq, &work_ccb->ccb_h, xpt_links.stqe); @@ -3287,7 +3287,7 @@ xpt_run_dev_sendq(struct cam_eb *bus) * The client wants to freeze the queue * after this CCB is sent. */ - device->qfrozen_cnt++; + device->ccbq.queue.qfrozen_cnt++; } /* In Target mode, the peripheral driver knows best... */ @@ -4036,7 +4036,7 @@ xpt_freeze_devq(struct cam_path *path, u mtx_assert(path->bus->sim->mtx, MA_OWNED); - path->device->qfrozen_cnt += count; + path->device->ccbq.queue.qfrozen_cnt += count; /* * Mark the last CCB in the queue as needing @@ -4054,7 +4054,7 @@ xpt_freeze_devq(struct cam_path *path, u ccbh = TAILQ_LAST(&path->device->ccbq.active_ccbs, ccb_hdr_tailq); if (ccbh && ccbh->status == CAM_REQ_INPROG) ccbh->status = CAM_REQUEUE_REQ; - return (path->device->qfrozen_cnt); + return (path->device->ccbq.queue.qfrozen_cnt); } u_int32_t @@ -4098,11 +4098,12 @@ xpt_release_devq_device(struct cam_ed *d int rundevq; rundevq = 0; - if (dev->qfrozen_cnt > 0) { + if (dev->ccbq.queue.qfrozen_cnt > 0) { - count = (count > dev->qfrozen_cnt) ? dev->qfrozen_cnt : count; - dev->qfrozen_cnt -= count; - if (dev->qfrozen_cnt == 0) { + count = (count > dev->ccbq.queue.qfrozen_cnt) ? + dev->ccbq.queue.qfrozen_cnt : count; + dev->ccbq.queue.qfrozen_cnt -= count; + if (dev->ccbq.queue.qfrozen_cnt == 0) { /* * No longer need to wait for a successful @@ -4407,7 +4408,6 @@ xpt_alloc_device(struct cam_eb *bus, str SLIST_INIT(&device->periphs); device->generation = 0; device->owner = NULL; - device->qfrozen_cnt = 0; device->flags = CAM_DEV_UNCONFIGURED; device->tag_delay_count = 0; device->tag_saved_openings = 0; @@ -4976,7 +4976,7 @@ camisr_runqueue(void *V_queue) xpt_start_tags(ccb_h->path); if ((dev->ccbq.queue.entries > 0) - && (dev->qfrozen_cnt == 0) + && (dev->ccbq.queue.qfrozen_cnt == 0) && (device_is_send_queued(dev) == 0)) { runq = xpt_schedule_dev_sendq(ccb_h->path->bus, dev); Modified: stable/8/sys/cam/cam_xpt_internal.h ============================================================================== --- stable/8/sys/cam/cam_xpt_internal.h Tue Nov 17 13:37:27 2009 (r199375) +++ stable/8/sys/cam/cam_xpt_internal.h Tue Nov 17 13:48:27 2009 (r199376) @@ -106,7 +106,6 @@ struct cam_ed { u_int8_t queue_flags; /* Queue flags from the control page */ u_int8_t serial_num_len; u_int8_t *serial_num; - u_int32_t qfrozen_cnt; u_int32_t flags; #define CAM_DEV_UNCONFIGURED 0x01 #define CAM_DEV_REL_TIMEOUT_PENDING 0x02 From owner-svn-src-stable-8@FreeBSD.ORG Tue Nov 17 14:08:42 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9C0FA1065676; Tue, 17 Nov 2009 14:08:42 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 8900A8FC1B; Tue, 17 Nov 2009 14:08:42 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nAHE8gBp010463; Tue, 17 Nov 2009 14:08:42 GMT (envelope-from jhb@svn.freebsd.org) Received: (from jhb@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nAHE8gsv010462; Tue, 17 Nov 2009 14:08:42 GMT (envelope-from jhb@svn.freebsd.org) Message-Id: <200911171408.nAHE8gsv010462@svn.freebsd.org> From: John Baldwin Date: Tue, 17 Nov 2009 14:08:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r199377 - in stable/8/sys: . amd64/include/xen cddl/contrib/opensolaris contrib/dev/acpica contrib/pf dev/xen/xenpci netinet6 X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Nov 2009 14:08:42 -0000 Author: jhb Date: Tue Nov 17 14:08:42 2009 New Revision: 199377 URL: http://svn.freebsd.org/changeset/base/199377 Log: Move mergeinfo for netinet6 up to sys. Modified: Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) stable/8/sys/netinet6/ (props changed) From owner-svn-src-stable-8@FreeBSD.ORG Tue Nov 17 14:14:07 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9638D106566C; Tue, 17 Nov 2009 14:14:07 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 844EF8FC24; Tue, 17 Nov 2009 14:14:07 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nAHEE7is011169; Tue, 17 Nov 2009 14:14:07 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nAHEE7K3011166; Tue, 17 Nov 2009 14:14:07 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <200911171414.nAHEE7K3011166@svn.freebsd.org> From: Alexander Motin Date: Tue, 17 Nov 2009 14:14:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r199379 - stable/8/sys/cam/scsi X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Nov 2009 14:14:07 -0000 Author: mav Date: Tue Nov 17 14:14:07 2009 New Revision: 199379 URL: http://svn.freebsd.org/changeset/base/199379 Log: MFC r196983: Free the correct buffer in an error case. Submitted by: phk Modified: stable/8/sys/cam/scsi/scsi_cd.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) Modified: stable/8/sys/cam/scsi/scsi_cd.c ============================================================================== --- stable/8/sys/cam/scsi/scsi_cd.c Tue Nov 17 14:13:30 2009 (r199378) +++ stable/8/sys/cam/scsi/scsi_cd.c Tue Nov 17 14:14:07 2009 (r199379) @@ -2528,7 +2528,7 @@ cdioctl(struct disk *dp, u_long cmd, voi error = cdgetmode(periph, ¶ms, AUDIO_PAGE); if (error) { - free(¶ms, M_SCSICD); + free(¶ms.mode_buf, M_SCSICD); cam_periph_unlock(periph); break; } From owner-svn-src-stable-8@FreeBSD.ORG Tue Nov 17 14:30:11 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 471FE1065693; Tue, 17 Nov 2009 14:30:10 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 350F88FC16; Tue, 17 Nov 2009 14:30:10 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nAHEU9iu012438; Tue, 17 Nov 2009 14:30:09 GMT (envelope-from bz@svn.freebsd.org) Received: (from bz@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nAHEU9PK012436; Tue, 17 Nov 2009 14:30:09 GMT (envelope-from bz@svn.freebsd.org) Message-Id: <200911171430.nAHEU9PK012436@svn.freebsd.org> From: "Bjoern A. Zeeb" Date: Tue, 17 Nov 2009 14:30:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r199381 - stable/8/sys/dev/bge X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Nov 2009 14:30:11 -0000 Author: bz Date: Tue Nov 17 14:30:09 2009 New Revision: 199381 URL: http://svn.freebsd.org/changeset/base/199381 Log: MFC r198049: Immediately after clearing a pending callout that didn't make it due to the lock we hold, disable interrupts, and announce to the firmware that we are shutting down. Especially do this before disabling blocks. This makes some types of machines with asf enabled no longer hang upon boot, when we start configuring the interface. PR: i386/96382, kern/100410, kern/122252, kern/116328 Modified: stable/8/sys/dev/bge/if_bge.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) Modified: stable/8/sys/dev/bge/if_bge.c ============================================================================== --- stable/8/sys/dev/bge/if_bge.c Tue Nov 17 14:23:09 2009 (r199380) +++ stable/8/sys/dev/bge/if_bge.c Tue Nov 17 14:30:09 2009 (r199381) @@ -4218,6 +4218,16 @@ bge_stop(struct bge_softc *sc) callout_stop(&sc->bge_stat_ch); + /* Disable host interrupts. */ + BGE_SETBIT(sc, BGE_PCI_MISC_CTL, BGE_PCIMISCCTL_MASK_PCI_INTR); + bge_writembx(sc, BGE_MBX_IRQ0_LO, 1); + + /* + * Tell firmware we're shutting down. + */ + bge_stop_fw(sc); + bge_sig_pre_reset(sc, BGE_RESET_STOP); + /* * Disable all of the receiver blocks. */ @@ -4257,16 +4267,6 @@ bge_stop(struct bge_softc *sc) BGE_CLRBIT(sc, BGE_MARB_MODE, BGE_MARBMODE_ENABLE); } - /* Disable host interrupts. */ - BGE_SETBIT(sc, BGE_PCI_MISC_CTL, BGE_PCIMISCCTL_MASK_PCI_INTR); - bge_writembx(sc, BGE_MBX_IRQ0_LO, 1); - - /* - * Tell firmware we're shutting down. - */ - - bge_stop_fw(sc); - bge_sig_pre_reset(sc, BGE_RESET_STOP); bge_reset(sc); bge_sig_legacy(sc, BGE_RESET_STOP); bge_sig_post_reset(sc, BGE_RESET_STOP); From owner-svn-src-stable-8@FreeBSD.ORG Tue Nov 17 14:37:20 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B430F106568F; Tue, 17 Nov 2009 14:37:20 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id A27A08FC26; Tue, 17 Nov 2009 14:37:20 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nAHEbK2w012898; Tue, 17 Nov 2009 14:37:20 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nAHEbKjD012896; Tue, 17 Nov 2009 14:37:20 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <200911171437.nAHEbKjD012896@svn.freebsd.org> From: Alexander Motin Date: Tue, 17 Nov 2009 14:37:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r199382 - stable/8/sys/cam X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Nov 2009 14:37:20 -0000 Author: mav Date: Tue Nov 17 14:37:20 2009 New Revision: 199382 URL: http://svn.freebsd.org/changeset/base/199382 Log: MFC r197421: If on sense request device returns no sence, give up and return, or we may loop forever. Modified: stable/8/sys/cam/cam_periph.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) Modified: stable/8/sys/cam/cam_periph.c ============================================================================== --- stable/8/sys/cam/cam_periph.c Tue Nov 17 14:30:09 2009 (r199381) +++ stable/8/sys/cam/cam_periph.c Tue Nov 17 14:37:20 2009 (r199382) @@ -1034,8 +1034,13 @@ camperiphdone(struct cam_periph *periph, cam_error_print(saved_ccb, CAM_ESF_ALL, CAM_EPF_ALL); #endif - xpt_done_ccb = TRUE; + } else { + saved_ccb->ccb_h.status &= + ~CAM_STATUS_MASK; + saved_ccb->ccb_h.status |= + CAM_AUTOSENSE_FAIL; } + xpt_done_ccb = TRUE; } } bcopy(done_ccb->ccb_h.saved_ccb_ptr, done_ccb, From owner-svn-src-stable-8@FreeBSD.ORG Tue Nov 17 14:38:47 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id AB484106566B; Tue, 17 Nov 2009 14:38:47 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 997718FC1D; Tue, 17 Nov 2009 14:38:47 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nAHEclhw013054; Tue, 17 Nov 2009 14:38:47 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nAHEclw4013052; Tue, 17 Nov 2009 14:38:47 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <200911171438.nAHEclw4013052@svn.freebsd.org> From: Alexander Motin Date: Tue, 17 Nov 2009 14:38:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r199383 - stable/8/sys/cam/ata X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Nov 2009 14:38:47 -0000 Author: mav Date: Tue Nov 17 14:38:47 2009 New Revision: 199383 URL: http://svn.freebsd.org/changeset/base/199383 Log: MFC r197541: Report SATA 3.x devices. Modified: stable/8/sys/cam/ata/ata_all.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) Modified: stable/8/sys/cam/ata/ata_all.c ============================================================================== --- stable/8/sys/cam/ata/ata_all.c Tue Nov 17 14:37:20 2009 (r199382) +++ stable/8/sys/cam/ata/ata_all.c Tue Nov 17 14:38:47 2009 (r199383) @@ -80,7 +80,9 @@ ata_print_ident(struct ata_params *ident printf("<%s %s> ATA/ATAPI-%d", product, revision, ata_version(ident_data->version_major)); if (ident_data->satacapabilities && ident_data->satacapabilities != 0xffff) { - if (ident_data->satacapabilities & ATA_SATA_GEN2) + if (ident_data->satacapabilities & ATA_SATA_GEN3) + printf(" SATA 3.x"); + else if (ident_data->satacapabilities & ATA_SATA_GEN2) printf(" SATA 2.x"); else if (ident_data->satacapabilities & ATA_SATA_GEN1) printf(" SATA 1.x"); From owner-svn-src-stable-8@FreeBSD.ORG Tue Nov 17 14:47:40 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D56141065670; Tue, 17 Nov 2009 14:47:40 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id A9F798FC15; Tue, 17 Nov 2009 14:47:40 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nAHEleO5013801; Tue, 17 Nov 2009 14:47:40 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nAHEle3b013799; Tue, 17 Nov 2009 14:47:40 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <200911171447.nAHEle3b013799@svn.freebsd.org> From: Alexander Motin Date: Tue, 17 Nov 2009 14:47:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r199384 - stable/8/sys/dev/ahci X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Nov 2009 14:47:40 -0000 Author: mav Date: Tue Nov 17 14:47:40 2009 New Revision: 199384 URL: http://svn.freebsd.org/changeset/base/199384 Log: MFC r196907: To save small bit of CPU time, hide part of SNTF register read latency behind other reads. Modified: stable/8/sys/dev/ahci/ahci.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) Modified: stable/8/sys/dev/ahci/ahci.c ============================================================================== --- stable/8/sys/dev/ahci/ahci.c Tue Nov 17 14:38:47 2009 (r199383) +++ stable/8/sys/dev/ahci/ahci.c Tue Nov 17 14:47:40 2009 (r199384) @@ -891,16 +891,12 @@ ahci_phy_check_events(device_t dev) } static void -ahci_notify_events(device_t dev) +ahci_notify_events(device_t dev, u_int32_t status) { struct ahci_channel *ch = device_get_softc(dev); struct cam_path *dpath; - u_int32_t status; int i; - status = ATA_INL(ch->r_mem, AHCI_P_SNTF); - if (status == 0) - return; ATA_OUTL(ch->r_mem, AHCI_P_SNTF, status); if (bootverbose) device_printf(dev, "SNTF 0x%04x\n", status); @@ -948,7 +944,7 @@ ahci_ch_intr(void *data) { device_t dev = (device_t)data; struct ahci_channel *ch = device_get_softc(dev); - uint32_t istatus, cstatus, sstatus, ok, err; + uint32_t istatus, sstatus, cstatus, sntf = 0, ok, err; enum ahci_err_type et; int i, ccs, ncq_err = 0; @@ -958,8 +954,10 @@ ahci_ch_intr(void *data) return; ATA_OUTL(ch->r_mem, AHCI_P_IS, istatus); /* Read command statuses. */ - cstatus = ATA_INL(ch->r_mem, AHCI_P_CI); sstatus = ATA_INL(ch->r_mem, AHCI_P_SACT); + cstatus = ATA_INL(ch->r_mem, AHCI_P_CI); + if ((istatus & AHCI_P_IX_SDB) && (ch->caps & AHCI_CAP_SSNTF)) + sntf = ATA_INL(ch->r_mem, AHCI_P_SNTF); /* Process PHY events */ if (istatus & (AHCI_P_IX_PRC | AHCI_P_IX_PC)) ahci_phy_check_events(dev); @@ -1023,8 +1021,8 @@ ahci_ch_intr(void *data) ahci_issue_read_log(dev); } /* Process NOTIFY events */ - if ((istatus & AHCI_P_IX_SDB) && (ch->caps & AHCI_CAP_SSNTF)) - ahci_notify_events(dev); + if (sntf) + ahci_notify_events(dev, sntf); } /* Must be called with channel locked. */ From owner-svn-src-stable-8@FreeBSD.ORG Tue Nov 17 14:49:35 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C88EC106566C; Tue, 17 Nov 2009 14:49:35 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 9C6F98FC14; Tue, 17 Nov 2009 14:49:35 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nAHEnZMY013984; Tue, 17 Nov 2009 14:49:35 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nAHEnZDl013979; Tue, 17 Nov 2009 14:49:35 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <200911171449.nAHEnZDl013979@svn.freebsd.org> From: Alexander Motin Date: Tue, 17 Nov 2009 14:49:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r199385 - in stable/8/sys: cam/ata dev/ahci dev/siis X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Nov 2009 14:49:35 -0000 Author: mav Date: Tue Nov 17 14:49:35 2009 New Revision: 199385 URL: http://svn.freebsd.org/changeset/base/199385 Log: MFC r198322: Report real max_target = 15. SIM doesn't need to know that target 15 is PMP. It is XPT business. Modified: stable/8/sys/cam/ata/ata_xpt.c stable/8/sys/dev/ahci/ahci.c stable/8/sys/dev/siis/siis.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) Modified: stable/8/sys/cam/ata/ata_xpt.c ============================================================================== --- stable/8/sys/cam/ata/ata_xpt.c Tue Nov 17 14:47:40 2009 (r199384) +++ stable/8/sys/cam/ata/ata_xpt.c Tue Nov 17 14:49:35 2009 (r199385) @@ -1212,7 +1212,8 @@ ata_scan_bus(struct cam_periph *periph, 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; Modified: stable/8/sys/dev/ahci/ahci.c ============================================================================== --- stable/8/sys/dev/ahci/ahci.c Tue Nov 17 14:47:40 2009 (r199384) +++ stable/8/sys/dev/ahci/ahci.c Tue Nov 17 14:49:35 2009 (r199385) @@ -1924,7 +1924,7 @@ ahciaction(struct cam_sim *sim, union cc cpi->hba_misc = PIM_SEQSCAN; cpi->hba_eng_cnt = 0; if (ch->caps & AHCI_CAP_SPM) - cpi->max_target = 14; + cpi->max_target = 15; else cpi->max_target = 0; cpi->max_lun = 0; Modified: stable/8/sys/dev/siis/siis.c ============================================================================== --- stable/8/sys/dev/siis/siis.c Tue Nov 17 14:47:40 2009 (r199384) +++ stable/8/sys/dev/siis/siis.c Tue Nov 17 14:49:35 2009 (r199385) @@ -1564,7 +1564,7 @@ siisaction(struct cam_sim *sim, union cc cpi->target_sprt = 0; cpi->hba_misc = PIM_SEQSCAN; cpi->hba_eng_cnt = 0; - cpi->max_target = 14; + cpi->max_target = 15; cpi->max_lun = 0; cpi->initiator_id = 0; cpi->bus_id = cam_sim_bus(sim); From owner-svn-src-stable-8@FreeBSD.ORG Tue Nov 17 14:56:01 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 538081065670; Tue, 17 Nov 2009 14:56:01 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 4065D8FC0A; Tue, 17 Nov 2009 14:56:01 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nAHEu1mK014476; Tue, 17 Nov 2009 14:56:01 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nAHEu1UG014474; Tue, 17 Nov 2009 14:56:01 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <200911171456.nAHEu1UG014474@svn.freebsd.org> From: Alexander Motin Date: Tue, 17 Nov 2009 14:56:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r199386 - stable/8/sys/cam/ata X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Nov 2009 14:56:01 -0000 Author: mav Date: Tue Nov 17 14:56:00 2009 New Revision: 199386 URL: http://svn.freebsd.org/changeset/base/199386 Log: MFC r198328: Add support for PIO-only devices. Fix maxio values and 256 sectors transactions for 28bits commands. Implement periodic ordered commands insertion, sames as da driver does. Remove some SCSIsms. Modified: stable/8/sys/cam/ata/ata_da.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) Modified: stable/8/sys/cam/ata/ata_da.c ============================================================================== --- stable/8/sys/cam/ata/ata_da.c Tue Nov 17 14:49:35 2009 (r199385) +++ stable/8/sys/cam/ata/ata_da.c Tue Nov 17 14:56:00 2009 (r199386) @@ -63,37 +63,32 @@ __FBSDID("$FreeBSD$"); #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 @@ struct ada_softc { 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 @@ adaclose(struct disk *dp) 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,19 +326,6 @@ adastrategy(struct bio *bp) 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 */ @@ -551,11 +533,6 @@ adaasync(void *callback_arg, u_int32_t c 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 @@ adaasync(void *callback_arg, u_int32_t c 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 @@ adaregister(struct cam_periph *periph, v 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 @@ adaregister(struct cam_periph *periph, v 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 @@ adaregister(struct cam_periph *periph, v 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 @@ adaregister(struct cam_periph *periph, v /* 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 @@ adaregister(struct cam_periph *periph, v * 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,9 +760,8 @@ adaregister(struct cam_periph *periph, v static void adastart(struct cam_periph *periph, union ccb *start_ccb) { - struct ada_softc *softc; - - softc = (struct ada_softc *)periph->softc; + struct ada_softc *softc = (struct ada_softc *)periph->softc; + struct ccb_ataio *ataio = &start_ccb->ataio; switch (softc->state) { case ADA_STATE_NORMAL: @@ -809,7 +784,6 @@ adastart(struct cam_periph *periph, unio } 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 @@ adastart(struct cam_periph *periph, unio 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 @@ adastart(struct cam_periph *periph, unio 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 @@ adastart(struct cam_periph *periph, unio } } 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 @@ adastart(struct cam_periph *periph, unio 1, adadone, CAM_DIR_NONE, - tag_code, + 0, NULL, 0, ada_default_timeout*1000); @@ -893,12 +889,6 @@ adastart(struct cam_periph *periph, unio &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,6 +901,21 @@ adastart(struct cam_periph *periph, unio } 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); + } } } @@ -931,16 +936,12 @@ adadone(struct cam_periph *periph, union 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 @@ adadone(struct cam_periph *periph, union 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 @@ adasetgeom(struct cam_periph *periph, st 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; From owner-svn-src-stable-8@FreeBSD.ORG Tue Nov 17 15:04:58 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D0B0A106568D; Tue, 17 Nov 2009 15:04:58 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id BDD0A8FC14; Tue, 17 Nov 2009 15:04:58 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nAHF4wa6015189; Tue, 17 Nov 2009 15:04:58 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nAHF4wt4015186; Tue, 17 Nov 2009 15:04:58 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <200911171504.nAHF4wt4015186@svn.freebsd.org> From: Alexander Motin Date: Tue, 17 Nov 2009 15:04:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r199387 - in stable/8/sys/cam: . ata X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Nov 2009 15:04:59 -0000 Author: mav Date: Tue Nov 17 15:04:58 2009 New Revision: 199387 URL: http://svn.freebsd.org/changeset/base/199387 Log: MFC r198331: Separate CAM_DEV_IDENTIFY_DATA_VALID flag from CAM_DEV_INQUIRY_DATA_VALID. Add workaround for very old devices without support for mode setting. Add some PATA bus scanning support. Remove some SCSIsms. Modified: stable/8/sys/cam/ata/ata_xpt.c stable/8/sys/cam/cam_xpt_internal.h Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) Modified: stable/8/sys/cam/ata/ata_xpt.c ============================================================================== --- stable/8/sys/cam/ata/ata_xpt.c Tue Nov 17 14:56:00 2009 (r199386) +++ stable/8/sys/cam/ata/ata_xpt.c Tue Nov 17 15:04:58 2009 (r199387) @@ -62,7 +62,6 @@ __FBSDID("$FreeBSD$"); #include #include -#include #include #include /* for xpt_print below */ #include "opt_cam.h" @@ -755,11 +754,8 @@ probedone(struct cam_periph *periph, uni 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 @@ device_fail: 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 @@ device_fail: 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 @@ device_fail: } 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 @@ device_fail: } 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 @@ device_fail: 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 @@ ata_scan_bus(struct cam_periph *periph, } 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) @@ -1400,68 +1402,29 @@ static void 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); @@ -1474,7 +1437,6 @@ ata_device_transport(struct cam_path *pa cts.proto_specific.valid = 0; cts.xport_specific.valid = 0; xpt_action((union ccb *)&cts); -#endif } static void @@ -1630,114 +1592,6 @@ scsi_set_transfer_settings(struct ccb_tr 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; Modified: stable/8/sys/cam/cam_xpt_internal.h ============================================================================== --- stable/8/sys/cam/cam_xpt_internal.h Tue Nov 17 14:56:00 2009 (r199386) +++ stable/8/sys/cam/cam_xpt_internal.h Tue Nov 17 15:04:58 2009 (r199387) @@ -116,6 +116,7 @@ struct cam_ed { #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; From owner-svn-src-stable-8@FreeBSD.ORG Tue Nov 17 15:08:02 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6C7BD106568B; Tue, 17 Nov 2009 15:08:02 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 5A8F58FC13; Tue, 17 Nov 2009 15:08:02 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nAHF82QH015470; Tue, 17 Nov 2009 15:08:02 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nAHF82lN015468; Tue, 17 Nov 2009 15:08:02 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <200911171508.nAHF82lN015468@svn.freebsd.org> From: Alexander Motin Date: Tue, 17 Nov 2009 15:08:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r199388 - stable/8/sys/cam X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Nov 2009 15:08:02 -0000 Author: mav Date: Tue Nov 17 15:08:01 2009 New Revision: 199388 URL: http://svn.freebsd.org/changeset/base/199388 Log: MFC r198333: Do not search for bus when it is not needed. Modified: stable/8/sys/cam/cam_xpt.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) Modified: stable/8/sys/cam/cam_xpt.c ============================================================================== --- stable/8/sys/cam/cam_xpt.c Tue Nov 17 15:04:58 2009 (r199387) +++ stable/8/sys/cam/cam_xpt.c Tue Nov 17 15:08:01 2009 (r199388) @@ -4148,8 +4148,6 @@ xpt_release_simq(struct cam_sim *sim, in 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 @@ xpt_release_simq(struct cam_sim *sim, in 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); } } } From owner-svn-src-stable-8@FreeBSD.ORG Tue Nov 17 15:14:13 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C11F71065672; Tue, 17 Nov 2009 15:14:13 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id AF0EA8FC08; Tue, 17 Nov 2009 15:14:13 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nAHFEDOZ016070; Tue, 17 Nov 2009 15:14:13 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nAHFEDd5016067; Tue, 17 Nov 2009 15:14:13 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <200911171514.nAHFEDd5016067@svn.freebsd.org> From: Alexander Motin Date: Tue, 17 Nov 2009 15:14:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r199389 - stable/8/sys/cam X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Nov 2009 15:14:13 -0000 Author: mav Date: Tue Nov 17 15:14:13 2009 New Revision: 199389 URL: http://svn.freebsd.org/changeset/base/199389 Log: MFC r198372, r198377: Implement cam_ccbq_fini(). This is effectively NULL change, but makes this API a bit more consistent. Modified: stable/8/sys/cam/cam_queue.c stable/8/sys/cam/cam_xpt.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) Modified: stable/8/sys/cam/cam_queue.c ============================================================================== --- stable/8/sys/cam/cam_queue.c Tue Nov 17 15:08:01 2009 (r199388) +++ stable/8/sys/cam/cam_queue.c Tue Nov 17 15:14:13 2009 (r199389) @@ -289,7 +289,7 @@ void 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 @@ cam_ccbq_init(struct cam_ccbq *ccbq, int return (0); } +void +cam_ccbq_fini(struct cam_ccbq *ccbq) +{ + + camq_fini(&ccbq->queue); +} + /* * Heap routines for manipulating CAM queues. */ Modified: stable/8/sys/cam/cam_xpt.c ============================================================================== --- stable/8/sys/cam/cam_xpt.c Tue Nov 17 15:08:01 2009 (r199388) +++ stable/8/sys/cam/cam_xpt.c Tue Nov 17 15:14:13 2009 (r199389) @@ -4447,7 +4447,7 @@ xpt_release_device(struct cam_eb *bus, s 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); } From owner-svn-src-stable-8@FreeBSD.ORG Tue Nov 17 15:16:22 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 207E41065672; Tue, 17 Nov 2009 15:16:22 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 0ECF98FC1D; Tue, 17 Nov 2009 15:16:22 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nAHFGLvg016334; Tue, 17 Nov 2009 15:16:21 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nAHFGLfZ016332; Tue, 17 Nov 2009 15:16:21 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <200911171516.nAHFGLfZ016332@svn.freebsd.org> From: Alexander Motin Date: Tue, 17 Nov 2009 15:16:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r199390 - stable/8/sys/cam/scsi X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Nov 2009 15:16:22 -0000 Author: mav Date: Tue Nov 17 15:16:21 2009 New Revision: 199390 URL: http://svn.freebsd.org/changeset/base/199390 Log: MFC r198381: Remove some obsoleted comments. Modified: stable/8/sys/cam/scsi/scsi_da.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) Modified: stable/8/sys/cam/scsi/scsi_da.c ============================================================================== --- stable/8/sys/cam/scsi/scsi_da.c Tue Nov 17 15:14:13 2009 (r199389) +++ stable/8/sys/cam/scsi/scsi_da.c Tue Nov 17 15:16:21 2009 (r199390) @@ -813,19 +813,6 @@ dastrategy(struct bio *bp) 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 */ From owner-svn-src-stable-8@FreeBSD.ORG Tue Nov 17 15:28:14 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E6C5B106566C; Tue, 17 Nov 2009 15:28:14 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id D4FAB8FC22; Tue, 17 Nov 2009 15:28:14 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nAHFSEkC017315; Tue, 17 Nov 2009 15:28:14 GMT (envelope-from jhb@svn.freebsd.org) Received: (from jhb@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nAHFSEf6017313; Tue, 17 Nov 2009 15:28:14 GMT (envelope-from jhb@svn.freebsd.org) Message-Id: <200911171528.nAHFSEf6017313@svn.freebsd.org> From: John Baldwin Date: Tue, 17 Nov 2009 15:28:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r199391 - stable/8/sbin/ddb X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Nov 2009 15:28:15 -0000 Author: jhb Date: Tue Nov 17 15:28:14 2009 New Revision: 199391 URL: http://svn.freebsd.org/changeset/base/199391 Log: MFC 198820: Ensure 'kvm' is always initialized. If "-M" was not specified and the garbage value on the stack was not zero, then 'ddb capture' would try to use the garbage value as a kvm_t pointer. Modified: stable/8/sbin/ddb/ddb_capture.c Directory Properties: stable/8/sbin/ddb/ (props changed) Modified: stable/8/sbin/ddb/ddb_capture.c ============================================================================== --- stable/8/sbin/ddb/ddb_capture.c Tue Nov 17 15:16:21 2009 (r199390) +++ stable/8/sbin/ddb/ddb_capture.c Tue Nov 17 15:28:14 2009 (r199391) @@ -204,6 +204,7 @@ ddb_capture(int argc, char *argv[]) mflag = NULL; nflag = NULL; + kvm = NULL; while ((ch = getopt(argc, argv, "M:N:")) != -1) { switch (ch) { case 'M': From owner-svn-src-stable-8@FreeBSD.ORG Tue Nov 17 15:30:16 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 921031065670; Tue, 17 Nov 2009 15:30:16 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 7FE5D8FC2B; Tue, 17 Nov 2009 15:30:16 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nAHFUGHb017556; Tue, 17 Nov 2009 15:30:16 GMT (envelope-from jhb@svn.freebsd.org) Received: (from jhb@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nAHFUGvb017554; Tue, 17 Nov 2009 15:30:16 GMT (envelope-from jhb@svn.freebsd.org) Message-Id: <200911171530.nAHFUGvb017554@svn.freebsd.org> From: John Baldwin Date: Tue, 17 Nov 2009 15:30:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r199393 - stable/8/secure/usr.bin/bdes X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Nov 2009 15:30:16 -0000 Author: jhb Date: Tue Nov 17 15:30:16 2009 New Revision: 199393 URL: http://svn.freebsd.org/changeset/base/199393 Log: MFC 198856: Fix a couple of comment typos. Modified: stable/8/secure/usr.bin/bdes/bdes.c Directory Properties: stable/8/secure/usr.bin/bdes/ (props changed) Modified: stable/8/secure/usr.bin/bdes/bdes.c ============================================================================== --- stable/8/secure/usr.bin/bdes/bdes.c Tue Nov 17 15:28:25 2009 (r199392) +++ stable/8/secure/usr.bin/bdes/bdes.c Tue Nov 17 15:30:16 2009 (r199393) @@ -170,11 +170,11 @@ main(int argc, char *argv[]) int i; /* counter in a for loop */ char *p; /* used to obtain the key */ DES_cblock msgbuf; /* I/O buffer */ - int kflag; /* command-line encryptiooon key */ + int kflag; /* command-line encryption key */ setproctitle("-"); /* Hide command-line arguments */ - /* initialize the initialization vctor */ + /* initialize the initialization vector */ MEMZERO(ivec, 8); /* process the argument list */ From owner-svn-src-stable-8@FreeBSD.ORG Tue Nov 17 15:56:45 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id BA2E6106568F; Tue, 17 Nov 2009 15:56:45 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 9E8768FC1B; Tue, 17 Nov 2009 15:56:45 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nAHFujkF019397; Tue, 17 Nov 2009 15:56:45 GMT (envelope-from jhb@svn.freebsd.org) Received: (from jhb@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nAHFujg8019392; Tue, 17 Nov 2009 15:56:45 GMT (envelope-from jhb@svn.freebsd.org) Message-Id: <200911171556.nAHFujg8019392@svn.freebsd.org> From: John Baldwin Date: Tue, 17 Nov 2009 15:56:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r199396 - in stable/8/sys: amd64/conf i386/conf pc98/conf sparc64/conf X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Nov 2009 15:56:45 -0000 Author: jhb Date: Tue Nov 17 15:56:45 2009 New Revision: 199396 URL: http://svn.freebsd.org/changeset/base/199396 Log: MFC 198043: Move the USB wireless drivers down into their own section next to the USB ethernet drivers. Modified: stable/8/sys/amd64/conf/GENERIC stable/8/sys/i386/conf/GENERIC stable/8/sys/pc98/conf/GENERIC stable/8/sys/sparc64/conf/GENERIC Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) Modified: stable/8/sys/amd64/conf/GENERIC ============================================================================== --- stable/8/sys/amd64/conf/GENERIC Tue Nov 17 15:47:19 2009 (r199395) +++ stable/8/sys/amd64/conf/GENERIC Tue Nov 17 15:56:45 2009 (r199396) @@ -288,10 +288,6 @@ device ukbd # Keyboard 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 @@ -310,6 +306,11 @@ device cue # CATC USB Ethernet 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 Modified: stable/8/sys/i386/conf/GENERIC ============================================================================== --- stable/8/sys/i386/conf/GENERIC Tue Nov 17 15:47:19 2009 (r199395) +++ stable/8/sys/i386/conf/GENERIC Tue Nov 17 15:56:45 2009 (r199396) @@ -301,10 +301,6 @@ device ukbd # Keyboard device ulpt # Printer device umass # Disks/Mass storage - Requires scbus and da device ums # Mouse -device rum # Ralink Technology RT2501USB wireless NICs -device ural # Ralink Technology RT2500USB wireless NICs -device uath # Atheros AR5523 wireless NICs -device zyd # ZyDAS zb1211/zb1211b wireless NICs device urio # Diamond Rio 500 MP3 player # USB Serial devices device u3g # USB-based 3G modems (Option, Huawei, Sierra) @@ -324,6 +320,11 @@ device cue # CATC USB Ethernet 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 Modified: stable/8/sys/pc98/conf/GENERIC ============================================================================== --- stable/8/sys/pc98/conf/GENERIC Tue Nov 17 15:47:19 2009 (r199395) +++ stable/8/sys/pc98/conf/GENERIC Tue Nov 17 15:56:45 2009 (r199396) @@ -255,10 +255,6 @@ device bpf # Berkeley packet filter #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 @@ -278,6 +274,11 @@ device bpf # Berkeley packet filter #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 Modified: stable/8/sys/sparc64/conf/GENERIC ============================================================================== --- stable/8/sys/sparc64/conf/GENERIC Tue Nov 17 15:47:19 2009 (r199395) +++ stable/8/sys/sparc64/conf/GENERIC Tue Nov 17 15:56:45 2009 (r199396) @@ -230,10 +230,6 @@ device ukbd # Keyboard 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 @@ -252,6 +248,11 @@ device cue # CATC USB Ethernet 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 From owner-svn-src-stable-8@FreeBSD.ORG Tue Nov 17 16:11:53 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7A11D106566B; Tue, 17 Nov 2009 16:11:53 +0000 (UTC) (envelope-from ume@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 4F4858FC13; Tue, 17 Nov 2009 16:11:53 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nAHGBrXe020471; Tue, 17 Nov 2009 16:11:53 GMT (envelope-from ume@svn.freebsd.org) Received: (from ume@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nAHGBrlS020469; Tue, 17 Nov 2009 16:11:53 GMT (envelope-from ume@svn.freebsd.org) Message-Id: <200911171611.nAHGBrlS020469@svn.freebsd.org> From: Hajimu UMEMOTO Date: Tue, 17 Nov 2009 16:11:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r199399 - stable/8/sys/net X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Nov 2009 16:11:53 -0000 Author: ume Date: Tue Nov 17 16:11:53 2009 New Revision: 199399 URL: http://svn.freebsd.org/changeset/base/199399 Log: MFC r197286, r197306: V_irtualize the lltables list, making ARP and ND reasonably usable again with options VIMAGE kernels. Discussed with: hrs Modified: stable/8/sys/net/if_llatbl.c Directory Properties: stable/8/sys/net/ (props changed) Modified: stable/8/sys/net/if_llatbl.c ============================================================================== --- stable/8/sys/net/if_llatbl.c Tue Nov 17 16:00:41 2009 (r199398) +++ stable/8/sys/net/if_llatbl.c Tue Nov 17 16:11:53 2009 (r199399) @@ -57,11 +57,14 @@ __FBSDID("$FreeBSD$"); MALLOC_DEFINE(M_LLTABLE, "lltable", "link level address tables"); -static SLIST_HEAD(, lltable) lltables = SLIST_HEAD_INITIALIZER(lltables); +static VNET_DEFINE(SLIST_HEAD(, lltable), lltables); +#define V_lltables VNET(lltables) extern void arprequest(struct ifnet *, struct in_addr *, struct in_addr *, u_char *); +static void vnet_lltable_init(void); + struct rwlock lltable_rwlock; RW_SYSINIT(lltable_rwlock, &lltable_rwlock, "lltable_rwlock"); @@ -75,7 +78,7 @@ lltable_sysctl_dumparp(int af, struct sy int error = 0; LLTABLE_RLOCK(); - SLIST_FOREACH(llt, &lltables, llt_link) { + SLIST_FOREACH(llt, &V_lltables, llt_link) { if (llt->llt_af == af) { error = llt->llt_dump(llt, wr); if (error != 0) @@ -157,7 +160,7 @@ lltable_free(struct lltable *llt) KASSERT(llt != NULL, ("%s: llt is NULL", __func__)); LLTABLE_WLOCK(); - SLIST_REMOVE(&lltables, llt, lltable, llt_link); + SLIST_REMOVE(&V_lltables, llt, lltable, llt_link); LLTABLE_WUNLOCK(); for (i=0; i < LLTBL_HASHTBL_SIZE; i++) { @@ -180,7 +183,7 @@ lltable_drain(int af) register int i; LLTABLE_RLOCK(); - SLIST_FOREACH(llt, &lltables, llt_link) { + SLIST_FOREACH(llt, &V_lltables, llt_link) { if (llt->llt_af != af) continue; @@ -202,7 +205,7 @@ lltable_prefix_free(int af, struct socka struct lltable *llt; LLTABLE_RLOCK(); - SLIST_FOREACH(llt, &lltables, llt_link) { + SLIST_FOREACH(llt, &V_lltables, llt_link) { if (llt->llt_af != af) continue; @@ -232,7 +235,7 @@ lltable_init(struct ifnet *ifp, int af) LIST_INIT(&llt->lle_head[i]); LLTABLE_WLOCK(); - SLIST_INSERT_HEAD(&lltables, llt, llt_link); + SLIST_INSERT_HEAD(&V_lltables, llt, llt_link); LLTABLE_WUNLOCK(); return (llt); @@ -302,7 +305,7 @@ lla_rt_output(struct rt_msghdr *rtm, str /* XXX linked list may be too expensive */ LLTABLE_RLOCK(); - SLIST_FOREACH(llt, &lltables, llt_link) { + SLIST_FOREACH(llt, &V_lltables, llt_link) { if (llt->llt_af == dst->sa_family && llt->llt_ifp == ifp) break; @@ -367,3 +370,13 @@ lla_rt_output(struct rt_msghdr *rtm, str return (error); } + +static void +vnet_lltable_init() +{ + + SLIST_INIT(&V_lltables); +} +VNET_SYSINIT(vnet_lltable_init, SI_SUB_PSEUDO, SI_ORDER_FIRST, + vnet_lltable_init, NULL); + From owner-svn-src-stable-8@FreeBSD.ORG Tue Nov 17 16:15:56 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 79E271065676; Tue, 17 Nov 2009 16:15:56 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from cyrus.watson.org (cyrus.watson.org [65.122.17.42]) by mx1.freebsd.org (Postfix) with ESMTP id 4AC1D8FC0A; Tue, 17 Nov 2009 16:15:56 +0000 (UTC) Received: from bigwig.baldwin.cx (66.111.2.69.static.nyinternet.net [66.111.2.69]) by cyrus.watson.org (Postfix) with ESMTPSA id DA55546B06; Tue, 17 Nov 2009 11:15:55 -0500 (EST) Received: from jhbbsd.hudson-trading.com (unknown [209.249.190.8]) by bigwig.baldwin.cx (Postfix) with ESMTPA id 261828A020; Tue, 17 Nov 2009 11:15:55 -0500 (EST) From: John Baldwin To: Hajimu UMEMOTO Date: Tue, 17 Nov 2009 11:15:43 -0500 User-Agent: KMail/1.9.7 References: <200911171611.nAHGBrlS020469@svn.freebsd.org> In-Reply-To: <200911171611.nAHGBrlS020469@svn.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200911171115.43633.jhb@freebsd.org> X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.0.1 (bigwig.baldwin.cx); Tue, 17 Nov 2009 11:15:55 -0500 (EST) X-Virus-Scanned: clamav-milter 0.95.1 at bigwig.baldwin.cx X-Virus-Status: Clean X-Spam-Status: No, score=-2.5 required=4.2 tests=AWL,BAYES_00,RDNS_NONE autolearn=no version=3.2.5 X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on bigwig.baldwin.cx Cc: svn-src-stable@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, svn-src-stable-8@freebsd.org Subject: Re: svn commit: r199399 - stable/8/sys/net X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Nov 2009 16:15:56 -0000 On Tuesday 17 November 2009 11:11:53 am Hajimu UMEMOTO wrote: > Author: ume > Date: Tue Nov 17 16:11:53 2009 > New Revision: 199399 > URL: http://svn.freebsd.org/changeset/base/199399 > > Log: > MFC r197286, r197306: > V_irtualize the lltables list, making ARP and ND reasonably > usable again with options VIMAGE kernels. > > Discussed with: hrs Please merge kernel changes to 'sys/' rather than subdirectories of sys/ such as sys/net. For more details, see this page on using svn to merge changes: http://wiki.freebsd.org/SubversionPrimer/Merging -- John Baldwin From owner-svn-src-stable-8@FreeBSD.ORG Tue Nov 17 16:17:11 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C8F9B1065698; Tue, 17 Nov 2009 16:17:11 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id B0F278FC1E; Tue, 17 Nov 2009 16:17:11 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nAHGHBW2020828; Tue, 17 Nov 2009 16:17:11 GMT (envelope-from jhb@svn.freebsd.org) Received: (from jhb@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nAHGHBpp020826; Tue, 17 Nov 2009 16:17:11 GMT (envelope-from jhb@svn.freebsd.org) Message-Id: <200911171617.nAHGHBpp020826@svn.freebsd.org> From: John Baldwin Date: Tue, 17 Nov 2009 16:17:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r199400 - stable/8/sys/netinet X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Nov 2009 16:17:11 -0000 Author: jhb Date: Tue Nov 17 16:17:11 2009 New Revision: 199400 URL: http://svn.freebsd.org/changeset/base/199400 Log: MFC 198990: Several years ago a feature was added to TCP that casued soreceive() to send an ACK right away if data was drained from a TCP socket that had previously advertised a zero-sized window. The current code requires the receive window to be exactly zero for this to kick in. If window scaling is enabled and the window is smaller than the scale, then the effective window that is advertised is zero. However, in that case the zero-sized window handling is not enabled because the window is not exactly zero. The fix changes the code to check the raw window value against zero. Modified: stable/8/sys/netinet/tcp_output.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) Modified: stable/8/sys/netinet/tcp_output.c ============================================================================== --- stable/8/sys/netinet/tcp_output.c Tue Nov 17 16:11:53 2009 (r199399) +++ stable/8/sys/netinet/tcp_output.c Tue Nov 17 16:17:11 2009 (r199400) @@ -992,7 +992,7 @@ send: * to read more data than can be buffered prior to transmitting on * the connection. */ - if (recwin == 0) + if (th->th_win == 0) tp->t_flags |= TF_RXWIN0SENT; else tp->t_flags &= ~TF_RXWIN0SENT; From owner-svn-src-stable-8@FreeBSD.ORG Tue Nov 17 16:30:58 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1713A106566C; Tue, 17 Nov 2009 16:30:58 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 039878FC13; Tue, 17 Nov 2009 16:30:58 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nAHGUvus021843; Tue, 17 Nov 2009 16:30:57 GMT (envelope-from jhb@svn.freebsd.org) Received: (from jhb@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nAHGUvFY021842; Tue, 17 Nov 2009 16:30:57 GMT (envelope-from jhb@svn.freebsd.org) Message-Id: <200911171630.nAHGUvFY021842@svn.freebsd.org> From: John Baldwin Date: Tue, 17 Nov 2009 16:30:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r199406 - in stable/8/sys: . amd64/include/xen cddl/contrib/opensolaris contrib/dev/acpica contrib/pf dev/xen/xenpci net X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Nov 2009 16:30:58 -0000 Author: jhb Date: Tue Nov 17 16:30:57 2009 New Revision: 199406 URL: http://svn.freebsd.org/changeset/base/199406 Log: Hoist mergeinfo from sys/net/ up to sys/. Modified: Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) stable/8/sys/net/ (props changed) From owner-svn-src-stable-8@FreeBSD.ORG Tue Nov 17 16:50:57 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id F021A106566C; Tue, 17 Nov 2009 16:50:57 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id DE1D38FC16; Tue, 17 Nov 2009 16:50:57 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nAHGovIX023178; Tue, 17 Nov 2009 16:50:57 GMT (envelope-from jhb@svn.freebsd.org) Received: (from jhb@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nAHGovf1023176; Tue, 17 Nov 2009 16:50:57 GMT (envelope-from jhb@svn.freebsd.org) Message-Id: <200911171650.nAHGovf1023176@svn.freebsd.org> From: John Baldwin Date: Tue, 17 Nov 2009 16:50:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r199408 - stable/8/lib/libkvm X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Nov 2009 16:50:58 -0000 Author: jhb Date: Tue Nov 17 16:50:57 2009 New Revision: 199408 URL: http://svn.freebsd.org/changeset/base/199408 Log: MFC 198986: Fix a copy-paste bug when reading data from the last 3 (7 for PAE) bytes of a page mapped by a large page in the kernel. Modified: stable/8/lib/libkvm/kvm_i386.c Directory Properties: stable/8/lib/libkvm/ (props changed) Modified: stable/8/lib/libkvm/kvm_i386.c ============================================================================== --- stable/8/lib/libkvm/kvm_i386.c Tue Nov 17 16:43:02 2009 (r199407) +++ stable/8/lib/libkvm/kvm_i386.c Tue Nov 17 16:50:57 2009 (r199408) @@ -295,9 +295,9 @@ _kvm_vatop(kvm_t *kd, u_long va, off_t * #define PG_FRAME4M (~PAGE4M_MASK) pde_pa = ((u_long)pde & PG_FRAME4M) + (va & PAGE4M_MASK); s = _kvm_pa2off(kd, pde_pa, &ofs); - if (s < sizeof pde) { - _kvm_syserr(kd, kd->program, - "_kvm_vatop: pde_pa not found"); + if (s == 0) { + _kvm_err(kd, kd->program, + "_kvm_vatop: 4MB page address not in dump"); goto invalid; } *pa = ofs; @@ -391,9 +391,9 @@ _kvm_vatop_pae(kvm_t *kd, u_long va, off #define PG_FRAME2M (~PAGE2M_MASK) pde_pa = ((u_long)pde & PG_FRAME2M) + (va & PAGE2M_MASK); s = _kvm_pa2off(kd, pde_pa, &ofs); - if (s < sizeof pde) { - _kvm_syserr(kd, kd->program, - "_kvm_vatop_pae: pde_pa not found"); + if (s == 0) { + _kvm_err(kd, kd->program, + "_kvm_vatop: 2MB page address not in dump"); goto invalid; } *pa = ofs; From owner-svn-src-stable-8@FreeBSD.ORG Tue Nov 17 18:31:10 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0B6DC1065697; Tue, 17 Nov 2009 18:31:10 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id ED8648FC08; Tue, 17 Nov 2009 18:31:09 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nAHIV9Aw029119; Tue, 17 Nov 2009 18:31:09 GMT (envelope-from kib@svn.freebsd.org) Received: (from kib@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nAHIV9fZ029117; Tue, 17 Nov 2009 18:31:09 GMT (envelope-from kib@svn.freebsd.org) Message-Id: <200911171831.nAHIV9fZ029117@svn.freebsd.org> From: Konstantin Belousov Date: Tue, 17 Nov 2009 18:31:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r199415 - stable/8/sys/vm X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Nov 2009 18:31:10 -0000 Author: kib Date: Tue Nov 17 18:31:09 2009 New Revision: 199415 URL: http://svn.freebsd.org/changeset/base/199415 Log: MFC r198476 (by alc): Simplify the inner loop of vm_fault_copy_entry(). Approved by: alc Modified: stable/8/sys/vm/vm_fault.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) Modified: stable/8/sys/vm/vm_fault.c ============================================================================== --- stable/8/sys/vm/vm_fault.c Tue Nov 17 18:22:14 2009 (r199414) +++ stable/8/sys/vm/vm_fault.c Tue Nov 17 18:31:09 2009 (r199415) @@ -1133,20 +1133,20 @@ vm_fault_copy_entry(vm_map_t dst_map, vm { vm_object_t backing_object, dst_object, object; vm_object_t src_object; - vm_ooffset_t dst_offset; - vm_ooffset_t src_offset; - vm_pindex_t pindex; + vm_pindex_t dst_pindex, pindex, src_pindex; vm_prot_t prot; vm_offset_t vaddr; vm_page_t dst_m; vm_page_t src_m; + boolean_t src_readonly; #ifdef lint src_map++; #endif /* lint */ src_object = src_entry->object.vm_object; - src_offset = src_entry->offset; + src_pindex = OFF_TO_IDX(src_entry->offset); + src_readonly = (src_entry->protection & VM_PROT_WRITE) == 0; /* * Create the top-level object for the destination entry. (Doesn't @@ -1177,16 +1177,16 @@ vm_fault_copy_entry(vm_map_t dst_map, vm * one from the source object (it should be there) to the destination * object. */ - for (vaddr = dst_entry->start, dst_offset = 0; + for (vaddr = dst_entry->start, dst_pindex = 0; vaddr < dst_entry->end; - vaddr += PAGE_SIZE, dst_offset += PAGE_SIZE) { + vaddr += PAGE_SIZE, dst_pindex++) { /* - * Allocate a page in the destination object + * Allocate a page in the destination object. */ do { - dst_m = vm_page_alloc(dst_object, - OFF_TO_IDX(dst_offset), VM_ALLOC_NORMAL); + dst_m = vm_page_alloc(dst_object, dst_pindex, + VM_ALLOC_NORMAL); if (dst_m == NULL) { VM_OBJECT_UNLOCK(dst_object); VM_WAIT; @@ -1201,10 +1201,9 @@ vm_fault_copy_entry(vm_map_t dst_map, vm */ VM_OBJECT_LOCK(src_object); object = src_object; - pindex = 0; - while ((src_m = vm_page_lookup(object, pindex + - OFF_TO_IDX(dst_offset + src_offset))) == NULL && - (src_entry->protection & VM_PROT_WRITE) == 0 && + pindex = src_pindex + dst_pindex; + while ((src_m = vm_page_lookup(object, pindex)) == NULL && + src_readonly && (backing_object = object->backing_object) != NULL) { /* * Allow fallback to backing objects if we are reading. From owner-svn-src-stable-8@FreeBSD.ORG Tue Nov 17 18:38:01 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 19D1B106566B; Tue, 17 Nov 2009 18:38:01 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 076348FC0C; Tue, 17 Nov 2009 18:38:01 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nAHIc0RL029525; Tue, 17 Nov 2009 18:38:00 GMT (envelope-from kib@svn.freebsd.org) Received: (from kib@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nAHIc0LD029522; Tue, 17 Nov 2009 18:38:00 GMT (envelope-from kib@svn.freebsd.org) Message-Id: <200911171838.nAHIc0LD029522@svn.freebsd.org> From: Konstantin Belousov Date: Tue, 17 Nov 2009 18:38:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r199416 - stable/8/sys/vm X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Nov 2009 18:38:01 -0000 Author: kib Date: Tue Nov 17 18:38:00 2009 New Revision: 199416 URL: http://svn.freebsd.org/changeset/base/199416 Log: MFC r198505: When protection of wired read-only mapping is changed to read-write, install new shadow object behind the map entry and copy the pages from the underlying objects to it. This makes the mprotect(2) call to actually perform the requested operation instead of silently do nothing and return success, that causes SIGSEGV on later write access to the mapping. Reuse vm_fault_copy_entry() to do the copying, modifying it to behave correctly when src_entry == dst_entry. Modified: stable/8/sys/vm/vm_fault.c stable/8/sys/vm/vm_map.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) Modified: stable/8/sys/vm/vm_fault.c ============================================================================== --- stable/8/sys/vm/vm_fault.c Tue Nov 17 18:31:09 2009 (r199415) +++ stable/8/sys/vm/vm_fault.c Tue Nov 17 18:38:00 2009 (r199416) @@ -1119,7 +1119,10 @@ vm_fault_unwire(vm_map_t map, vm_offset_ * Routine: * vm_fault_copy_entry * Function: - * Copy all of the pages from a wired-down map entry to another. + * Create new shadow object backing dst_entry with private copy of + * all underlying pages. When src_entry is equal to dst_entry, + * function implements COW for wired-down map entry. Otherwise, + * it forks wired entry into dst_map. * * In/out conditions: * The source and destination maps must be locked for write. @@ -1131,19 +1134,20 @@ vm_fault_copy_entry(vm_map_t dst_map, vm vm_map_entry_t dst_entry, vm_map_entry_t src_entry, vm_ooffset_t *fork_charge) { - vm_object_t backing_object, dst_object, object; - vm_object_t src_object; + vm_object_t backing_object, dst_object, object, src_object; vm_pindex_t dst_pindex, pindex, src_pindex; - vm_prot_t prot; + vm_prot_t access, prot; vm_offset_t vaddr; vm_page_t dst_m; vm_page_t src_m; - boolean_t src_readonly; + boolean_t src_readonly, upgrade; #ifdef lint src_map++; #endif /* lint */ + upgrade = src_entry == dst_entry; + src_object = src_entry->object.vm_object; src_pindex = OFF_TO_IDX(src_entry->offset); src_readonly = (src_entry->protection & VM_PROT_WRITE) == 0; @@ -1160,17 +1164,34 @@ vm_fault_copy_entry(vm_map_t dst_map, vm #endif VM_OBJECT_LOCK(dst_object); - KASSERT(dst_entry->object.vm_object == NULL, + KASSERT(upgrade || dst_entry->object.vm_object == NULL, ("vm_fault_copy_entry: vm_object not NULL")); dst_entry->object.vm_object = dst_object; dst_entry->offset = 0; - dst_object->uip = curthread->td_ucred->cr_ruidinfo; - uihold(dst_object->uip); dst_object->charge = dst_entry->end - dst_entry->start; - KASSERT(dst_entry->uip == NULL, - ("vm_fault_copy_entry: leaked swp charge")); - *fork_charge += dst_object->charge; - prot = dst_entry->max_protection; + if (fork_charge != NULL) { + KASSERT(dst_entry->uip == NULL, + ("vm_fault_copy_entry: leaked swp charge")); + dst_object->uip = curthread->td_ucred->cr_ruidinfo; + uihold(dst_object->uip); + *fork_charge += dst_object->charge; + } else { + dst_object->uip = dst_entry->uip; + dst_entry->uip = NULL; + } + access = prot = dst_entry->max_protection; + /* + * If not an upgrade, then enter the mappings in the pmap as + * read and/or execute accesses. Otherwise, enter them as + * write accesses. + * + * A writeable large page mapping is only created if all of + * the constituent small page mappings are modified. Marking + * PTEs as modified on inception allows promotion to happen + * without taking potentially large number of soft faults. + */ + if (!upgrade) + access &= ~VM_PROT_WRITE; /* * Loop through all of the pages in the entry's range, copying each @@ -1221,21 +1242,30 @@ vm_fault_copy_entry(vm_map_t dst_map, vm VM_OBJECT_UNLOCK(dst_object); /* - * Enter it in the pmap as a read and/or execute access. + * Enter it in the pmap. If a wired, copy-on-write + * mapping is being replaced by a write-enabled + * mapping, then wire that new mapping. */ - pmap_enter(dst_map->pmap, vaddr, prot & ~VM_PROT_WRITE, dst_m, - prot, FALSE); + pmap_enter(dst_map->pmap, vaddr, access, dst_m, prot, upgrade); /* * Mark it no longer busy, and put it on the active list. */ VM_OBJECT_LOCK(dst_object); vm_page_lock_queues(); - vm_page_activate(dst_m); + if (upgrade) { + vm_page_unwire(src_m, 0); + vm_page_wire(dst_m); + } else + vm_page_activate(dst_m); vm_page_unlock_queues(); vm_page_wakeup(dst_m); } VM_OBJECT_UNLOCK(dst_object); + if (upgrade) { + dst_entry->eflags &= ~(MAP_ENTRY_COW | MAP_ENTRY_NEEDS_COPY); + vm_object_deallocate(src_object); + } } Modified: stable/8/sys/vm/vm_map.c ============================================================================== --- stable/8/sys/vm/vm_map.c Tue Nov 17 18:31:09 2009 (r199415) +++ stable/8/sys/vm/vm_map.c Tue Nov 17 18:38:00 2009 (r199416) @@ -1805,10 +1805,10 @@ int vm_map_protect(vm_map_t map, vm_offset_t start, vm_offset_t end, vm_prot_t new_prot, boolean_t set_max) { - vm_map_entry_t current; - vm_map_entry_t entry; + vm_map_entry_t current, entry; vm_object_t obj; struct uidinfo *uip; + vm_prot_t old_prot; vm_map_lock(map); @@ -1897,9 +1897,8 @@ vm_map_protect(vm_map_t map, vm_offset_t */ current = entry; while ((current != &map->header) && (current->start < end)) { - vm_prot_t old_prot; - old_prot = current->protection; + if (set_max) current->protection = (current->max_protection = new_prot) & @@ -1907,6 +1906,13 @@ vm_map_protect(vm_map_t map, vm_offset_t else current->protection = new_prot; + if ((current->eflags & (MAP_ENTRY_COW | MAP_ENTRY_USER_WIRED)) + == (MAP_ENTRY_COW | MAP_ENTRY_USER_WIRED) && + (current->protection & VM_PROT_WRITE) != 0 && + (old_prot & VM_PROT_WRITE) == 0) { + vm_fault_copy_entry(map, map, current, current, NULL); + } + /* * Update physical map if necessary. Worry about copy-on-write * here. From owner-svn-src-stable-8@FreeBSD.ORG Tue Nov 17 19:36:06 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8DA641065670; Tue, 17 Nov 2009 19:36:06 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 621718FC0A; Tue, 17 Nov 2009 19:36:06 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nAHJa6c0033236; Tue, 17 Nov 2009 19:36:06 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nAHJa6oc033233; Tue, 17 Nov 2009 19:36:06 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <200911171936.nAHJa6oc033233@svn.freebsd.org> From: Alexander Motin Date: Tue, 17 Nov 2009 19:36:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r199420 - in stable/8/sys/dev: ahci siis X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Nov 2009 19:36:06 -0000 Author: mav Date: Tue Nov 17 19:36:06 2009 New Revision: 199420 URL: http://svn.freebsd.org/changeset/base/199420 Log: MFC r197838: On command timeout handle frozen command first, to not run it inside XXX_end_transaction(). Modified: stable/8/sys/dev/ahci/ahci.c stable/8/sys/dev/siis/siis.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) Modified: stable/8/sys/dev/ahci/ahci.c ============================================================================== --- stable/8/sys/dev/ahci/ahci.c Tue Nov 17 19:35:39 2009 (r199419) +++ stable/8/sys/dev/ahci/ahci.c Tue Nov 17 19:36:06 2009 (r199420) @@ -1259,15 +1259,16 @@ ahci_timeout(struct ahci_slot *slot) if (!ch->readlog) xpt_freeze_simq(ch->sim, ch->numrslots); - /* Handle command with timeout. */ - ahci_end_transaction(&ch->slot[slot->slot], AHCI_ERR_TIMEOUT); - /* Handle the rest of commands. */ + /* Handle frozen command. */ if (ch->frozen) { union ccb *fccb = ch->frozen; ch->frozen = NULL; fccb->ccb_h.status = CAM_REQUEUE_REQ | CAM_RELEASE_SIMQ; xpt_done(fccb); } + /* Handle command with timeout. */ + ahci_end_transaction(&ch->slot[slot->slot], AHCI_ERR_TIMEOUT); + /* Handle the rest of commands. */ for (i = 0; i < ch->numslots; i++) { /* Do we have a running request on slot? */ if (ch->slot[i].state < AHCI_SLOT_RUNNING) Modified: stable/8/sys/dev/siis/siis.c ============================================================================== --- stable/8/sys/dev/siis/siis.c Tue Nov 17 19:35:39 2009 (r199419) +++ stable/8/sys/dev/siis/siis.c Tue Nov 17 19:36:06 2009 (r199420) @@ -982,15 +982,16 @@ device_printf(dev, "%s is %08x ss %08x r if (!ch->readlog) xpt_freeze_simq(ch->sim, ch->numrslots); - /* Handle command with timeout. */ - siis_end_transaction(&ch->slot[slot->slot], SIIS_ERR_TIMEOUT); - /* Handle the rest of commands. */ + /* Handle frozen command. */ if (ch->frozen) { union ccb *fccb = ch->frozen; ch->frozen = NULL; fccb->ccb_h.status = CAM_REQUEUE_REQ | CAM_RELEASE_SIMQ; xpt_done(fccb); } + /* Handle command with timeout. */ + siis_end_transaction(&ch->slot[slot->slot], SIIS_ERR_TIMEOUT); + /* Handle the rest of commands. */ for (i = 0; i < SIIS_MAX_SLOTS; i++) { /* Do we have a running request on slot? */ if (ch->slot[i].state < SIIS_SLOT_RUNNING) From owner-svn-src-stable-8@FreeBSD.ORG Tue Nov 17 19:38:20 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5CF36106566B; Tue, 17 Nov 2009 19:38:20 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 49BA38FC1B; Tue, 17 Nov 2009 19:38:20 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nAHJcKUc033450; Tue, 17 Nov 2009 19:38:20 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nAHJcKJd033435; Tue, 17 Nov 2009 19:38:20 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <200911171938.nAHJcKJd033435@svn.freebsd.org> From: Alexander Motin Date: Tue, 17 Nov 2009 19:38:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r199421 - in stable/8/sys/cam: . ata scsi X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Nov 2009 19:38:20 -0000 Author: mav Date: Tue Nov 17 19:38:19 2009 New Revision: 199421 URL: http://svn.freebsd.org/changeset/base/199421 Log: MFC r198382, r198385: Replace most of priority numbers with defines. No logical changes. Modified: stable/8/sys/cam/ata/ata_da.c stable/8/sys/cam/ata/ata_xpt.c stable/8/sys/cam/cam.h stable/8/sys/cam/cam_periph.c stable/8/sys/cam/cam_xpt.c stable/8/sys/cam/scsi/scsi_all.c stable/8/sys/cam/scsi/scsi_cd.c stable/8/sys/cam/scsi/scsi_ch.c stable/8/sys/cam/scsi/scsi_da.c stable/8/sys/cam/scsi/scsi_pt.c stable/8/sys/cam/scsi/scsi_sa.c stable/8/sys/cam/scsi/scsi_targ_bh.c stable/8/sys/cam/scsi/scsi_target.c stable/8/sys/cam/scsi/scsi_xpt.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) Modified: stable/8/sys/cam/ata/ata_da.c ============================================================================== --- stable/8/sys/cam/ata/ata_da.c Tue Nov 17 19:36:06 2009 (r199420) +++ stable/8/sys/cam/ata/ata_da.c Tue Nov 17 19:38:19 2009 (r199421) @@ -270,7 +270,7 @@ adaclose(struct disk *dp) /* We only sync the cache if the drive is capable of it. */ if (softc->flags & ADA_FLAG_CAN_FLUSHCACHE) { - ccb = cam_periph_getccb(periph, /*priority*/1); + ccb = cam_periph_getccb(periph, CAM_PRIORITY_NORMAL); cam_fill_ataio(&ccb->ataio, 1, adadone, @@ -343,7 +343,7 @@ adastrategy(struct bio *bp) /* * Schedule ourselves for performing the work. */ - xpt_schedule(periph, /* XXX priority */1); + xpt_schedule(periph, CAM_PRIORITY_NORMAL); cam_periph_unlock(periph); return; @@ -377,7 +377,7 @@ adadump(void *arg, void *virtual, vm_off if (length > 0) { periph->flags |= CAM_PERIPH_POLLED; - xpt_setup_ccb(&ccb.ccb_h, periph->path, /*priority*/1); + xpt_setup_ccb(&ccb.ccb_h, periph->path, CAM_PRIORITY_NORMAL); ccb.ccb_h.ccb_state = ADA_CCB_DUMP; cam_fill_ataio(&ccb.ataio, 0, @@ -408,7 +408,7 @@ adadump(void *arg, void *virtual, vm_off } if (softc->flags & ADA_FLAG_CAN_FLUSHCACHE) { - xpt_setup_ccb(&ccb.ccb_h, periph->path, /*priority*/1); + xpt_setup_ccb(&ccb.ccb_h, periph->path, CAM_PRIORITY_NORMAL); ccb.ccb_h.ccb_state = ADA_CCB_DUMP; cam_fill_ataio(&ccb.ataio, @@ -563,7 +563,7 @@ adaasync(void *callback_arg, u_int32_t c */ softc->state = ADA_STATE_SET_MULTI; cam_periph_acquire(periph); - xpt_schedule(periph, 0); + xpt_schedule(periph, CAM_PRIORITY_DEV); break; } default: @@ -665,7 +665,7 @@ adaregister(struct cam_periph *periph, v /* Check if the SIM does not want queued commands */ bzero(&cpi, sizeof(cpi)); - xpt_setup_ccb(&cpi.ccb_h, periph->path, /*priority*/1); + xpt_setup_ccb(&cpi.ccb_h, periph->path, CAM_PRIORITY_NORMAL); cpi.ccb_h.func_code = XPT_PATH_INQ; xpt_action((union ccb *)&cpi); if (cpi.ccb_h.status != CAM_REQ_CMP || @@ -897,7 +897,7 @@ adastart(struct cam_periph *periph, unio if (bp != NULL) { /* Have more work to do, so ensure we stay scheduled */ - xpt_schedule(periph, /* XXX priority */1); + xpt_schedule(periph, CAM_PRIORITY_NORMAL); } break; } @@ -1027,7 +1027,7 @@ adadone(struct cam_periph *periph, union 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); + xpt_schedule(periph, CAM_PRIORITY_NORMAL); } cam_periph_release_locked(periph); return; @@ -1139,7 +1139,7 @@ adashutdown(void * arg, int howto) continue; } - xpt_setup_ccb(&ccb.ccb_h, periph->path, /*priority*/1); + xpt_setup_ccb(&ccb.ccb_h, periph->path, CAM_PRIORITY_NORMAL); ccb.ccb_h.ccb_state = ADA_CCB_DUMP; cam_fill_ataio(&ccb.ataio, Modified: stable/8/sys/cam/ata/ata_xpt.c ============================================================================== --- stable/8/sys/cam/ata/ata_xpt.c Tue Nov 17 19:36:06 2009 (r199420) +++ stable/8/sys/cam/ata/ata_xpt.c Tue Nov 17 19:38:19 2009 (r199421) @@ -270,7 +270,7 @@ probeschedule(struct cam_periph *periph) softc = (probe_softc *)periph->softc; ccb = (union ccb *)TAILQ_FIRST(&softc->request_ccbs); - xpt_setup_ccb(&cpi.ccb_h, periph->path, /*priority*/1); + xpt_setup_ccb(&cpi.ccb_h, periph->path, CAM_PRIORITY_NORMAL); cpi.ccb_h.func_code = XPT_PATH_INQ; xpt_action((union ccb *)&cpi); @@ -506,7 +506,7 @@ proberequestdefaultnegotiation(struct ca { struct ccb_trans_settings cts; - xpt_setup_ccb(&cts.ccb_h, periph->path, /*priority*/1); + xpt_setup_ccb(&cts.ccb_h, periph->path, CAM_PRIORITY_NORMAL); cts.ccb_h.func_code = XPT_GET_TRAN_SETTINGS; cts.type = CTS_TYPE_USER_SETTINGS; xpt_action((union ccb *)&cts); @@ -528,7 +528,7 @@ proberequestbackoff(struct cam_periph *p struct ccb_trans_settings_spi *spi; memset(&cts, 0, sizeof (cts)); - xpt_setup_ccb(&cts.ccb_h, periph->path, /*priority*/1); + xpt_setup_ccb(&cts.ccb_h, periph->path, CAM_PRIORITY_NORMAL); cts.ccb_h.func_code = XPT_GET_TRAN_SETTINGS; cts.type = CTS_TYPE_CURRENT_SETTINGS; xpt_action((union ccb *)&cts); @@ -655,7 +655,7 @@ probedone(struct cam_periph *periph, uni /* Report SIM that PM is present. */ bzero(&cts, sizeof(cts)); - xpt_setup_ccb(&cts.ccb_h, path, 1); + 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; @@ -1270,7 +1270,7 @@ ata_scan_lun(struct cam_periph *periph, CAM_DEBUG(request_ccb->ccb_h.path, CAM_DEBUG_TRACE, ("xpt_scan_lun\n")); - xpt_setup_ccb(&cpi.ccb_h, path, /*priority*/1); + xpt_setup_ccb(&cpi.ccb_h, path, CAM_PRIORITY_NORMAL); cpi.ccb_h.func_code = XPT_PATH_INQ; xpt_action((union ccb *)&cpi); @@ -1308,7 +1308,7 @@ ata_scan_lun(struct cam_periph *periph, free(new_path, M_CAMXPT); return; } - xpt_setup_ccb(&request_ccb->ccb_h, new_path, /*priority*/ 1); + xpt_setup_ccb(&request_ccb->ccb_h, new_path, CAM_PRIORITY_NORMAL); request_ccb->ccb_h.cbfcnp = xptscandone; request_ccb->ccb_h.func_code = XPT_SCAN_LUN; request_ccb->crcn.flags = flags; @@ -1407,7 +1407,7 @@ ata_device_transport(struct cam_path *pa struct ata_params *ident_buf = NULL; /* Get transport information from the SIM */ - xpt_setup_ccb(&cpi.ccb_h, path, /*priority*/1); + xpt_setup_ccb(&cpi.ccb_h, path, CAM_PRIORITY_NORMAL); cpi.ccb_h.func_code = XPT_PATH_INQ; xpt_action((union ccb *)&cpi); @@ -1427,7 +1427,7 @@ ata_device_transport(struct cam_path *pa ata_version(ident_buf->version_major) : cpi.transport_version; /* Tell the controller what we think */ - xpt_setup_ccb(&cts.ccb_h, path, /*priority*/1); + 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.transport = path->device->transport; @@ -1555,7 +1555,7 @@ scsi_set_transfer_settings(struct ccb_tr inq_data = &device->inq_data; scsi = &cts->proto_specific.scsi; - xpt_setup_ccb(&cpi.ccb_h, cts->ccb_h.path, /*priority*/1); + xpt_setup_ccb(&cpi.ccb_h, cts->ccb_h.path, CAM_PRIORITY_NORMAL); cpi.ccb_h.func_code = XPT_PATH_INQ; xpt_action((union ccb *)&cpi); @@ -1576,7 +1576,7 @@ scsi_set_transfer_settings(struct ccb_tr * Perform sanity checking against what the * controller and device can do. */ - xpt_setup_ccb(&cur_cts.ccb_h, cts->ccb_h.path, /*priority*/1); + xpt_setup_ccb(&cur_cts.ccb_h, cts->ccb_h.path, CAM_PRIORITY_NORMAL); cur_cts.ccb_h.func_code = XPT_GET_TRAN_SETTINGS; cur_cts.type = cts->type; xpt_action((union ccb *)&cur_cts); @@ -1636,7 +1636,7 @@ scsi_set_transfer_settings(struct ccb_tr device->tag_delay_count = 0; xpt_setup_ccb(&crs.ccb_h, cts->ccb_h.path, - /*priority*/1); + CAM_PRIORITY_NORMAL); crs.ccb_h.func_code = XPT_REL_SIMQ; crs.release_flags = RELSIM_RELEASE_AFTER_QEMPTY; crs.openings @@ -1669,7 +1669,7 @@ scsi_toggle_tags(struct cam_path *path) && (dev->inq_flags & (SID_Sync|SID_WBus16|SID_WBus32)) != 0)) { struct ccb_trans_settings cts; - xpt_setup_ccb(&cts.ccb_h, path, 1); + xpt_setup_ccb(&cts.ccb_h, path, CAM_PRIORITY_NORMAL); cts.protocol = PROTO_SCSI; cts.protocol_version = PROTO_VERSION_UNSPECIFIED; cts.transport = XPORT_UNSPECIFIED; Modified: stable/8/sys/cam/cam.h ============================================================================== --- stable/8/sys/cam/cam.h Tue Nov 17 19:36:06 2009 (r199420) +++ stable/8/sys/cam/cam.h Tue Nov 17 19:38:19 2009 (r199421) @@ -66,6 +66,8 @@ struct cam_periph; */ typedef struct { u_int32_t priority; +#define CAM_PRIORITY_DEV 0 +#define CAM_PRIORITY_NORMAL 1 #define CAM_PRIORITY_NONE (u_int32_t)-1 u_int32_t generation; int index; Modified: stable/8/sys/cam/cam_periph.c ============================================================================== --- stable/8/sys/cam/cam_periph.c Tue Nov 17 19:36:06 2009 (r199420) +++ stable/8/sys/cam/cam_periph.c Tue Nov 17 19:38:19 2009 (r199421) @@ -534,13 +534,13 @@ camperiphfree(struct cam_periph *periph) switch (periph->deferred_ac) { case AC_FOUND_DEVICE: ccb.ccb_h.func_code = XPT_GDEV_TYPE; - xpt_setup_ccb(&ccb.ccb_h, periph->path, /*priority*/ 1); + xpt_setup_ccb(&ccb.ccb_h, periph->path, CAM_PRIORITY_NORMAL); xpt_action(&ccb); arg = &ccb; break; case AC_PATH_REGISTERED: ccb.ccb_h.func_code = XPT_PATH_INQ; - xpt_setup_ccb(&ccb.ccb_h, periph->path, /*priority*/ 1); + xpt_setup_ccb(&ccb.ccb_h, periph->path, CAM_PRIORITY_NORMAL); xpt_action(&ccb); arg = &ccb; break; @@ -831,10 +831,10 @@ cam_periph_ioctl(struct cam_periph *peri switch(cmd){ case CAMGETPASSTHRU: - ccb = cam_periph_getccb(periph, /* priority */ 1); + ccb = cam_periph_getccb(periph, CAM_PRIORITY_NORMAL); xpt_setup_ccb(&ccb->ccb_h, ccb->ccb_h.path, - /*priority*/1); + CAM_PRIORITY_NORMAL); ccb->ccb_h.func_code = XPT_GDEVLIST; /* @@ -939,7 +939,7 @@ cam_freeze_devq(struct cam_path *path) { struct ccb_hdr ccb_h; - xpt_setup_ccb(&ccb_h, path, /*priority*/1); + xpt_setup_ccb(&ccb_h, path, CAM_PRIORITY_NORMAL); ccb_h.func_code = XPT_NOOP; ccb_h.flags = CAM_DEV_QFREEZE; xpt_action((union ccb *)&ccb_h); @@ -952,8 +952,7 @@ cam_release_devq(struct cam_path *path, { struct ccb_relsim crs; - xpt_setup_ccb(&crs.ccb_h, path, - /*priority*/1); + xpt_setup_ccb(&crs.ccb_h, path, CAM_PRIORITY_NORMAL); crs.ccb_h.func_code = XPT_REL_SIMQ; crs.ccb_h.flags = getcount_only ? CAM_DEV_QFREEZE : 0; crs.release_flags = relsim_flags; @@ -1070,7 +1069,7 @@ camperiphdone(struct cam_periph *periph, * Grab the inquiry data for this device. */ xpt_setup_ccb(&cgd.ccb_h, done_ccb->ccb_h.path, - /*priority*/ 1); + CAM_PRIORITY_NORMAL); cgd.ccb_h.func_code = XPT_GDEV_TYPE; xpt_action((union ccb *)&cgd); err_action = scsi_error_action(&done_ccb->csio, @@ -1212,7 +1211,7 @@ cam_periph_bus_settle(struct cam_periph { struct ccb_getdevstats cgds; - xpt_setup_ccb(&cgds.ccb_h, periph->path, /*priority*/1); + xpt_setup_ccb(&cgds.ccb_h, periph->path, CAM_PRIORITY_NORMAL); cgds.ccb_h.func_code = XPT_GDEV_STATS; xpt_action((union ccb *)&cgds); cam_periph_freeze_after_event(periph, &cgds.last_reset, bus_settle); @@ -1280,7 +1279,7 @@ camperiphscsistatuserror(union ccb *ccb, */ xpt_setup_ccb(&cgds.ccb_h, ccb->ccb_h.path, - /*priority*/1); + CAM_PRIORITY_NORMAL); cgds.ccb_h.func_code = XPT_GDEV_STATS; xpt_action((union ccb *)&cgds); @@ -1403,7 +1402,7 @@ camperiphscsisenseerror(union ccb *ccb, /* * Grab the inquiry data for this device. */ - xpt_setup_ccb(&cgd.ccb_h, ccb->ccb_h.path, /*priority*/ 1); + xpt_setup_ccb(&cgd.ccb_h, ccb->ccb_h.path, CAM_PRIORITY_NORMAL); cgd.ccb_h.func_code = XPT_GDEV_TYPE; xpt_action((union ccb *)&cgd); @@ -1543,14 +1542,14 @@ camperiphscsisenseerror(union ccb *ccb, if ((err_action & SS_MASK) >= SS_START) { /* - * Drop the priority to 0 so that the recovery + * Drop the priority, so that the recovery * CCB is the first to execute. Freeze the queue * after this command is sent so that we can * restore the old csio and have it queued in * the proper order before we release normal * transactions to the device. */ - ccb->ccb_h.pinfo.priority = 0; + ccb->ccb_h.pinfo.priority = CAM_PRIORITY_DEV; ccb->ccb_h.flags |= CAM_DEV_QFREEZE; ccb->ccb_h.saved_ccb_ptr = save_ccb; error = ERESTART; Modified: stable/8/sys/cam/cam_xpt.c ============================================================================== --- stable/8/sys/cam/cam_xpt.c Tue Nov 17 19:36:06 2009 (r199420) +++ stable/8/sys/cam/cam_xpt.c Tue Nov 17 19:38:19 2009 (r199421) @@ -812,7 +812,7 @@ xpt_scanner_thread(void *dummy) else ccb->ccb_h.func_code = XPT_SCAN_LUN; ccb->ccb_h.cbfcnp = xptdone; - xpt_setup_ccb(&ccb->ccb_h, ccb->ccb_h.path, 1); + xpt_setup_ccb(&ccb->ccb_h, ccb->ccb_h.path, CAM_PRIORITY_NORMAL); cam_periph_runccb(ccb, NULL, 0, 0, NULL); xpt_free_path(ccb->ccb_h.path); xpt_free_ccb(ccb); @@ -1059,7 +1059,7 @@ xpt_announce_periph(struct cam_periph *p printf("%s%d: Serial Number %.60s\n", periph->periph_name, periph->unit_number, path->device->serial_num); } - xpt_setup_ccb(&cts.ccb_h, path, /*priority*/1); + xpt_setup_ccb(&cts.ccb_h, path, CAM_PRIORITY_NORMAL); cts.ccb_h.func_code = XPT_GET_TRAN_SETTINGS; cts.type = CTS_TYPE_CURRENT_SETTINGS; xpt_action((union ccb*)&cts); @@ -1068,7 +1068,7 @@ xpt_announce_periph(struct cam_periph *p } /* Ask the SIM for its base transfer speed */ - xpt_setup_ccb(&cpi.ccb_h, path, /*priority*/1); + xpt_setup_ccb(&cpi.ccb_h, path, CAM_PRIORITY_NORMAL); cpi.ccb_h.func_code = XPT_PATH_INQ; xpt_action((union ccb *)&cpi); @@ -2335,7 +2335,7 @@ xptsetasyncfunc(struct cam_ed *device, v device->target->bus->path_id, device->target->target_id, device->lun_id); - xpt_setup_ccb(&cgd.ccb_h, &path, /*priority*/1); + xpt_setup_ccb(&cgd.ccb_h, &path, CAM_PRIORITY_NORMAL); cgd.ccb_h.func_code = XPT_GDEV_TYPE; xpt_action((union ccb *)&cgd); cur_entry->callback(cur_entry->callback_arg, @@ -2359,7 +2359,7 @@ xptsetasyncbusfunc(struct cam_eb *bus, v bus->sim->path_id, CAM_TARGET_WILDCARD, CAM_LUN_WILDCARD); - xpt_setup_ccb(&cpi.ccb_h, &path, /*priority*/1); + xpt_setup_ccb(&cpi.ccb_h, &path, CAM_PRIORITY_NORMAL); cpi.ccb_h.func_code = XPT_PATH_INQ; xpt_action((union ccb *)&cpi); cur_entry->callback(cur_entry->callback_arg, @@ -3799,7 +3799,7 @@ xpt_bus_register(struct cam_sim *sim, de if (status != CAM_REQ_CMP) printf("xpt_compile_path returned %d\n", status); - xpt_setup_ccb(&cpi.ccb_h, &path, /*priority*/1); + xpt_setup_ccb(&cpi.ccb_h, &path, CAM_PRIORITY_NORMAL); cpi.ccb_h.func_code = XPT_PATH_INQ; xpt_action((union ccb *)&cpi); @@ -4544,7 +4544,7 @@ xpt_start_tags(struct cam_path *path) newopenings = min(device->maxtags, sim->max_tagged_dev_openings); xpt_dev_ccbq_resize(path, newopenings); - xpt_setup_ccb(&crs.ccb_h, path, /*priority*/1); + xpt_setup_ccb(&crs.ccb_h, path, CAM_PRIORITY_NORMAL); crs.ccb_h.func_code = XPT_REL_SIMQ; crs.release_flags = RELSIM_RELEASE_AFTER_QEMPTY; crs.openings @@ -4571,7 +4571,7 @@ xptconfigbuscountfunc(struct cam_eb *bus busses_to_config++; xpt_compile_path(&path, NULL, bus->path_id, CAM_TARGET_WILDCARD, CAM_LUN_WILDCARD); - xpt_setup_ccb(&cpi.ccb_h, &path, /*priority*/1); + xpt_setup_ccb(&cpi.ccb_h, &path, CAM_PRIORITY_NORMAL); cpi.ccb_h.func_code = XPT_PATH_INQ; xpt_action((union ccb *)&cpi); can_negotiate = cpi.hba_inquiry; @@ -4614,7 +4614,7 @@ xptconfigfunc(struct cam_eb *bus, void * xpt_finishconfig(xpt_periph, NULL); return(0); } - xpt_setup_ccb(&work_ccb->ccb_h, path, /*priority*/1); + xpt_setup_ccb(&work_ccb->ccb_h, path, CAM_PRIORITY_NORMAL); work_ccb->ccb_h.func_code = XPT_PATH_INQ; xpt_action(work_ccb); if (work_ccb->ccb_h.status != CAM_REQ_CMP) { @@ -4629,7 +4629,7 @@ xptconfigfunc(struct cam_eb *bus, void * can_negotiate &= (PI_WIDE_32|PI_WIDE_16|PI_SDTR_ABLE); if ((work_ccb->cpi.hba_misc & PIM_NOBUSRESET) == 0 && (can_negotiate != 0)) { - xpt_setup_ccb(&work_ccb->ccb_h, path, /*priority*/1); + xpt_setup_ccb(&work_ccb->ccb_h, path, CAM_PRIORITY_NORMAL); work_ccb->ccb_h.func_code = XPT_RESET_BUS; work_ccb->ccb_h.cbfcnp = NULL; CAM_DEBUG(path, CAM_DEBUG_SUBTRACE, Modified: stable/8/sys/cam/scsi/scsi_all.c ============================================================================== --- stable/8/sys/cam/scsi/scsi_all.c Tue Nov 17 19:36:06 2009 (r199420) +++ stable/8/sys/cam/scsi/scsi_all.c Tue Nov 17 19:38:19 2009 (r199421) @@ -3004,7 +3004,7 @@ scsi_command_string(struct cam_device *d */ xpt_setup_ccb(&cgd.ccb_h, csio->ccb_h.path, - /*priority*/ 1); + CAM_PRIORITY_NORMAL); cgd.ccb_h.func_code = XPT_GDEV_TYPE; xpt_action((union ccb *)&cgd); @@ -3088,7 +3088,7 @@ scsi_sense_sbuf(struct cam_device *devic */ xpt_setup_ccb(&cgd.ccb_h, csio->ccb_h.path, - /*priority*/ 1); + CAM_PRIORITY_NORMAL); cgd.ccb_h.func_code = XPT_GDEV_TYPE; xpt_action((union ccb *)&cgd); Modified: stable/8/sys/cam/scsi/scsi_cd.c ============================================================================== --- stable/8/sys/cam/scsi/scsi_cd.c Tue Nov 17 19:36:06 2009 (r199420) +++ stable/8/sys/cam/scsi/scsi_cd.c Tue Nov 17 19:38:19 2009 (r199421) @@ -673,7 +673,7 @@ cdregister(struct cam_periph *periph, vo softc->quirks = CD_Q_NONE; /* Check if the SIM does not want 6 byte commands */ - xpt_setup_ccb(&cpi.ccb_h, periph->path, /*priority*/1); + xpt_setup_ccb(&cpi.ccb_h, periph->path, CAM_PRIORITY_NORMAL); cpi.ccb_h.func_code = XPT_PATH_INQ; xpt_action((union ccb *)&cpi); if (cpi.ccb_h.status == CAM_REQ_CMP && (cpi.hba_misc & PIM_NO_6_BYTE)) @@ -1105,7 +1105,7 @@ cdschedule(struct cam_periph *periph, in * We don't do anything with the priority here. * This is strictly a fifo queue. */ - softc->pinfo.priority = 1; + softc->pinfo.priority = CAM_PRIORITY_NORMAL; softc->pinfo.generation = ++softc->changer->devq.generation; camq_insert(&softc->changer->devq, (cam_pinfo *)softc); @@ -1206,7 +1206,7 @@ cdrunchangerqueue(void *arg) /* Just in case this device is waiting */ wakeup(&softc->changer); - xpt_schedule(softc->periph, /*priority*/ 1); + xpt_schedule(softc->periph, CAM_PRIORITY_NORMAL); /* * Get rid of any pending timeouts, and set a flag to schedule new @@ -1344,7 +1344,7 @@ cdgetccb(struct cam_periph *periph, u_in * If this changer isn't already queued, queue it up. */ if (softc->pinfo.index == CAM_UNQUEUED_INDEX) { - softc->pinfo.priority = 1; + softc->pinfo.priority = CAM_PRIORITY_NORMAL; softc->pinfo.generation = ++softc->changer->devq.generation; camq_insert(&softc->changer->devq, @@ -1421,9 +1421,9 @@ cdstrategy(struct bio *bp) * differently for changers. */ if ((softc->flags & CD_FLAG_CHANGER) == 0) - xpt_schedule(periph, /* XXX priority */1); + xpt_schedule(periph, CAM_PRIORITY_NORMAL); else - cdschedule(periph, /* priority */ 1); + cdschedule(periph, CAM_PRIORITY_NORMAL); cam_periph_unlock(periph); return; @@ -1493,7 +1493,7 @@ cdstart(struct cam_periph *periph, union } if (bp != NULL) { /* Have more work to do, so ensure we stay scheduled */ - xpt_schedule(periph, /* XXX priority */1); + xpt_schedule(periph, CAM_PRIORITY_NORMAL); } break; } @@ -1668,7 +1668,7 @@ cddone(struct cam_periph *periph, union xpt_setup_ccb(&cgd.ccb_h, done_ccb->ccb_h.path, - /* priority */ 1); + CAM_PRIORITY_NORMAL); cgd.ccb_h.func_code = XPT_GDEV_TYPE; xpt_action((union ccb *)&cgd); @@ -2727,7 +2727,7 @@ cdprevent(struct cam_periph *periph, int return; } - ccb = cdgetccb(periph, /* priority */ 1); + ccb = cdgetccb(periph, CAM_PRIORITY_NORMAL); scsi_prevent(&ccb->csio, /*retries*/ 1, @@ -2901,7 +2901,7 @@ cdsize(struct cam_periph *periph, u_int3 softc = (struct cd_softc *)periph->softc; - ccb = cdgetccb(periph, /* priority */ 1); + ccb = cdgetccb(periph, CAM_PRIORITY_NORMAL); /* XXX Should be M_WAITOK */ rcap_buf = malloc(sizeof(struct scsi_read_capacity_data), @@ -3153,7 +3153,7 @@ cdreadtoc(struct cam_periph *periph, u_i ntoc = len; error = 0; - ccb = cdgetccb(periph, /* priority */ 1); + ccb = cdgetccb(periph, CAM_PRIORITY_NORMAL); csio = &ccb->csio; @@ -3200,7 +3200,7 @@ cdreadsubchannel(struct cam_periph *peri error = 0; - ccb = cdgetccb(periph, /* priority */ 1); + ccb = cdgetccb(periph, CAM_PRIORITY_NORMAL); csio = &ccb->csio; @@ -3252,7 +3252,7 @@ cdgetmode(struct cam_periph *periph, str softc = (struct cd_softc *)periph->softc; - ccb = cdgetccb(periph, /* priority */ 1); + ccb = cdgetccb(periph, CAM_PRIORITY_NORMAL); csio = &ccb->csio; @@ -3351,7 +3351,7 @@ cdsetmode(struct cam_periph *periph, str softc = (struct cd_softc *)periph->softc; - ccb = cdgetccb(periph, /* priority */ 1); + ccb = cdgetccb(periph, CAM_PRIORITY_NORMAL); csio = &ccb->csio; @@ -3443,7 +3443,7 @@ cdplay(struct cam_periph *periph, u_int3 u_int8_t cdb_len; error = 0; - ccb = cdgetccb(periph, /* priority */ 1); + ccb = cdgetccb(periph, CAM_PRIORITY_NORMAL); csio = &ccb->csio; /* * Use the smallest possible command to perform the operation. @@ -3500,7 +3500,7 @@ cdplaymsf(struct cam_periph *periph, u_i error = 0; - ccb = cdgetccb(periph, /* priority */ 1); + ccb = cdgetccb(periph, CAM_PRIORITY_NORMAL); csio = &ccb->csio; @@ -3546,7 +3546,7 @@ cdplaytracks(struct cam_periph *periph, error = 0; - ccb = cdgetccb(periph, /* priority */ 1); + ccb = cdgetccb(periph, CAM_PRIORITY_NORMAL); csio = &ccb->csio; @@ -3588,7 +3588,7 @@ cdpause(struct cam_periph *periph, u_int error = 0; - ccb = cdgetccb(periph, /* priority */ 1); + ccb = cdgetccb(periph, CAM_PRIORITY_NORMAL); csio = &ccb->csio; @@ -3625,7 +3625,7 @@ cdstartunit(struct cam_periph *periph, i error = 0; - ccb = cdgetccb(periph, /* priority */ 1); + ccb = cdgetccb(periph, CAM_PRIORITY_NORMAL); scsi_start_stop(&ccb->csio, /* retries */ 1, @@ -3653,7 +3653,7 @@ cdstopunit(struct cam_periph *periph, u_ error = 0; - ccb = cdgetccb(periph, /* priority */ 1); + ccb = cdgetccb(periph, CAM_PRIORITY_NORMAL); scsi_start_stop(&ccb->csio, /* retries */ 1, @@ -3682,7 +3682,7 @@ cdsetspeed(struct cam_periph *periph, u_ int error; error = 0; - ccb = cdgetccb(periph, /* priority */ 1); + ccb = cdgetccb(periph, CAM_PRIORITY_NORMAL); csio = &ccb->csio; /* Preserve old behavior: units in multiples of CDROM speed */ @@ -3730,7 +3730,7 @@ cdreportkey(struct cam_periph *periph, s databuf = NULL; lba = 0; - ccb = cdgetccb(periph, /* priority */ 1); + ccb = cdgetccb(periph, CAM_PRIORITY_NORMAL); switch (authinfo->format) { case DVD_REPORT_AGID: @@ -3887,7 +3887,7 @@ cdsendkey(struct cam_periph *periph, str error = 0; databuf = NULL; - ccb = cdgetccb(periph, /* priority */ 1); + ccb = cdgetccb(periph, CAM_PRIORITY_NORMAL); switch(authinfo->format) { case DVD_SEND_CHALLENGE: { @@ -3983,7 +3983,7 @@ cdreaddvdstructure(struct cam_periph *pe /* The address is reserved for many of the formats */ address = 0; - ccb = cdgetccb(periph, /* priority */ 1); + ccb = cdgetccb(periph, CAM_PRIORITY_NORMAL); switch(dvdstruct->format) { case DVD_STRUCT_PHYSICAL: Modified: stable/8/sys/cam/scsi/scsi_ch.c ============================================================================== --- stable/8/sys/cam/scsi/scsi_ch.c Tue Nov 17 19:36:06 2009 (r199420) +++ stable/8/sys/cam/scsi/scsi_ch.c Tue Nov 17 19:38:19 2009 (r199421) @@ -809,7 +809,7 @@ chmove(struct cam_periph *periph, struct fromelem = softc->sc_firsts[cm->cm_fromtype] + cm->cm_fromunit; toelem = softc->sc_firsts[cm->cm_totype] + cm->cm_tounit; - ccb = cam_periph_getccb(periph, /*priority*/ 1); + ccb = cam_periph_getccb(periph, CAM_PRIORITY_NORMAL); scsi_move_medium(&ccb->csio, /* retries */ 1, @@ -868,7 +868,7 @@ chexchange(struct cam_periph *periph, st dst1 = softc->sc_firsts[ce->ce_fdsttype] + ce->ce_fdstunit; dst2 = softc->sc_firsts[ce->ce_sdsttype] + ce->ce_sdstunit; - ccb = cam_periph_getccb(periph, /*priority*/ 1); + ccb = cam_periph_getccb(periph, CAM_PRIORITY_NORMAL); scsi_exchange_medium(&ccb->csio, /* retries */ 1, @@ -918,7 +918,7 @@ chposition(struct cam_periph *periph, st */ dst = softc->sc_firsts[cp->cp_type] + cp->cp_unit; - ccb = cam_periph_getccb(periph, /*priority*/ 1); + ccb = cam_periph_getccb(periph, CAM_PRIORITY_NORMAL); scsi_position_to_element(&ccb->csio, /* retries */ 1, @@ -1075,7 +1075,7 @@ chgetelemstatus(struct cam_periph *perip data = (caddr_t)malloc(1024, M_DEVBUF, M_WAITOK); cam_periph_lock(periph); - ccb = cam_periph_getccb(periph, /*priority*/ 1); + ccb = cam_periph_getccb(periph, CAM_PRIORITY_NORMAL); scsi_read_element_status(&ccb->csio, /* retries */ 1, @@ -1201,7 +1201,7 @@ chielem(struct cam_periph *periph, error = 0; softc = (struct ch_softc *)periph->softc; - ccb = cam_periph_getccb(periph, /*priority*/ 1); + ccb = cam_periph_getccb(periph, CAM_PRIORITY_NORMAL); scsi_initialize_element_status(&ccb->csio, /* retries */ 1, @@ -1285,7 +1285,7 @@ chsetvoltag(struct cam_periph *periph, min(strlen(csvr->csvr_voltag.cv_volid), sizeof(ssvtp.vitf))); scsi_ulto2b(csvr->csvr_voltag.cv_serial, ssvtp.minvsn); - ccb = cam_periph_getccb(periph, /*priority*/ 1); + ccb = cam_periph_getccb(periph, CAM_PRIORITY_NORMAL); scsi_send_volume_tag(&ccb->csio, /* retries */ 1, @@ -1323,7 +1323,7 @@ chgetparams(struct cam_periph *periph) softc = (struct ch_softc *)periph->softc; - ccb = cam_periph_getccb(periph, /*priority*/ 1); + ccb = cam_periph_getccb(periph, CAM_PRIORITY_NORMAL); /* * The scsi_mode_sense_data structure is just a convenience Modified: stable/8/sys/cam/scsi/scsi_da.c ============================================================================== --- stable/8/sys/cam/scsi/scsi_da.c Tue Nov 17 19:36:06 2009 (r199420) +++ stable/8/sys/cam/scsi/scsi_da.c Tue Nov 17 19:38:19 2009 (r199421) @@ -729,7 +729,7 @@ daclose(struct disk *dp) if ((softc->quirks & DA_Q_NO_SYNC_CACHE) == 0) { union ccb *ccb; - ccb = cam_periph_getccb(periph, /*priority*/1); + ccb = cam_periph_getccb(periph, CAM_PRIORITY_NORMAL); scsi_synchronize_cache(&ccb->csio, /*retries*/1, @@ -830,7 +830,7 @@ dastrategy(struct bio *bp) /* * Schedule ourselves for performing the work. */ - xpt_schedule(periph, /* XXX priority */1); + xpt_schedule(periph, CAM_PRIORITY_NORMAL); cam_periph_unlock(periph); return; @@ -860,7 +860,7 @@ dadump(void *arg, void *virtual, vm_offs if (length > 0) { periph->flags |= CAM_PERIPH_POLLED; - xpt_setup_ccb(&csio.ccb_h, periph->path, /*priority*/1); + xpt_setup_ccb(&csio.ccb_h, periph->path, CAM_PRIORITY_NORMAL); csio.ccb_h.ccb_state = DA_CCB_DUMP; scsi_read_write(&csio, /*retries*/1, @@ -897,7 +897,7 @@ dadump(void *arg, void *virtual, vm_offs */ if ((softc->quirks & DA_Q_NO_SYNC_CACHE) == 0) { - xpt_setup_ccb(&csio.ccb_h, periph->path, /*priority*/1); + xpt_setup_ccb(&csio.ccb_h, periph->path, CAM_PRIORITY_NORMAL); csio.ccb_h.ccb_state = DA_CCB_DUMP; scsi_synchronize_cache(&csio, /*retries*/1, @@ -1194,7 +1194,7 @@ daregister(struct cam_periph *periph, vo /* Check if the SIM does not want 6 byte commands */ bzero(&cpi, sizeof(cpi)); - xpt_setup_ccb(&cpi.ccb_h, periph->path, /*priority*/1); + xpt_setup_ccb(&cpi.ccb_h, periph->path, CAM_PRIORITY_NORMAL); cpi.ccb_h.func_code = XPT_PATH_INQ; xpt_action((union ccb *)&cpi); if (cpi.ccb_h.status == CAM_REQ_CMP && (cpi.hba_misc & PIM_NO_6_BYTE)) @@ -1381,7 +1381,7 @@ dastart(struct cam_periph *periph, union if (bp != NULL) { /* Have more work to do, so ensure we stay scheduled */ - xpt_schedule(periph, /* XXX priority */1); + xpt_schedule(periph, CAM_PRIORITY_NORMAL); } break; } @@ -1678,7 +1678,7 @@ dadone(struct cam_periph *periph, union xpt_setup_ccb(&cgd.ccb_h, done_ccb->ccb_h.path, - /* priority */ 1); + CAM_PRIORITY_NORMAL); cgd.ccb_h.func_code = XPT_GDEV_TYPE; xpt_action((union ccb *)&cgd); @@ -1832,7 +1832,7 @@ daprevent(struct cam_periph *periph, int return; } - ccb = cam_periph_getccb(periph, /*priority*/1); + ccb = cam_periph_getccb(periph, CAM_PRIORITY_NORMAL); scsi_prevent(&ccb->csio, /*retries*/1, @@ -1882,7 +1882,7 @@ dagetcapacity(struct cam_periph *periph) if (rcap == NULL) return (ENOMEM); - ccb = cam_periph_getccb(periph, /*priority*/1); + ccb = cam_periph_getccb(periph, CAM_PRIORITY_NORMAL); scsi_read_capacity(&ccb->csio, /*retries*/4, /*cbfncp*/dadone, @@ -1976,7 +1976,7 @@ dasetgeom(struct cam_periph *periph, uin * up with something that will make this a bootable * device. */ - xpt_setup_ccb(&ccg.ccb_h, periph->path, /*priority*/1); + xpt_setup_ccb(&ccg.ccb_h, periph->path, CAM_PRIORITY_NORMAL); ccg.ccb_h.func_code = XPT_CALC_GEOMETRY; ccg.block_size = dp->secsize; ccg.volume_size = dp->sectors; @@ -2050,7 +2050,7 @@ dashutdown(void * arg, int howto) continue; } - xpt_setup_ccb(&ccb.ccb_h, periph->path, /*priority*/1); + xpt_setup_ccb(&ccb.ccb_h, periph->path, CAM_PRIORITY_NORMAL); ccb.ccb_h.ccb_state = DA_CCB_DUMP; scsi_synchronize_cache(&ccb.csio, Modified: stable/8/sys/cam/scsi/scsi_pt.c ============================================================================== --- stable/8/sys/cam/scsi/scsi_pt.c Tue Nov 17 19:36:06 2009 (r199420) +++ stable/8/sys/cam/scsi/scsi_pt.c Tue Nov 17 19:38:19 2009 (r199421) @@ -224,7 +224,7 @@ ptstrategy(struct bio *bp) /* * Schedule ourselves for performing the work. */ - xpt_schedule(periph, /* XXX priority */1); + xpt_schedule(periph, CAM_PRIORITY_NORMAL); cam_periph_unlock(periph); return; @@ -464,7 +464,7 @@ ptstart(struct cam_periph *periph, union if (bp != NULL) { /* Have more work to do, so ensure we stay scheduled */ - xpt_schedule(periph, /* XXX priority */1); + xpt_schedule(periph, CAM_PRIORITY_NORMAL); } } } Modified: stable/8/sys/cam/scsi/scsi_sa.c ============================================================================== --- stable/8/sys/cam/scsi/scsi_sa.c Tue Nov 17 19:36:06 2009 (r199420) +++ stable/8/sys/cam/scsi/scsi_sa.c Tue Nov 17 19:38:19 2009 (r199421) @@ -786,7 +786,7 @@ sastrategy(struct bio *bp) /* * Schedule ourselves for performing the work. */ - xpt_schedule(periph, 1); + xpt_schedule(periph, CAM_PRIORITY_NORMAL); cam_periph_unlock(periph); return; @@ -1689,7 +1689,7 @@ again: if (bp != NULL) { /* Have more work to do, so ensure we stay scheduled */ - xpt_schedule(periph, 1); + xpt_schedule(periph, CAM_PRIORITY_NORMAL); } break; } Modified: stable/8/sys/cam/scsi/scsi_targ_bh.c ============================================================================== --- stable/8/sys/cam/scsi/scsi_targ_bh.c Tue Nov 17 19:36:06 2009 (r199420) +++ stable/8/sys/cam/scsi/scsi_targ_bh.c Tue Nov 17 19:38:19 2009 (r199421) @@ -240,7 +240,7 @@ targbhenlun(struct cam_periph *periph) if ((softc->flags & TARGBH_FLAG_LUN_ENABLED) != 0) return (CAM_REQ_CMP); - xpt_setup_ccb(&immed_ccb.ccb_h, periph->path, /*priority*/1); + xpt_setup_ccb(&immed_ccb.ccb_h, periph->path, CAM_PRIORITY_NORMAL); immed_ccb.ccb_h.func_code = XPT_EN_LUN; /* Don't need support for any vendor specific commands */ @@ -280,7 +280,7 @@ targbhenlun(struct cam_periph *periph) break; } - xpt_setup_ccb(&atio->ccb_h, periph->path, /*priority*/1); + xpt_setup_ccb(&atio->ccb_h, periph->path, CAM_PRIORITY_NORMAL); atio->ccb_h.func_code = XPT_ACCEPT_TARGET_IO; atio->ccb_h.cbfcnp = targbhdone; xpt_action((union ccb *)atio); @@ -318,7 +318,7 @@ targbhenlun(struct cam_periph *periph) break; } - xpt_setup_ccb(&inot->ccb_h, periph->path, /*priority*/1); + xpt_setup_ccb(&inot->ccb_h, periph->path, CAM_PRIORITY_NORMAL); inot->ccb_h.func_code = XPT_IMMED_NOTIFY; inot->ccb_h.cbfcnp = targbhdone; xpt_action((union ccb *)inot); @@ -361,7 +361,7 @@ targbhdislun(struct cam_periph *periph) softc->accept_tio_list = ((struct targbh_cmd_desc*)atio->ccb_h.ccb_descr)->atio_link; - xpt_setup_ccb(&ccb.cab.ccb_h, periph->path, /*priority*/1); + xpt_setup_ccb(&ccb.cab.ccb_h, periph->path, CAM_PRIORITY_NORMAL); ccb.cab.ccb_h.func_code = XPT_ABORT; ccb.cab.abort_ccb = (union ccb *)atio; xpt_action(&ccb); @@ -369,7 +369,7 @@ targbhdislun(struct cam_periph *periph) while ((ccb_h = SLIST_FIRST(&softc->immed_notify_slist)) != NULL) { SLIST_REMOVE_HEAD(&softc->immed_notify_slist, periph_links.sle); - xpt_setup_ccb(&ccb.cab.ccb_h, periph->path, /*priority*/1); + xpt_setup_ccb(&ccb.cab.ccb_h, periph->path, CAM_PRIORITY_NORMAL); ccb.cab.ccb_h.func_code = XPT_ABORT; ccb.cab.abort_ccb = (union ccb *)ccb_h; xpt_action(&ccb); @@ -378,7 +378,7 @@ targbhdislun(struct cam_periph *periph) /* * Dissable this lun. */ - xpt_setup_ccb(&ccb.cel.ccb_h, periph->path, /*priority*/1); + xpt_setup_ccb(&ccb.cel.ccb_h, periph->path, CAM_PRIORITY_NORMAL); ccb.cel.ccb_h.func_code = XPT_EN_LUN; ccb.cel.enable = 0; xpt_action(&ccb); @@ -528,7 +528,7 @@ targbhstart(struct cam_periph *periph, u ccbh = TAILQ_FIRST(&softc->work_queue); } if (ccbh != NULL) - xpt_schedule(periph, /*priority*/1); + xpt_schedule(periph, CAM_PRIORITY_NORMAL); } static void @@ -647,7 +647,7 @@ targbhdone(struct cam_periph *periph, un } else { TAILQ_INSERT_TAIL(&softc->work_queue, &atio->ccb_h, periph_links.tqe); - priority = 1; + priority = CAM_PRIORITY_NORMAL; } xpt_schedule(periph, priority); break; Modified: stable/8/sys/cam/scsi/scsi_target.c ============================================================================== --- stable/8/sys/cam/scsi/scsi_target.c Tue Nov 17 19:36:06 2009 (r199420) +++ stable/8/sys/cam/scsi/scsi_target.c Tue Nov 17 19:38:19 2009 (r199421) @@ -296,7 +296,7 @@ targioctl(struct cdev *dev, u_long cmd, else cdbg.flags = CAM_DEBUG_NONE; cam_periph_lock(softc->periph); - xpt_setup_ccb(&cdbg.ccb_h, softc->path, /*priority*/0); + xpt_setup_ccb(&cdbg.ccb_h, softc->path, CAM_PRIORITY_NORMAL); cdbg.ccb_h.func_code = XPT_DEBUG; cdbg.ccb_h.cbfcnp = targdone; @@ -387,7 +387,7 @@ targendislun(struct cam_path *path, int cam_status status; /* Tell the lun to begin answering selects */ - xpt_setup_ccb(&en_ccb.ccb_h, path, /*priority*/1); + xpt_setup_ccb(&en_ccb.ccb_h, path, CAM_PRIORITY_NORMAL); en_ccb.ccb_h.func_code = XPT_EN_LUN; /* Don't need support for any vendor specific commands */ en_ccb.grp6_len = grp6_len; @@ -415,7 +415,7 @@ targenable(struct targ_softc *softc, str return (CAM_LUN_ALRDY_ENA); /* Make sure SIM supports target mode */ - xpt_setup_ccb(&cpi.ccb_h, path, /*priority*/1); + xpt_setup_ccb(&cpi.ccb_h, path, CAM_PRIORITY_NORMAL); cpi.ccb_h.func_code = XPT_PATH_INQ; xpt_action((union ccb *)&cpi); status = cpi.ccb_h.status & CAM_STATUS_MASK; @@ -563,7 +563,7 @@ targwrite(struct cdev *dev, struct uio * break; } priority = fuword32(&user_ccb->ccb_h.pinfo.priority); - if (priority == -1) { + if (priority == CAM_PRIORITY_NONE) { error = EINVAL; break; } @@ -1067,7 +1067,7 @@ abort_all_pending(struct targ_softc *sof * Then abort all pending CCBs. * targdone() will return the aborted CCB via user_ccb_queue */ - xpt_setup_ccb(&cab.ccb_h, softc->path, /*priority*/0); + xpt_setup_ccb(&cab.ccb_h, softc->path, CAM_PRIORITY_NORMAL); cab.ccb_h.func_code = XPT_ABORT; cab.ccb_h.status = CAM_REQ_CMP_ERR; TAILQ_FOREACH(ccb_h, &softc->pending_ccb_queue, periph_links.tqe) { Modified: stable/8/sys/cam/scsi/scsi_xpt.c ============================================================================== --- stable/8/sys/cam/scsi/scsi_xpt.c Tue Nov 17 19:36:06 2009 (r199420) +++ stable/8/sys/cam/scsi/scsi_xpt.c Tue Nov 17 19:38:19 2009 (r199421) @@ -629,7 +629,7 @@ probeschedule(struct cam_periph *periph) softc = (probe_softc *)periph->softc; ccb = (union ccb *)TAILQ_FIRST(&softc->request_ccbs); - xpt_setup_ccb(&cpi.ccb_h, periph->path, /*priority*/1); + xpt_setup_ccb(&cpi.ccb_h, periph->path, CAM_PRIORITY_NORMAL); cpi.ccb_h.func_code = XPT_PATH_INQ; xpt_action((union ccb *)&cpi); @@ -880,7 +880,7 @@ proberequestdefaultnegotiation(struct ca { struct ccb_trans_settings cts; - xpt_setup_ccb(&cts.ccb_h, periph->path, /*priority*/1); + xpt_setup_ccb(&cts.ccb_h, periph->path, CAM_PRIORITY_NORMAL); cts.ccb_h.func_code = XPT_GET_TRAN_SETTINGS; cts.type = CTS_TYPE_USER_SETTINGS; xpt_action((union ccb *)&cts); @@ -902,7 +902,7 @@ proberequestbackoff(struct cam_periph *p struct ccb_trans_settings_spi *spi; memset(&cts, 0, sizeof (cts)); - xpt_setup_ccb(&cts.ccb_h, periph->path, /*priority*/1); + xpt_setup_ccb(&cts.ccb_h, periph->path, CAM_PRIORITY_NORMAL); cts.ccb_h.func_code = XPT_GET_TRAN_SETTINGS; cts.type = CTS_TYPE_CURRENT_SETTINGS; xpt_action((union ccb *)&cts); @@ -1748,7 +1748,7 @@ scsi_scan_lun(struct cam_periph *periph, CAM_DEBUG(request_ccb->ccb_h.path, CAM_DEBUG_TRACE, ("scsi_scan_lun\n")); - xpt_setup_ccb(&cpi.ccb_h, path, /*priority*/1); + xpt_setup_ccb(&cpi.ccb_h, path, CAM_PRIORITY_NORMAL); cpi.ccb_h.func_code = XPT_PATH_INQ; xpt_action((union ccb *)&cpi); @@ -1798,7 +1798,7 @@ scsi_scan_lun(struct cam_periph *periph, free(new_path, M_CAMXPT); return; } *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-stable-8@FreeBSD.ORG Tue Nov 17 19:40:40 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id F26EC1065672; Tue, 17 Nov 2009 19:40:39 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id DFF1C8FC28; Tue, 17 Nov 2009 19:40:39 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nAHJedPh033593; Tue, 17 Nov 2009 19:40:39 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nAHJedAs033590; Tue, 17 Nov 2009 19:40:39 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <200911171940.nAHJedAs033590@svn.freebsd.org> From: Alexander Motin Date: Tue, 17 Nov 2009 19:40:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r199422 - stable/8/sys/dev/ahci X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Nov 2009 19:40:40 -0000 Author: mav Date: Tue Nov 17 19:40:39 2009 New Revision: 199422 URL: http://svn.freebsd.org/changeset/base/199422 Log: MFC r198319: On error, freeze device queue, to allow periph driver to do proper recovery. Freeze SIM queue only in some cases, when it is needed to protect SIM. Implement better command timeout detection logic for non-queued commands. This fixes false positives when command with short timeout waiting for the long one. For example, when hald tastes CD during burning process. Read and clear SERR register on interrupt. Modified: stable/8/sys/dev/ahci/ahci.c stable/8/sys/dev/ahci/ahci.h Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) Modified: stable/8/sys/dev/ahci/ahci.c ============================================================================== --- stable/8/sys/dev/ahci/ahci.c Tue Nov 17 19:38:19 2009 (r199421) +++ stable/8/sys/dev/ahci/ahci.c Tue Nov 17 19:40:39 2009 (r199422) @@ -866,15 +866,11 @@ ahci_slotsfree(device_t dev) } static void -ahci_phy_check_events(device_t dev) +ahci_phy_check_events(device_t dev, u_int32_t serr) { struct ahci_channel *ch = device_get_softc(dev); - u_int32_t error = ATA_INL(ch->r_mem, AHCI_P_SERR); - /* Clear error bits/interrupt */ - ATA_OUTL(ch->r_mem, AHCI_P_SERR, error); - /* If we have a connection event, deal with it */ - if ((error & ATA_SE_PHY_CHANGED) && (ch->pm_level == 0)) { + if ((serr & ATA_SE_PHY_CHANGED) && (ch->pm_level == 0)) { u_int32_t status = ATA_INL(ch->r_mem, AHCI_P_SSTS); if (((status & ATA_SS_DET_MASK) == ATA_SS_DET_PHY_ONLINE) && ((status & ATA_SS_SPD_MASK) != ATA_SS_SPD_NO_SPEED) && @@ -944,7 +940,7 @@ ahci_ch_intr(void *data) { device_t dev = (device_t)data; struct ahci_channel *ch = device_get_softc(dev); - uint32_t istatus, sstatus, cstatus, sntf = 0, ok, err; + uint32_t istatus, sstatus, cstatus, serr = 0, sntf = 0, ok, err; enum ahci_err_type et; int i, ccs, ncq_err = 0; @@ -959,14 +955,20 @@ ahci_ch_intr(void *data) if ((istatus & AHCI_P_IX_SDB) && (ch->caps & AHCI_CAP_SSNTF)) sntf = ATA_INL(ch->r_mem, AHCI_P_SNTF); /* Process PHY events */ - if (istatus & (AHCI_P_IX_PRC | AHCI_P_IX_PC)) - ahci_phy_check_events(dev); + if (istatus & (AHCI_P_IX_PC | AHCI_P_IX_PRC | AHCI_P_IX_OF | + AHCI_P_IX_IF | AHCI_P_IX_HBD | AHCI_P_IX_HBF | AHCI_P_IX_TFE)) { + serr = ATA_INL(ch->r_mem, AHCI_P_SERR); + if (serr) { + ATA_OUTL(ch->r_mem, AHCI_P_SERR, serr); + ahci_phy_check_events(dev, serr); + } + } /* Process command errors */ - if (istatus & (AHCI_P_IX_IF | AHCI_P_IX_HBD | AHCI_P_IX_HBF | - AHCI_P_IX_TFE | AHCI_P_IX_OF)) { + 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), -// ATA_INL(ch->r_mem, AHCI_P_SERR)); +// 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); @@ -985,19 +987,26 @@ ahci_ch_intr(void *data) } /* On error, complete the rest of commands with error statuses. */ if (err) { - if (!ch->readlog) - xpt_freeze_simq(ch->sim, ch->numrslots); if (ch->frozen) { union ccb *fccb = ch->frozen; ch->frozen = NULL; fccb->ccb_h.status = CAM_REQUEUE_REQ | CAM_RELEASE_SIMQ; + if (!(fccb->ccb_h.status & CAM_DEV_QFRZN)) { + xpt_freeze_devq(fccb->ccb_h.path, 1); + fccb->ccb_h.status |= CAM_DEV_QFRZN; + } xpt_done(fccb); } for (i = 0; i < ch->numslots; i++) { /* XXX: reqests in loading state. */ if (((err >> i) & 1) == 0) continue; - if (istatus & AHCI_P_IX_TFE) { + 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) { /* Task File Error */ if (ch->numtslots == 0) { /* Untagged operation. */ @@ -1010,9 +1019,6 @@ ahci_ch_intr(void *data) et = AHCI_ERR_NCQ; ncq_err = 1; } - } else if (istatus & AHCI_P_IX_IF) { - /* SATA error */ - et = AHCI_ERR_SATA; } else et = AHCI_ERR_INVALID; ahci_end_transaction(&ch->slot[i], et); @@ -1121,8 +1127,6 @@ ahci_dmasetprd(void *arg, bus_dma_segmen if (error) { device_printf(slot->dev, "DMA load error\n"); - if (!ch->readlog) - xpt_freeze_simq(ch->sim, 1); ahci_end_transaction(slot, AHCI_ERR_INVALID); return; } @@ -1161,8 +1165,6 @@ ahci_execute_transaction(struct ahci_slo /* Setup the FIS for this request */ if (!(fis_size = ahci_setup_fis(ctp, ccb, slot->slot))) { device_printf(ch->dev, "Setting up SATA FIS failed\n"); - if (!ch->readlog) - xpt_freeze_simq(ch->sim, 1); ahci_end_transaction(slot, AHCI_ERR_INVALID); return; } @@ -1229,13 +1231,12 @@ ahci_execute_transaction(struct ahci_slo /* Kick controller into sane state */ ahci_stop(ch->dev); ahci_start(ch->dev); - xpt_freeze_simq(ch->sim, 1); } ahci_end_transaction(slot, et); return; } /* Start command execution timeout */ - callout_reset(&slot->timeout, (int)ccb->ccb_h.timeout * hz / 1000, + callout_reset(&slot->timeout, (int)ccb->ccb_h.timeout * hz / 2000, (timeout_t*)ahci_timeout, slot); return; } @@ -1246,24 +1247,47 @@ ahci_timeout(struct ahci_slot *slot) { device_t dev = slot->dev; struct ahci_channel *ch = device_get_softc(dev); + uint32_t sstatus; + int ccs; int i; /* Check for stale timeout. */ - if (slot->state != AHCI_SLOT_RUNNING) + if (slot->state < AHCI_SLOT_RUNNING) return; + /* Check if slot was not being executed last time we checked. */ + if (slot->state < AHCI_SLOT_EXECUTING) { + /* Check if slot started executing. */ + sstatus = ATA_INL(ch->r_mem, AHCI_P_SACT); + ccs = (ATA_INL(ch->r_mem, AHCI_P_CMD) & AHCI_P_CMD_CCS_MASK) + >> AHCI_P_CMD_CCS_SHIFT; + if ((sstatus & (1 << slot->slot)) != 0 || ccs == slot->slot) + slot->state = AHCI_SLOT_EXECUTING; + + callout_reset(&slot->timeout, + (int)slot->ccb->ccb_h.timeout * hz / 2000, + (timeout_t*)ahci_timeout, slot); + return; + } + device_printf(dev, "Timeout on slot %d\n", slot->slot); + 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); - if (!ch->readlog) - xpt_freeze_simq(ch->sim, ch->numrslots); /* Handle frozen command. */ if (ch->frozen) { union ccb *fccb = ch->frozen; ch->frozen = NULL; fccb->ccb_h.status = CAM_REQUEUE_REQ | CAM_RELEASE_SIMQ; + if (!(fccb->ccb_h.status & CAM_DEV_QFRZN)) { + xpt_freeze_devq(fccb->ccb_h.path, 1); + fccb->ccb_h.status |= CAM_DEV_QFRZN; + } xpt_done(fccb); } /* Handle command with timeout. */ @@ -1321,10 +1345,14 @@ ahci_end_transaction(struct ahci_slot *s BUS_DMASYNC_POSTREAD : BUS_DMASYNC_POSTWRITE); bus_dmamap_unload(ch->dma.data_tag, slot->dma.data_map); } + /* In case of error, freeze device for proper recovery. */ + if ((et != AHCI_ERR_NONE) && (!ch->readlog) && + !(ccb->ccb_h.status & CAM_DEV_QFRZN)) { + xpt_freeze_devq(ccb->ccb_h.path, 1); + ccb->ccb_h.status |= CAM_DEV_QFRZN; + } /* Set proper result status. */ ccb->ccb_h.status &= ~CAM_STATUS_MASK; - if (et != AHCI_ERR_NONE) - ccb->ccb_h.status |= CAM_RELEASE_SIMQ; switch (et) { case AHCI_ERR_NONE: ccb->ccb_h.status |= CAM_REQ_CMP; @@ -1338,6 +1366,7 @@ ahci_end_transaction(struct ahci_slot *s ccb->ccb_h.status |= CAM_REQUEUE_REQ; break; case AHCI_ERR_TFE: + case AHCI_ERR_NCQ: if (ccb->ccb_h.func_code == XPT_SCSI_IO) { ccb->ccb_h.status |= CAM_SCSI_STATUS_ERROR; ccb->csio.scsi_status = SCSI_STATUS_CHECK_COND; @@ -1346,13 +1375,21 @@ ahci_end_transaction(struct ahci_slot *s } break; case AHCI_ERR_SATA: - ccb->ccb_h.status |= CAM_UNCOR_PARITY; + 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; break; 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; break; - case AHCI_ERR_NCQ: - ccb->ccb_h.status |= CAM_ATA_STATUS_ERROR; default: ccb->ccb_h.status |= CAM_REQ_CMP_ERR; } @@ -1436,7 +1473,8 @@ ahci_issue_read_log(device_t dev) ataio->cmd.lba_low = 0x10; ataio->cmd.lba_mid = 0; ataio->cmd.lba_mid_exp = 0; - + /* Freeze SIM while doing READ LOG EXT. */ + xpt_freeze_simq(ch->sim, 1); ahci_begin_transaction(dev, ccb); } @@ -1491,6 +1529,7 @@ ahci_process_read_log(device_t dev, unio } free(ccb->ataio.data_ptr, M_AHCI); xpt_free_ccb(ccb); + xpt_release_simq(ch->sim, TRUE); } static void @@ -1615,12 +1654,15 @@ ahci_reset(device_t dev) if (bootverbose) device_printf(dev, "AHCI reset...\n"); - xpt_freeze_simq(ch->sim, ch->numrslots); /* Requeue freezed command. */ if (ch->frozen) { union ccb *fccb = ch->frozen; ch->frozen = NULL; fccb->ccb_h.status = CAM_REQUEUE_REQ | CAM_RELEASE_SIMQ; + if (!(fccb->ccb_h.status & CAM_DEV_QFRZN)) { + xpt_freeze_devq(fccb->ccb_h.path, 1); + fccb->ccb_h.status |= CAM_DEV_QFRZN; + } xpt_done(fccb); } /* Kill the engine and requeue all running commands. */ @@ -1632,6 +1674,8 @@ ahci_reset(device_t dev) /* XXX; Commands in loading state. */ ahci_end_transaction(&ch->slot[i], AHCI_ERR_INNOCENT); } + /* Tell the XPT about the event */ + xpt_async(AC_BUS_RESET, ch->path, NULL); /* Disable port interrupts */ ATA_OUTL(ch->r_mem, AHCI_P_IE, 0); /* Reset and reconnect PHY, */ @@ -1661,8 +1705,6 @@ ahci_reset(device_t dev) AHCI_P_IX_DS | AHCI_P_IX_PS | (ctlr->ccc ? 0 : AHCI_P_IX_DHR))); if (bootverbose) device_printf(dev, "AHCI reset done: device found\n"); - /* Tell the XPT about the event */ - xpt_async(AC_BUS_RESET, ch->path, NULL); } static int Modified: stable/8/sys/dev/ahci/ahci.h ============================================================================== --- stable/8/sys/dev/ahci/ahci.h Tue Nov 17 19:38:19 2009 (r199421) +++ stable/8/sys/dev/ahci/ahci.h Tue Nov 17 19:40:39 2009 (r199422) @@ -328,7 +328,7 @@ enum ahci_slot_states { AHCI_SLOT_EMPTY, AHCI_SLOT_LOADING, AHCI_SLOT_RUNNING, - AHCI_SLOT_WAITING + AHCI_SLOT_EXECUTING }; struct ahci_slot { From owner-svn-src-stable-8@FreeBSD.ORG Tue Nov 17 19:42:07 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3962210656CB; Tue, 17 Nov 2009 19:42:07 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 26F688FC1D; Tue, 17 Nov 2009 19:42:07 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nAHJg7gh033755; Tue, 17 Nov 2009 19:42:07 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nAHJg7Z7033753; Tue, 17 Nov 2009 19:42:07 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <200911171942.nAHJg7Z7033753@svn.freebsd.org> From: Alexander Motin Date: Tue, 17 Nov 2009 19:42:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r199423 - stable/8/sys/dev/siis X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Nov 2009 19:42:07 -0000 Author: mav Date: Tue Nov 17 19:42:06 2009 New Revision: 199423 URL: http://svn.freebsd.org/changeset/base/199423 Log: MFC r198321 Freeze device queue on error to permit periph driver to do proper recovery. Modified: stable/8/sys/dev/siis/siis.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) Modified: stable/8/sys/dev/siis/siis.c ============================================================================== --- stable/8/sys/dev/siis/siis.c Tue Nov 17 19:40:39 2009 (r199422) +++ stable/8/sys/dev/siis/siis.c Tue Nov 17 19:42:06 2009 (r199423) @@ -752,7 +752,12 @@ siis_ch_intr(void *data) if (ch->frozen) { union ccb *fccb = ch->frozen; ch->frozen = NULL; - fccb->ccb_h.status = CAM_REQUEUE_REQ | CAM_RELEASE_SIMQ; + fccb->ccb_h.status &= ~CAM_STATUS_MASK; + fccb->ccb_h.status |= CAM_REQUEUE_REQ | CAM_RELEASE_SIMQ; + if (!(fccb->ccb_h.status & CAM_DEV_QFRZN)) { + xpt_freeze_devq(fccb->ccb_h.path, 1); + fccb->ccb_h.status |= CAM_DEV_QFRZN; + } xpt_done(fccb); } if (estatus == SIIS_P_CMDERR_DEV || @@ -986,7 +991,12 @@ device_printf(dev, "%s is %08x ss %08x r if (ch->frozen) { union ccb *fccb = ch->frozen; ch->frozen = NULL; - fccb->ccb_h.status = CAM_REQUEUE_REQ | CAM_RELEASE_SIMQ; + fccb->ccb_h.status &= ~CAM_STATUS_MASK; + fccb->ccb_h.status |= CAM_REQUEUE_REQ | CAM_RELEASE_SIMQ; + if (!(fccb->ccb_h.status & CAM_DEV_QFRZN)) { + xpt_freeze_devq(fccb->ccb_h.path, 1); + fccb->ccb_h.status |= CAM_DEV_QFRZN; + } xpt_done(fccb); } /* Handle command with timeout. */ @@ -1044,11 +1054,17 @@ siis_end_transaction(struct siis_slot *s bus_dmamap_unload(ch->dma.data_tag, slot->dma.data_map); } /* Set proper result status. */ - ccb->ccb_h.status &= ~CAM_STATUS_MASK; if (et != SIIS_ERR_NONE || ch->recovery) { ch->eslots |= (1 << slot->slot); ccb->ccb_h.status |= CAM_RELEASE_SIMQ; } + /* In case of error, freeze device for proper recovery. */ + if (et != SIIS_ERR_NONE && + !(ccb->ccb_h.status & CAM_DEV_QFRZN)) { + xpt_freeze_devq(ccb->ccb_h.path, 1); + ccb->ccb_h.status |= CAM_DEV_QFRZN; + } + ccb->ccb_h.status &= ~CAM_STATUS_MASK; switch (et) { case SIIS_ERR_NONE: ccb->ccb_h.status |= CAM_REQ_CMP; @@ -1062,6 +1078,7 @@ siis_end_transaction(struct siis_slot *s ccb->ccb_h.status |= CAM_REQUEUE_REQ; break; case SIIS_ERR_TFE: + case SIIS_ERR_NCQ: if (ccb->ccb_h.func_code == XPT_SCSI_IO) { ccb->ccb_h.status |= CAM_SCSI_STATUS_ERROR; ccb->csio.scsi_status = SCSI_STATUS_CHECK_COND; @@ -1075,9 +1092,6 @@ siis_end_transaction(struct siis_slot *s case SIIS_ERR_TIMEOUT: ccb->ccb_h.status |= CAM_CMD_TIMEOUT; break; - case SIIS_ERR_NCQ: - ccb->ccb_h.status |= CAM_ATA_STATUS_ERROR; - break; default: ccb->ccb_h.status |= CAM_REQ_CMP_ERR; } @@ -1281,7 +1295,12 @@ siis_reset(device_t dev) if (ch->frozen) { union ccb *fccb = ch->frozen; ch->frozen = NULL; - fccb->ccb_h.status = CAM_REQUEUE_REQ | CAM_RELEASE_SIMQ; + fccb->ccb_h.status &= ~CAM_STATUS_MASK; + fccb->ccb_h.status |= CAM_REQUEUE_REQ | CAM_RELEASE_SIMQ; + if (!(fccb->ccb_h.status & CAM_DEV_QFRZN)) { + xpt_freeze_devq(fccb->ccb_h.path, 1); + fccb->ccb_h.status |= CAM_DEV_QFRZN; + } xpt_done(fccb); } /* Disable port interrupts */ From owner-svn-src-stable-8@FreeBSD.ORG Tue Nov 17 19:51:39 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D7227106566C; Tue, 17 Nov 2009 19:51:39 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id C5D828FC12; Tue, 17 Nov 2009 19:51:39 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nAHJpdmF034294; Tue, 17 Nov 2009 19:51:39 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nAHJpdrF034292; Tue, 17 Nov 2009 19:51:39 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <200911171951.nAHJpdrF034292@svn.freebsd.org> From: Alexander Motin Date: Tue, 17 Nov 2009 19:51:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r199424 - stable/8/sbin/camcontrol X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Nov 2009 19:51:40 -0000 Author: mav Date: Tue Nov 17 19:51:39 2009 New Revision: 199424 URL: http://svn.freebsd.org/changeset/base/199424 Log: MFC r197419: Reduce code duplication. Modified: stable/8/sbin/camcontrol/camcontrol.c Directory Properties: stable/8/sbin/camcontrol/ (props changed) Modified: stable/8/sbin/camcontrol/camcontrol.c ============================================================================== --- stable/8/sbin/camcontrol/camcontrol.c Tue Nov 17 19:42:06 2009 (r199423) +++ stable/8/sbin/camcontrol/camcontrol.c Tue Nov 17 19:51:39 2009 (r199424) @@ -1055,23 +1055,22 @@ atacapprint(struct ata_params *parm) printf("\n"); printf("PIO supported PIO"); - if (parm->atavalid & ATA_FLAG_64_70) { - if (parm->apiomodes & 0x02) - printf("4"); - else if (parm->apiomodes & 0x01) - printf("3"); - } else if (parm->mwdmamodes & 0x04) + switch (ata_max_pmode(parm)) { + case ATA_PIO4: printf("4"); - else if (parm->mwdmamodes & 0x02) + break; + case ATA_PIO3: printf("3"); - else if (parm->mwdmamodes & 0x01) + break; + case ATA_PIO2: printf("2"); - else if ((parm->retired_piomode & ATA_RETIRED_PIO_MASK) == 0x200) - printf("2"); - else if ((parm->retired_piomode & ATA_RETIRED_PIO_MASK) == 0x100) + break; + case ATA_PIO1: printf("1"); - else + break; + default: printf("0"); + } printf("\n"); printf("DMA%ssupported ", From owner-svn-src-stable-8@FreeBSD.ORG Tue Nov 17 19:52:52 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 61F67106566B; Tue, 17 Nov 2009 19:52:52 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 1D29E8FC16; Tue, 17 Nov 2009 19:52:52 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nAHJqqqK034388; Tue, 17 Nov 2009 19:52:52 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nAHJqpMi034386; Tue, 17 Nov 2009 19:52:51 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <200911171952.nAHJqpMi034386@svn.freebsd.org> From: Alexander Motin Date: Tue, 17 Nov 2009 19:52:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r199425 - stable/8/sbin/camcontrol X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Nov 2009 19:52:52 -0000 Author: mav Date: Tue Nov 17 19:52:51 2009 New Revision: 199425 URL: http://svn.freebsd.org/changeset/base/199425 Log: MFC r197545: Fethch more information from IDENTIFY result. Modified: stable/8/sbin/camcontrol/camcontrol.c Directory Properties: stable/8/sbin/camcontrol/ (props changed) Modified: stable/8/sbin/camcontrol/camcontrol.c ============================================================================== --- stable/8/sbin/camcontrol/camcontrol.c Tue Nov 17 19:51:39 2009 (r199424) +++ stable/8/sbin/camcontrol/camcontrol.c Tue Nov 17 19:52:51 2009 (r199425) @@ -1019,18 +1019,28 @@ atacapprint(struct ata_params *parm) printf("protocol "); printf("ATA/ATAPI-%d", ata_version(parm->version_major)); if (parm->satacapabilities && parm->satacapabilities != 0xffff) { - if (parm->satacapabilities & ATA_SATA_GEN2) + if (parm->satacapabilities & ATA_SATA_GEN3) + printf(" SATA 3.x\n"); + else if (parm->satacapabilities & ATA_SATA_GEN2) printf(" SATA 2.x\n"); else if (parm->satacapabilities & ATA_SATA_GEN1) printf(" SATA 1.x\n"); else - printf(" SATA x.x\n"); + printf(" SATA\n"); } else printf("\n"); printf("device model %.40s\n", parm->model); - printf("serial number %.20s\n", parm->serial); printf("firmware revision %.8s\n", parm->revision); + printf("serial number %.20s\n", parm->serial); + if (parm->enabled.extension & ATA_SUPPORT_64BITWWN) { + printf("WWN %02x%02x%02x%02x\n", + parm->wwn[0], parm->wwn[1], parm->wwn[2], parm->wwn[3]); + } + if (parm->enabled.extension & ATA_SUPPORT_MEDIASN) { + printf("media serial number %.30s\n", + parm->media_serial); + } printf("cylinders %d\n", parm->cylinders); printf("heads %d\n", parm->heads); @@ -1071,6 +1081,8 @@ atacapprint(struct ata_params *parm) default: printf("0"); } + if ((parm->capabilities1 & ATA_SUPPORT_IORDY) == 0) + printf(" w/o IORDY"); printf("\n"); printf("DMA%ssupported ", @@ -1110,18 +1122,25 @@ atacapprint(struct ata_params *parm) printf("overlap%ssupported\n", parm->capabilities1 & ATA_SUPPORT_OVERLAP ? " " : " not "); + if (parm->media_rotation_rate == 1) { + printf("media RPM non-rotating\n"); + } else if (parm->media_rotation_rate >= 0x0401 && + parm->media_rotation_rate <= 0xFFFE) { + printf("media RPM %d\n", + parm->media_rotation_rate); + } printf("\nFeature " "Support Enable Value Vendor\n"); - - printf("write cache %s %s\n", - parm->support.command1 & ATA_SUPPORT_WRITECACHE ? "yes" : "no", - parm->enabled.command1 & ATA_SUPPORT_WRITECACHE ? "yes" : "no"); - printf("read ahead %s %s\n", parm->support.command1 & ATA_SUPPORT_LOOKAHEAD ? "yes" : "no", parm->enabled.command1 & ATA_SUPPORT_LOOKAHEAD ? "yes" : "no"); - + printf("write cache %s %s\n", + parm->support.command1 & ATA_SUPPORT_WRITECACHE ? "yes" : "no", + parm->enabled.command1 & ATA_SUPPORT_WRITECACHE ? "yes" : "no"); + printf("flush cache %s %s\n", + parm->support.command2 & ATA_SUPPORT_FLUSHCACHE ? "yes" : "no", + parm->enabled.command2 & ATA_SUPPORT_FLUSHCACHE ? "yes" : "no"); if (parm->satacapabilities && parm->satacapabilities != 0xffff) { printf("Native Command Queuing (NCQ) %s " " %d/0x%02X\n", @@ -1136,28 +1155,22 @@ atacapprint(struct ata_params *parm) parm->support.command2 & ATA_SUPPORT_QUEUED ? "yes" : "no", parm->enabled.command2 & ATA_SUPPORT_QUEUED ? "yes" : "no", ATA_QUEUE_LEN(parm->queue), ATA_QUEUE_LEN(parm->queue)); - printf("SMART %s %s\n", parm->support.command1 & ATA_SUPPORT_SMART ? "yes" : "no", parm->enabled.command1 & ATA_SUPPORT_SMART ? "yes" : "no"); - printf("microcode download %s %s\n", parm->support.command2 & ATA_SUPPORT_MICROCODE ? "yes" : "no", parm->enabled.command2 & ATA_SUPPORT_MICROCODE ? "yes" : "no"); - printf("security %s %s\n", parm->support.command1 & ATA_SUPPORT_SECURITY ? "yes" : "no", parm->enabled.command1 & ATA_SUPPORT_SECURITY ? "yes" : "no"); - printf("power management %s %s\n", parm->support.command1 & ATA_SUPPORT_POWERMGT ? "yes" : "no", parm->enabled.command1 & ATA_SUPPORT_POWERMGT ? "yes" : "no"); - printf("advanced power management %s %s %d/0x%02X\n", parm->support.command2 & ATA_SUPPORT_APM ? "yes" : "no", parm->enabled.command2 & ATA_SUPPORT_APM ? "yes" : "no", parm->apm_value, parm->apm_value); - printf("automatic acoustic management %s %s " "%d/0x%02X %d/0x%02X\n", parm->support.command2 & ATA_SUPPORT_AUTOACOUSTIC ? "yes" :"no", @@ -1166,6 +1179,22 @@ atacapprint(struct ata_params *parm) ATA_ACOUSTIC_CURRENT(parm->acoustic), ATA_ACOUSTIC_VENDOR(parm->acoustic), ATA_ACOUSTIC_VENDOR(parm->acoustic)); + printf("media status notification %s %s\n", + parm->support.command2 & ATA_SUPPORT_NOTIFY ? "yes" : "no", + parm->enabled.command2 & ATA_SUPPORT_NOTIFY ? "yes" : "no"); + printf("power-up in Standby %s %s\n", + parm->support.command2 & ATA_SUPPORT_STANDBY ? "yes" : "no", + parm->enabled.command2 & ATA_SUPPORT_STANDBY ? "yes" : "no"); + printf("write-read-verify %s %s %d/0x%x\n", + parm->support2 & ATA_SUPPORT_WRITEREADVERIFY ? "yes" : "no", + parm->enabled2 & ATA_SUPPORT_WRITEREADVERIFY ? "yes" : "no", + parm->wrv_mode, parm->wrv_mode); + printf("unload %s %s\n", + parm->support.extension & ATA_SUPPORT_UNLOAD ? "yes" : "no", + parm->enabled.extension & ATA_SUPPORT_UNLOAD ? "yes" : "no"); + printf("free-fall %s %s\n", + parm->support2 & ATA_SUPPORT_FREEFALL ? "yes" : "no", + parm->enabled2 & ATA_SUPPORT_FREEFALL ? "yes" : "no"); } @@ -1261,6 +1290,7 @@ ataidentify(struct cam_device *device, i 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_bswap(ident_buf->media_serial, sizeof(ident_buf->media_serial)); } ata_btrim(ident_buf->model, sizeof(ident_buf->model)); ata_bpack(ident_buf->model, ident_buf->model, sizeof(ident_buf->model)); @@ -1268,6 +1298,9 @@ ataidentify(struct cam_device *device, i 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)); + ata_btrim(ident_buf->media_serial, sizeof(ident_buf->media_serial)); + ata_bpack(ident_buf->media_serial, ident_buf->media_serial, + sizeof(ident_buf->media_serial)); fprintf(stdout, "%s%d: ", device->device_name, device->dev_unit_num); From owner-svn-src-stable-8@FreeBSD.ORG Tue Nov 17 20:17:48 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 85EE8106568B; Tue, 17 Nov 2009 20:17:48 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 72CE38FC15; Tue, 17 Nov 2009 20:17:48 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nAHKHmtc035710; Tue, 17 Nov 2009 20:17:48 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nAHKHm3T035706; Tue, 17 Nov 2009 20:17:48 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <200911172017.nAHKHm3T035706@svn.freebsd.org> From: Alexander Motin Date: Tue, 17 Nov 2009 20:17:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r199426 - in stable/8/sys: cam/ata conf modules/cam X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Nov 2009 20:17:48 -0000 Author: mav Date: Tue Nov 17 20:17:48 2009 New Revision: 199426 URL: http://svn.freebsd.org/changeset/base/199426 Log: MFC r198389: Move Port Multiplier support code out of ATA XPT into pmp periph driver. This is convinient, as PMP itself is a bus target and has own state. Added: stable/8/sys/cam/ata/ata_pmp.c - copied unchanged from r198389, head/sys/cam/ata/ata_pmp.c Modified: stable/8/sys/cam/ata/ata_xpt.c stable/8/sys/conf/files stable/8/sys/modules/cam/Makefile Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) Copied: stable/8/sys/cam/ata/ata_pmp.c (from r198389, head/sys/cam/ata/ata_pmp.c) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/8/sys/cam/ata/ata_pmp.c Tue Nov 17 20:17:48 2009 (r199426, copy of r198389, head/sys/cam/ata/ata_pmp.c) @@ -0,0 +1,735 @@ +/*- + * Copyright (c) 2009 Alexander Motin + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer, + * without modification, immediately at the beginning of the file. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + */ + +#include +__FBSDID("$FreeBSD$"); + +#include + +#ifdef _KERNEL +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#endif /* _KERNEL */ + +#ifndef _KERNEL +#include +#include +#endif /* _KERNEL */ + +#include +#include +#include +#include +#include + +#include + +#ifdef _KERNEL + +typedef enum { + PMP_STATE_NORMAL, + PMP_STATE_PORTS, + PMP_STATE_CONFIG, + PMP_STATE_RESET, + PMP_STATE_CONNECT, + PMP_STATE_CHECK, + PMP_STATE_CLEAR, + PMP_STATE_SCAN +} pmp_state; + +typedef enum { + PMP_FLAG_SCTX_INIT = 0x200 +} pmp_flags; + +typedef enum { + PMP_CCB_PROBE = 0x01, +} pmp_ccb_state; + +/* Offsets into our private area for storing information */ +#define ccb_state ppriv_field0 +#define ccb_bp ppriv_ptr1 + +struct pmp_softc { + SLIST_ENTRY(pmp_softc) links; + pmp_state state; + pmp_flags flags; + uint32_t pm_pid; + uint32_t pm_prv; + int pm_ports; + int pm_step; + int pm_try; + int found; + int frozen; + union ccb saved_ccb; + struct task sysctl_task; + struct sysctl_ctx_list sysctl_ctx; + struct sysctl_oid *sysctl_tree; +}; + +static periph_init_t pmpinit; +static void pmpasync(void *callback_arg, u_int32_t code, + struct cam_path *path, void *arg); +static void pmpsysctlinit(void *context, int pending); +static periph_ctor_t pmpregister; +static periph_dtor_t pmpcleanup; +static periph_start_t pmpstart; +static periph_oninv_t pmponinvalidate; +static void pmpdone(struct cam_periph *periph, + union ccb *done_ccb); + +#ifndef PMP_DEFAULT_TIMEOUT +#define PMP_DEFAULT_TIMEOUT 30 /* Timeout in seconds */ +#endif + +#ifndef PMP_DEFAULT_RETRY +#define PMP_DEFAULT_RETRY 1 +#endif + +static int pmp_retry_count = PMP_DEFAULT_RETRY; +static int pmp_default_timeout = PMP_DEFAULT_TIMEOUT; + +SYSCTL_NODE(_kern_cam, OID_AUTO, pmp, CTLFLAG_RD, 0, + "CAM Direct Access Disk driver"); +SYSCTL_INT(_kern_cam_pmp, OID_AUTO, retry_count, CTLFLAG_RW, + &pmp_retry_count, 0, "Normal I/O retry count"); +TUNABLE_INT("kern.cam.pmp.retry_count", &pmp_retry_count); +SYSCTL_INT(_kern_cam_pmp, OID_AUTO, default_timeout, CTLFLAG_RW, + &pmp_default_timeout, 0, "Normal I/O timeout (in seconds)"); +TUNABLE_INT("kern.cam.pmp.default_timeout", &pmp_default_timeout); + +static struct periph_driver pmpdriver = +{ + pmpinit, "pmp", + TAILQ_HEAD_INITIALIZER(pmpdriver.units), /* generation */ 0 +}; + +PERIPHDRIVER_DECLARE(pmp, pmpdriver); + +MALLOC_DEFINE(M_ATPMP, "ata_pmp", "ata_pmp buffers"); + +static void +pmpinit(void) +{ + cam_status status; + + /* + * Install a global async callback. This callback will + * receive async callbacks like "new device found". + */ + status = xpt_register_async(AC_FOUND_DEVICE, pmpasync, NULL, NULL); + + if (status != CAM_REQ_CMP) { + printf("pmp: Failed to attach master async callback " + "due to status 0x%x!\n", status); + } +} + +static void +pmpfreeze(struct cam_periph *periph, int mask) +{ + struct pmp_softc *softc = (struct pmp_softc *)periph->softc; + struct cam_path *dpath; + int i; + + mask &= ~softc->frozen; + for (i = 0; i < 15; i++) { + if ((mask & (1 << i)) == 0) + continue; + if (xpt_create_path(&dpath, periph, + xpt_path_path_id(periph->path), + i, 0) == CAM_REQ_CMP) { +printf("PMP freeze: %d\n", i); + softc->frozen |= (1 << i); + cam_freeze_devq(dpath); + xpt_free_path(dpath); + } + } +} + +static void +pmprelease(struct cam_periph *periph, int mask) +{ + struct pmp_softc *softc = (struct pmp_softc *)periph->softc; + struct cam_path *dpath; + int i; + + mask &= softc->frozen; + for (i = 0; i < 15; i++) { + if ((mask & (1 << i)) == 0) + continue; + if (xpt_create_path(&dpath, periph, + xpt_path_path_id(periph->path), + i, 0) == CAM_REQ_CMP) { +printf("PMP release: %d\n", i); + softc->frozen &= ~(1 << i); + cam_release_devq(dpath, 0, 0, 0, FALSE); + xpt_free_path(dpath); + } + } +} + +static void +pmponinvalidate(struct cam_periph *periph) +{ + struct pmp_softc *softc; + struct cam_path *dpath; + int i; + + softc = (struct pmp_softc *)periph->softc; + + /* + * De-register any async callbacks. + */ + xpt_register_async(0, pmpasync, periph, periph->path); + + for (i = 0; i < 15; i++) { + if (xpt_create_path(&dpath, periph, + xpt_path_path_id(periph->path), + i, 0) == CAM_REQ_CMP) { + xpt_async(AC_LOST_DEVICE, dpath, NULL); + xpt_free_path(dpath); + } + } + xpt_print(periph->path, "lost device\n"); +} + +static void +pmpcleanup(struct cam_periph *periph) +{ + struct pmp_softc *softc; + + softc = (struct pmp_softc *)periph->softc; + + xpt_print(periph->path, "removing device entry\n"); + cam_periph_unlock(periph); + + /* + * If we can't free the sysctl tree, oh well... + */ + if ((softc->flags & PMP_FLAG_SCTX_INIT) != 0 + && sysctl_ctx_free(&softc->sysctl_ctx) != 0) { + xpt_print(periph->path, "can't remove sysctl context\n"); + } + + free(softc, M_DEVBUF); + cam_periph_lock(periph); +} + +static void +pmpasync(void *callback_arg, u_int32_t code, + struct cam_path *path, void *arg) +{ + struct cam_periph *periph; + struct pmp_softc *softc; + + periph = (struct cam_periph *)callback_arg; + switch (code) { + case AC_FOUND_DEVICE: + { + struct ccb_getdev *cgd; + cam_status status; + + cgd = (struct ccb_getdev *)arg; + if (cgd == NULL) + break; + + if (cgd->protocol != PROTO_SATAPM) + break; + + /* + * Allocate a peripheral instance for + * this device and start the probe + * process. + */ + status = cam_periph_alloc(pmpregister, pmponinvalidate, + pmpcleanup, pmpstart, + "pmp", CAM_PERIPH_BIO, + cgd->ccb_h.path, pmpasync, + AC_FOUND_DEVICE, cgd); + + if (status != CAM_REQ_CMP + && status != CAM_REQ_INPROG) + printf("pmpasync: Unable to attach to new device " + "due to status 0x%x\n", status); + break; + } + case AC_SCSI_AEN: + case AC_SENT_BDR: + case AC_BUS_RESET: + softc = (struct pmp_softc *)periph->softc; + cam_periph_async(periph, code, path, arg); + if (softc->state != PMP_STATE_NORMAL) + break; + pmpfreeze(periph, softc->found); + if (code == AC_SENT_BDR || code == AC_BUS_RESET) + softc->found = 0; /* We have to reset everything. */ + softc->state = PMP_STATE_PORTS; + cam_periph_acquire(periph); + xpt_schedule(periph, CAM_PRIORITY_DEV); + break; + default: + cam_periph_async(periph, code, path, arg); + break; + } +} + +static void +pmpsysctlinit(void *context, int pending) +{ + struct cam_periph *periph; + struct pmp_softc *softc; + char tmpstr[80], tmpstr2[80]; + + periph = (struct cam_periph *)context; + if (cam_periph_acquire(periph) != CAM_REQ_CMP) + return; + + softc = (struct pmp_softc *)periph->softc; + snprintf(tmpstr, sizeof(tmpstr), "CAM PMP unit %d", periph->unit_number); + snprintf(tmpstr2, sizeof(tmpstr2), "%d", periph->unit_number); + + sysctl_ctx_init(&softc->sysctl_ctx); + softc->flags |= PMP_FLAG_SCTX_INIT; + softc->sysctl_tree = SYSCTL_ADD_NODE(&softc->sysctl_ctx, + SYSCTL_STATIC_CHILDREN(_kern_cam_pmp), OID_AUTO, tmpstr2, + CTLFLAG_RD, 0, tmpstr); + if (softc->sysctl_tree == NULL) { + printf("pmpsysctlinit: unable to allocate sysctl tree\n"); + cam_periph_release(periph); + return; + } + + cam_periph_release(periph); +} + +static cam_status +pmpregister(struct cam_periph *periph, void *arg) +{ + struct pmp_softc *softc; + struct ccb_pathinq cpi; + struct ccb_getdev *cgd; + + cgd = (struct ccb_getdev *)arg; + if (periph == NULL) { + printf("pmpregister: periph was NULL!!\n"); + return(CAM_REQ_CMP_ERR); + } + + if (cgd == NULL) { + printf("pmpregister: no getdev CCB, can't register device\n"); + return(CAM_REQ_CMP_ERR); + } + + softc = (struct pmp_softc *)malloc(sizeof(*softc), M_DEVBUF, + M_NOWAIT|M_ZERO); + + if (softc == NULL) { + printf("pmpregister: Unable to probe new device. " + "Unable to allocate softc\n"); + return(CAM_REQ_CMP_ERR); + } + periph->softc = softc; + + softc->state = PMP_STATE_PORTS; + softc->pm_pid = ((uint32_t *)&cgd->ident_data)[0]; + softc->pm_prv = ((uint32_t *)&cgd->ident_data)[1]; + + /* Check if the SIM does not want queued commands */ + bzero(&cpi, sizeof(cpi)); + xpt_setup_ccb(&cpi.ccb_h, periph->path, CAM_PRIORITY_NORMAL); + cpi.ccb_h.func_code = XPT_PATH_INQ; + xpt_action((union ccb *)&cpi); + + TASK_INIT(&softc->sysctl_task, 0, pmpsysctlinit, periph); + + xpt_announce_periph(periph, NULL); + + /* + * Add async callbacks for bus reset and + * bus device reset calls. I don't bother + * checking if this fails as, in most cases, + * the system will function just fine without + * them and the only alternative would be to + * not attach the device on failure. + */ + xpt_register_async(AC_SENT_BDR | AC_BUS_RESET | AC_LOST_DEVICE | + AC_SCSI_AEN, pmpasync, periph, periph->path); + + /* + * Take an exclusive refcount on the periph while pmpstart is called + * to finish the probe. The reference will be dropped in pmpdone at + * the end of probe. + */ + (void)cam_periph_acquire(periph); + xpt_schedule(periph, CAM_PRIORITY_DEV); + + return(CAM_REQ_CMP); +} + +static void +pmpstart(struct cam_periph *periph, union ccb *start_ccb) +{ + struct ccb_ataio *ataio; + struct pmp_softc *softc; + + softc = (struct pmp_softc *)periph->softc; + ataio = &start_ccb->ataio; + + switch (softc->state) { + case PMP_STATE_PORTS: + cam_fill_ataio(ataio, + pmp_retry_count, + pmpdone, + /*flags*/CAM_DIR_NONE, + 0, + /*data_ptr*/NULL, + /*dxfer_len*/0, + pmp_default_timeout * 1000); + ata_pm_read_cmd(ataio, 2, 15); + break; + case PMP_STATE_CONFIG: + cam_fill_ataio(ataio, + pmp_retry_count, + pmpdone, + /*flags*/CAM_DIR_NONE, + 0, + /*data_ptr*/NULL, + /*dxfer_len*/0, + pmp_default_timeout * 1000); + ata_pm_write_cmd(ataio, 0x60, 15, 0xf); + break; + case PMP_STATE_RESET: + cam_fill_ataio(ataio, + pmp_retry_count, + pmpdone, + /*flags*/CAM_DIR_NONE, + 0, + /*data_ptr*/NULL, + /*dxfer_len*/0, + pmp_default_timeout * 1000); + ata_pm_write_cmd(ataio, 2, softc->pm_step, + (softc->found & (1 << softc->pm_step)) ? 0 : 1); +printf("PM RESET %d%s\n", softc->pm_step, + (softc->found & (1 << softc->pm_step)) ? " skipping" : ""); + break; + case PMP_STATE_CONNECT: + cam_fill_ataio(ataio, + pmp_retry_count, + pmpdone, + /*flags*/CAM_DIR_NONE, + 0, + /*data_ptr*/NULL, + /*dxfer_len*/0, + pmp_default_timeout * 1000); + ata_pm_write_cmd(ataio, 2, softc->pm_step, 0); + break; + case PMP_STATE_CHECK: + cam_fill_ataio(ataio, + pmp_retry_count, + pmpdone, + /*flags*/CAM_DIR_NONE, + 0, + /*data_ptr*/NULL, + /*dxfer_len*/0, + pmp_default_timeout * 1000); + ata_pm_read_cmd(ataio, 0, softc->pm_step); + break; + case PMP_STATE_CLEAR: + cam_fill_ataio(ataio, + pmp_retry_count, + pmpdone, + /*flags*/CAM_DIR_NONE, + 0, + /*data_ptr*/NULL, + /*dxfer_len*/0, + pmp_default_timeout * 1000); + ata_pm_write_cmd(ataio, 1, softc->pm_step, 0xFFFFFFFF); + break; + default: + break; + } + xpt_action(start_ccb); +} + +static void +pmpdone(struct cam_periph *periph, union ccb *done_ccb) +{ + struct pmp_softc *softc; + struct ccb_ataio *ataio; + union ccb *work_ccb; + struct cam_path *path, *dpath; + u_int32_t priority; + + softc = (struct pmp_softc *)periph->softc; + ataio = &done_ccb->ataio; + + CAM_DEBUG(done_ccb->ccb_h.path, CAM_DEBUG_TRACE, ("pmpdone\n")); + + 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) { + 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_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); + } + xpt_release_ccb(done_ccb); + break; + 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); + } + xpt_release_ccb(done_ccb); + break; + 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); + } + xpt_release_ccb(done_ccb); + break; + 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) { + 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); + 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) { + 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) { + 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_SCAN: + work_ccb = done_ccb; + done_ccb = (union ccb*)work_ccb->ccb_h.ppriv_ptr0; + /* Free the current request path- we're done with it. */ + xpt_free_path(work_ccb->ccb_h.path); + softc->pm_step++; +do_scan: + while (softc->pm_step < softc->pm_ports && + (softc->found & (1 << softc->pm_step)) == 0) { + softc->pm_step++; + } + if (softc->pm_step >= softc->pm_ports) { + xpt_free_ccb(work_ccb); + xpt_release_ccb(done_ccb); + break; + } + if (xpt_create_path(&dpath, periph, + done_ccb->ccb_h.path_id, + softc->pm_step, 0) != CAM_REQ_CMP) { + 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, + done_ccb->ccb_h.pinfo.priority); + work_ccb->ccb_h.func_code = XPT_SCAN_LUN; + work_ccb->ccb_h.cbfcnp = pmpdone; + work_ccb->ccb_h.ppriv_ptr0 = done_ccb; + work_ccb->crcn.flags = done_ccb->crcn.flags; + xpt_action(work_ccb); + pmprelease(periph, 1 << softc->pm_step); + return; + default: + break; + } + softc->state = PMP_STATE_NORMAL; + pmprelease(periph, -1); + cam_periph_release_locked(periph); +} + +#endif /* _KERNEL */ Modified: stable/8/sys/cam/ata/ata_xpt.c ============================================================================== --- stable/8/sys/cam/ata/ata_xpt.c Tue Nov 17 19:52:51 2009 (r199425) +++ stable/8/sys/cam/ata/ata_xpt.c Tue Nov 17 20:17:48 2009 (r199426) @@ -96,11 +96,6 @@ typedef enum { PROBE_FULL_INQUIRY, PROBE_PM_PID, PROBE_PM_PRV, - PROBE_PM_PORTS, - PROBE_PM_RESET, - PROBE_PM_CONNECT, - PROBE_PM_CHECK, - PROBE_PM_CLEAR, PROBE_INVALID } probe_action; @@ -112,11 +107,6 @@ static char *probe_action_text[] = { "PROBE_FULL_INQUIRY", "PROBE_PM_PID", "PROBE_PM_PRV", - "PROBE_PM_PORTS", - "PROBE_PM_RESET", - "PROBE_PM_CONNECT", - "PROBE_PM_CHECK", - "PROBE_PM_CLEAR", "PROBE_INVALID" }; @@ -142,9 +132,6 @@ typedef struct { u_int8_t digest[16]; uint32_t pm_pid; uint32_t pm_prv; - int pm_ports; - int pm_step; - int pm_try; struct cam_periph *periph; } probe_softc; @@ -274,10 +261,9 @@ probeschedule(struct cam_periph *periph) cpi.ccb_h.func_code = XPT_PATH_INQ; xpt_action((union ccb *)&cpi); - if (periph->path->device->flags & CAM_DEV_UNCONFIGURED) + if ((periph->path->device->flags & CAM_DEV_UNCONFIGURED) || + periph->path->device->protocol == PROTO_SATAPM) PROBE_SET_ACTION(softc, PROBE_RESET); - else if (periph->path->device->protocol == PROTO_SATAPM) - PROBE_SET_ACTION(softc, PROBE_PM_PID); else PROBE_SET_ACTION(softc, PROBE_IDENTIFY); @@ -295,7 +281,6 @@ probestart(struct cam_periph *periph, un /* Probe the device that our peripheral driver points to */ struct ccb_ataio *ataio; struct ccb_scsiio *csio; - struct ccb_trans_settings cts; probe_softc *softc; CAM_DEBUG(start_ccb->ccb_h.path, CAM_DEBUG_TRACE, ("probestart\n")); @@ -306,21 +291,11 @@ probestart(struct cam_periph *periph, un switch (softc->action) { case PROBE_RESET: - if (start_ccb->ccb_h.target_id == 15) { - /* Report SIM that we have no knowledge about PM presence. */ - bzero(&cts, sizeof(cts)); - xpt_setup_ccb(&cts.ccb_h, start_ccb->ccb_h.path, 1); - cts.ccb_h.func_code = XPT_SET_TRAN_SETTINGS; - cts.type = CTS_TYPE_CURRENT_SETTINGS; - cts.xport_specific.sata.pm_present = 0; - cts.xport_specific.sata.valid = CTS_SATA_VALID_PM; - xpt_action((union ccb *)&cts); - } cam_fill_ataio(ataio, 0, probedone, /*flags*/CAM_DIR_NONE, - MSG_SIMPLE_Q_TAG, + 0, /*data_ptr*/NULL, /*dxfer_len*/0, (start_ccb->ccb_h.target_id == 15 ? 3 : 15) * 1000); @@ -351,7 +326,7 @@ probestart(struct cam_periph *periph, un 1, probedone, /*flags*/CAM_DIR_IN, - MSG_SIMPLE_Q_TAG, + 0, /*data_ptr*/(u_int8_t *)ident_buf, /*dxfer_len*/sizeof(struct ata_params), 30 * 1000); @@ -413,7 +388,7 @@ probestart(struct cam_periph *periph, un 1, probedone, /*flags*/CAM_DIR_NONE, - MSG_SIMPLE_Q_TAG, + 0, /*data_ptr*/NULL, /*dxfer_len*/0, 10 * 1000); @@ -424,74 +399,12 @@ probestart(struct cam_periph *periph, un 1, probedone, /*flags*/CAM_DIR_NONE, - MSG_SIMPLE_Q_TAG, + 0, /*data_ptr*/NULL, /*dxfer_len*/0, 10 * 1000); ata_pm_read_cmd(ataio, 1, 15); break; - case PROBE_PM_PORTS: - cam_fill_ataio(ataio, - 1, - probedone, - /*flags*/CAM_DIR_NONE, - MSG_SIMPLE_Q_TAG, - /*data_ptr*/NULL, - /*dxfer_len*/0, - 10 * 1000); - ata_pm_read_cmd(ataio, 2, 15); - break; - case PROBE_PM_RESET: - { - struct ata_params *ident_buf = - &periph->path->device->ident_data; - cam_fill_ataio(ataio, - 1, - probedone, - /*flags*/CAM_DIR_NONE, - MSG_SIMPLE_Q_TAG, - /*data_ptr*/NULL, - /*dxfer_len*/0, - 10 * 1000); - ata_pm_write_cmd(ataio, 2, softc->pm_step, - (ident_buf->cylinders & (1 << softc->pm_step)) ? 0 : 1); -printf("PM RESET %d %04x %d\n", softc->pm_step, ident_buf->cylinders, - (ident_buf->cylinders & (1 << softc->pm_step)) ? 0 : 1); - break; - } - case PROBE_PM_CONNECT: - cam_fill_ataio(ataio, - 1, - probedone, - /*flags*/CAM_DIR_NONE, - MSG_SIMPLE_Q_TAG, - /*data_ptr*/NULL, - /*dxfer_len*/0, - 10 * 1000); - ata_pm_write_cmd(ataio, 2, softc->pm_step, 0); - break; - case PROBE_PM_CHECK: - cam_fill_ataio(ataio, - 1, - probedone, - /*flags*/CAM_DIR_NONE, - MSG_SIMPLE_Q_TAG, - /*data_ptr*/NULL, - /*dxfer_len*/0, - 10 * 1000); - ata_pm_read_cmd(ataio, 0, softc->pm_step); - break; - case PROBE_PM_CLEAR: - cam_fill_ataio(ataio, - 1, - probedone, - /*flags*/CAM_DIR_NONE, - MSG_SIMPLE_Q_TAG, - /*data_ptr*/NULL, - /*dxfer_len*/0, - 10 * 1000); - ata_pm_write_cmd(ataio, 1, softc->pm_step, 0xFFFFFFFF); - break; case PROBE_INVALID: CAM_DEBUG(start_ccb->ccb_h.path, CAM_DEBUG_INFO, ("probestart: invalid action state\n")); @@ -630,7 +543,7 @@ probedone(struct cam_periph *periph, uni probe_softc *softc; struct cam_path *path; u_int32_t priority; - int found = 0; + int found = 1; CAM_DEBUG(done_ccb->ccb_h.path, CAM_DEBUG_TRACE, ("probedone\n")); @@ -672,8 +585,7 @@ probedone(struct cam_periph *periph, uni xpt_print(path, "Unexpected signature 0x%04x\n", sign); } - xpt_release_ccb(done_ccb); - break; + goto device_fail; } xpt_release_ccb(done_ccb); xpt_schedule(periph, priority); @@ -780,9 +692,8 @@ device_fail: * drivers that this device is no more. */ if ((path->device->flags & CAM_DEV_UNCONFIGURED) == 0) - /* Send the async notification. */ xpt_async(AC_LOST_DEVICE, path, NULL); - + found = 0; xpt_release_ccb(done_ccb); break; } @@ -881,6 +792,7 @@ modedone: if (path->device->protocol == (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); @@ -903,164 +815,24 @@ modedone: if (path->device->protocol == (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); - PROBE_SET_ACTION(softc, PROBE_PM_PORTS); - 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; - case PROBE_PM_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); - ident_buf->config = softc->pm_ports; path->device->flags |= CAM_DEV_IDENTIFY_DATA_VALID; - softc->pm_step = 0; - PROBE_SET_ACTION(softc, PROBE_PM_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; *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-stable-8@FreeBSD.ORG Tue Nov 17 20:19:20 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D1058106568D; Tue, 17 Nov 2009 20:19:20 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id C05C08FC12; Tue, 17 Nov 2009 20:19:20 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nAHKJKYV035804; Tue, 17 Nov 2009 20:19:20 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nAHKJK4Y035802; Tue, 17 Nov 2009 20:19:20 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <200911172019.nAHKJK4Y035802@svn.freebsd.org> From: Alexander Motin Date: Tue, 17 Nov 2009 20:19:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r199427 - stable/8/sys/dev/ahci X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Nov 2009 20:19:20 -0000 Author: mav Date: Tue Nov 17 20:19:20 2009 New Revision: 199427 URL: http://svn.freebsd.org/changeset/base/199427 Log: MFC r198390: Revert interrupt reason check order back. ATAPI errors may set IF bit together with TFE. Modified: stable/8/sys/dev/ahci/ahci.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) Modified: stable/8/sys/dev/ahci/ahci.c ============================================================================== --- stable/8/sys/dev/ahci/ahci.c Tue Nov 17 20:17:48 2009 (r199426) +++ stable/8/sys/dev/ahci/ahci.c Tue Nov 17 20:19:20 2009 (r199427) @@ -1001,12 +1001,7 @@ ahci_ch_intr(void *data) /* 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 @@ ahci_ch_intr(void *data) 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); From owner-svn-src-stable-8@FreeBSD.ORG Tue Nov 17 20:20:56 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A5FB9106566C; Tue, 17 Nov 2009 20:20:56 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 7B88D8FC1A; Tue, 17 Nov 2009 20:20:56 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nAHKKuOX035975; Tue, 17 Nov 2009 20:20:56 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nAHKKugd035973; Tue, 17 Nov 2009 20:20:56 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <200911172020.nAHKKugd035973@svn.freebsd.org> From: Alexander Motin Date: Tue, 17 Nov 2009 20:20:56 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r199428 - stable/8/sys/cam X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Nov 2009 20:20:56 -0000 Author: mav Date: Tue Nov 17 20:20:56 2009 New Revision: 199428 URL: http://svn.freebsd.org/changeset/base/199428 Log: MFC r198394: Make "Retrying Command" to be printed before actual retrying. It should make debug/error log a bit more readable. Modified: stable/8/sys/cam/cam_periph.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) Modified: stable/8/sys/cam/cam_periph.c ============================================================================== --- stable/8/sys/cam/cam_periph.c Tue Nov 17 20:19:20 2009 (r199427) +++ stable/8/sys/cam/cam_periph.c Tue Nov 17 20:20:56 2009 (r199428) @@ -1767,16 +1767,27 @@ cam_periph_error(union ccb *ccb, cam_fla 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 @@ cam_periph_error(union ccb *ccb, cam_fla /*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); } From owner-svn-src-stable-8@FreeBSD.ORG Tue Nov 17 20:35:30 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D0E3C1065693; Tue, 17 Nov 2009 20:35:30 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id EB38C8FC1F; Tue, 17 Nov 2009 20:35:29 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nAHKZTu2036683; Tue, 17 Nov 2009 20:35:29 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nAHKZTjL036681; Tue, 17 Nov 2009 20:35:29 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <200911172035.nAHKZTjL036681@svn.freebsd.org> From: Alexander Motin Date: Tue, 17 Nov 2009 20:35:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r199429 - stable/8/sys/dev/siis X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Nov 2009 20:35:30 -0000 Author: mav Date: Tue Nov 17 20:35:29 2009 New Revision: 199429 URL: http://svn.freebsd.org/changeset/base/199429 Log: MFC r198426: Reimplement device reset sequence in more controller-specific way. Modified: stable/8/sys/dev/siis/siis.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) Modified: stable/8/sys/dev/siis/siis.c ============================================================================== --- stable/8/sys/dev/siis/siis.c Tue Nov 17 20:20:56 2009 (r199428) +++ stable/8/sys/dev/siis/siis.c Tue Nov 17 20:35:29 2009 (r199429) @@ -80,7 +80,6 @@ static void siis_portinit(device_t dev); static int siis_wait_ready(device_t dev, int t); static int siis_sata_connect(struct siis_channel *ch); -static int siis_sata_phy_reset(device_t dev); static void siis_issue_read_log(device_t dev); static void siis_process_read_log(device_t dev, union ccb *ccb); @@ -1250,16 +1249,27 @@ siis_portinit(device_t dev) siis_wait_ready(dev, 1000); } -#if 0 -static void +static int siis_devreset(device_t dev) { struct siis_channel *ch = device_get_softc(dev); + int timeout = 0; + uint32_t val; ATA_OUTL(ch->r_mem, SIIS_P_CTLSET, SIIS_P_CTL_DEV_RESET); - siis_wait_ready(dev, 1000); + while (((val = ATA_INL(ch->r_mem, SIIS_P_STS)) & + SIIS_P_CTL_DEV_RESET) != 0) { + DELAY(1000); + if (timeout++ > 100) { + device_printf(dev, "device reset stuck (timeout %dms) " + "status = %08x\n", timeout, val); + return (EBUSY); + } + } + if (bootverbose) + device_printf(dev, "device reset time=%dms\n", timeout); + return (0); } -#endif static int siis_wait_ready(device_t dev, int t) @@ -1287,6 +1297,7 @@ siis_reset(device_t dev) { struct siis_channel *ch = device_get_softc(dev); int i; + uint32_t val; if (bootverbose) device_printf(dev, "SIIS reset...\n"); @@ -1303,10 +1314,7 @@ siis_reset(device_t dev) } xpt_done(fccb); } - /* Disable port interrupts */ - ATA_OUTL(ch->r_mem, SIIS_P_IECLR, 0x0000FFFF); - /* Kill the engine and requeue all running commands. */ - siis_portinit(dev); + /* Requeue all running commands. */ for (i = 0; i < SIIS_MAX_SLOTS; i++) { /* Do we have a running request on slot? */ if (ch->slot[i].state < SIIS_SLOT_RUNNING) @@ -1314,8 +1322,23 @@ siis_reset(device_t dev) /* XXX; Commands in loading state. */ siis_end_transaction(&ch->slot[i], SIIS_ERR_INNOCENT); } + /* Disable port interrupts */ + ATA_OUTL(ch->r_mem, SIIS_P_IECLR, 0x0000FFFF); + /* Set speed limit. */ + if (ch->sata_rev == 1) + val = ATA_SC_SPD_SPEED_GEN1; + else if (ch->sata_rev == 2) + val = ATA_SC_SPD_SPEED_GEN2; + else if (ch->sata_rev == 3) + val = ATA_SC_SPD_SPEED_GEN3; + else + val = 0; + ATA_OUTL(ch->r_mem, SIIS_P_SCTL, + ATA_SC_DET_IDLE | val | ((ch->pm_level > 0) ? 0 : + (ATA_SC_IPM_DIS_PARTIAL | ATA_SC_IPM_DIS_SLUMBER))); + siis_devreset(dev); /* Reset and reconnect PHY, */ - if (!siis_sata_phy_reset(dev)) { + if (!siis_sata_connect(ch)) { ch->devices = 0; /* Enable port interrupts */ ATA_OUTL(ch->r_mem, SIIS_P_IESET, SIIS_P_IX_ENABLED); @@ -1327,9 +1350,8 @@ siis_reset(device_t dev) return; } /* Wait for clearing busy status. */ - if (siis_wait_ready(dev, 10000)) { + if (siis_wait_ready(dev, 10000)) device_printf(dev, "device ready timeout\n"); - } ch->devices = 1; /* Enable port interrupts */ ATA_OUTL(ch->r_mem, SIIS_P_IS, 0xFFFFFFFF); @@ -1420,32 +1442,6 @@ siis_sata_connect(struct siis_channel *c return (1); } -static int -siis_sata_phy_reset(device_t dev) -{ - struct siis_channel *ch = device_get_softc(dev); - uint32_t val; - - if (bootverbose) - device_printf(dev, "hardware reset ...\n"); - ATA_OUTL(ch->r_mem, SIIS_P_SCTL, ATA_SC_IPM_DIS_PARTIAL | - ATA_SC_IPM_DIS_SLUMBER | ATA_SC_DET_RESET); - DELAY(50000); - if (ch->sata_rev == 1) - val = ATA_SC_SPD_SPEED_GEN1; - else if (ch->sata_rev == 2) - val = ATA_SC_SPD_SPEED_GEN2; - else if (ch->sata_rev == 3) - val = ATA_SC_SPD_SPEED_GEN3; - else - val = 0; - ATA_OUTL(ch->r_mem, SIIS_P_SCTL, - ATA_SC_DET_IDLE | val | ((ch->pm_level > 0) ? 0 : - (ATA_SC_IPM_DIS_PARTIAL | ATA_SC_IPM_DIS_SLUMBER))); - DELAY(50000); - return (siis_sata_connect(ch)); -} - static void siisaction(struct cam_sim *sim, union ccb *ccb) { From owner-svn-src-stable-8@FreeBSD.ORG Tue Nov 17 20:41:15 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id EED0C106566C; Tue, 17 Nov 2009 20:41:15 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id C3E258FC16; Tue, 17 Nov 2009 20:41:15 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nAHKfFs3037007; Tue, 17 Nov 2009 20:41:15 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nAHKfF09037005; Tue, 17 Nov 2009 20:41:15 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <200911172041.nAHKfF09037005@svn.freebsd.org> From: Alexander Motin Date: Tue, 17 Nov 2009 20:41:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r199430 - stable/8/sys/cam X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Nov 2009 20:41:16 -0000 Author: mav Date: Tue Nov 17 20:41:15 2009 New Revision: 199430 URL: http://svn.freebsd.org/changeset/base/199430 Log: MFC r198705: Ensure target/lun passed from user-level supported on this bus. Scanning unsupported IDs causes different issues from duplicate devices to system crash. Modified: stable/8/sys/cam/cam_xpt.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) Modified: stable/8/sys/cam/cam_xpt.c ============================================================================== --- stable/8/sys/cam/cam_xpt.c Tue Nov 17 20:35:29 2009 (r199429) +++ stable/8/sys/cam/cam_xpt.c Tue Nov 17 20:41:15 2009 (r199430) @@ -452,7 +452,34 @@ xptioctl(struct cdev *dev, u_long cmd, c ccb = xpt_alloc_ccb(); CAM_SIM_LOCK(bus->sim); - + /* Ensure passed in target/lun supported on this bus. */ + if ((inccb->ccb_h.target_id != CAM_TARGET_WILDCARD) || + (inccb->ccb_h.target_lun != CAM_LUN_WILDCARD)) { + if (xpt_create_path(&ccb->ccb_h.path, + xpt_periph, + inccb->ccb_h.path_id, + CAM_TARGET_WILDCARD, + CAM_LUN_WILDCARD) != CAM_REQ_CMP) { + error = EINVAL; + CAM_SIM_UNLOCK(bus->sim); + xpt_free_ccb(ccb); + break; + } + xpt_setup_ccb(&ccb->ccb_h, ccb->ccb_h.path, + inccb->ccb_h.pinfo.priority); + ccb->ccb_h.func_code = XPT_PATH_INQ; + xpt_action(ccb); + xpt_free_path(ccb->ccb_h.path); + if ((inccb->ccb_h.target_id != CAM_TARGET_WILDCARD && + inccb->ccb_h.target_id > ccb->cpi.max_target) || + (inccb->ccb_h.target_lun != CAM_LUN_WILDCARD && + inccb->ccb_h.target_lun > ccb->cpi.max_lun)) { + error = EINVAL; + CAM_SIM_UNLOCK(bus->sim); + xpt_free_ccb(ccb); + break; + } + } /* * Create a path using the bus, target, and lun the * user passed in. From owner-svn-src-stable-8@FreeBSD.ORG Tue Nov 17 20:43:04 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 95BAD1065672; Tue, 17 Nov 2009 20:43:04 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 8342C8FC23; Tue, 17 Nov 2009 20:43:04 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nAHKh4gR037131; Tue, 17 Nov 2009 20:43:04 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nAHKh4Ho037126; Tue, 17 Nov 2009 20:43:04 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <200911172043.nAHKh4Ho037126@svn.freebsd.org> From: Alexander Motin Date: Tue, 17 Nov 2009 20:43:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r199431 - in stable/8/sys/cam: . ata scsi X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Nov 2009 20:43:05 -0000 Author: mav Date: Tue Nov 17 20:43:04 2009 New Revision: 199431 URL: http://svn.freebsd.org/changeset/base/199431 Log: MFC r198708: - Reduce code duplication in ATA XPT and PMP driver. - Move PIO size setting from ada driver to ATA XPT. It is XPT business to negotiate transfer details. ada driver is now stateless. - Report PIO size to SIM. It is required for correct PATA SIM operation. - Tune PMP scan timings. It workarounds some problems with SiI. - If reset hapens during PMP initialization - restart it. - Introduce early-initialized periph drivers, which are used during initial scan process. Use it for xpt, probe, aprobe and pmp. It gives pmp chance to finish scan before mountroot and numerate devices in right order. Modified: stable/8/sys/cam/ata/ata_da.c stable/8/sys/cam/ata/ata_pmp.c stable/8/sys/cam/ata/ata_xpt.c stable/8/sys/cam/cam.h stable/8/sys/cam/cam_ccb.h stable/8/sys/cam/cam_periph.h stable/8/sys/cam/cam_xpt.c stable/8/sys/cam/scsi/scsi_da.c stable/8/sys/cam/scsi/scsi_sg.c stable/8/sys/cam/scsi/scsi_xpt.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) Modified: stable/8/sys/cam/ata/ata_da.c ============================================================================== --- stable/8/sys/cam/ata/ata_da.c Tue Nov 17 20:41:15 2009 (r199430) +++ stable/8/sys/cam/ata/ata_da.c Tue Nov 17 20:43:04 2009 (r199431) @@ -63,8 +63,7 @@ __FBSDID("$FreeBSD$"); #define ATA_MAX_28BIT_LBA 268435455UL typedef enum { - ADA_STATE_NORMAL, - ADA_STATE_SET_MULTI + ADA_STATE_NORMAL } ada_state; typedef enum { @@ -84,7 +83,6 @@ typedef enum { } ada_quirks; typedef enum { - ADA_CCB_SET_MULTI = 0x01, ADA_CCB_BUFFER_IO = 0x03, ADA_CCB_WAITING = 0x04, ADA_CCB_DUMP = 0x05, @@ -112,7 +110,6 @@ struct ada_softc { ada_quirks quirks; int ordered_tag_count; int outstanding_cmds; - int secsperint; struct disk_params params; struct disk *disk; union ccb saved_ccb; @@ -550,22 +547,6 @@ adaasync(void *callback_arg, u_int32_t c "due to status 0x%x\n", status); break; } - case AC_SENT_BDR: - case AC_BUS_RESET: - { - struct ada_softc *softc = (struct ada_softc *)periph->softc; - - cam_periph_async(periph, code, path, arg); - if (softc->state != ADA_STATE_NORMAL) - break; - /* - * Restore device configuration. - */ - softc->state = ADA_STATE_SET_MULTI; - cam_periph_acquire(periph); - xpt_schedule(periph, CAM_PRIORITY_DEV); - break; - } default: cam_periph_async(periph, code, path, arg); break; @@ -644,8 +625,7 @@ adaregister(struct cam_periph *periph, v if (cgd->ident_data.satacapabilities & ATA_SUPPORT_NCQ && cgd->ident_data.queue >= 31) softc->flags |= ADA_FLAG_CAN_NCQ; - softc->secsperint = max(1, min(cgd->ident_data.sectors_intr, 16)); - softc->state = ADA_STATE_SET_MULTI; + softc->state = ADA_STATE_NORMAL; periph->softc = softc; @@ -734,18 +714,10 @@ adaregister(struct cam_periph *periph, v * them and the only alternative would be to * not attach the device on failure. */ - xpt_register_async(AC_SENT_BDR | AC_BUS_RESET | AC_LOST_DEVICE, + xpt_register_async(AC_LOST_DEVICE, adaasync, periph, periph->path); /* - * Take an exclusive refcount on the periph while adastart is called - * to finish the probe. The reference will be dropped in adadone at - * the end of probe. - */ - cam_periph_acquire(periph); - xpt_schedule(periph, /*priority*/5); - - /* * Schedule a periodic event to occasionally send an * ordered tag to a device. */ @@ -901,21 +873,6 @@ adastart(struct cam_periph *periph, unio } 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); - } } } @@ -1003,35 +960,6 @@ adadone(struct cam_periph *periph, union 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, CAM_PRIORITY_NORMAL); - } - cam_periph_release_locked(periph); - return; - } case ADA_CCB_DUMP: /* No-op. We're polling */ return; Modified: stable/8/sys/cam/ata/ata_pmp.c ============================================================================== --- stable/8/sys/cam/ata/ata_pmp.c Tue Nov 17 20:41:15 2009 (r199430) +++ stable/8/sys/cam/ata/ata_pmp.c Tue Nov 17 20:43:04 2009 (r199431) @@ -93,7 +93,9 @@ struct pmp_softc { int pm_step; int pm_try; int found; + int reset; int frozen; + int restart; union ccb saved_ccb; struct task sysctl_task; struct sysctl_ctx_list sysctl_ctx; @@ -134,7 +136,8 @@ TUNABLE_INT("kern.cam.pmp.default_timeou static struct periph_driver pmpdriver = { pmpinit, "pmp", - TAILQ_HEAD_INITIALIZER(pmpdriver.units), /* generation */ 0 + TAILQ_HEAD_INITIALIZER(pmpdriver.units), /* generation */ 0, + CAM_PERIPH_DRV_EARLY }; PERIPHDRIVER_DECLARE(pmp, pmpdriver); @@ -292,14 +295,21 @@ pmpasync(void *callback_arg, u_int32_t c case AC_BUS_RESET: softc = (struct pmp_softc *)periph->softc; cam_periph_async(periph, code, path, arg); - if (softc->state != PMP_STATE_NORMAL) + if (code == AC_SCSI_AEN && softc->state != PMP_STATE_NORMAL && + softc->state != PMP_STATE_SCAN) break; - pmpfreeze(periph, softc->found); + if (softc->state != PMP_STATE_SCAN) + pmpfreeze(periph, softc->found); + else + pmpfreeze(periph, softc->found & ~(1 << softc->pm_step)); if (code == AC_SENT_BDR || code == AC_BUS_RESET) softc->found = 0; /* We have to reset everything. */ - softc->state = PMP_STATE_PORTS; - cam_periph_acquire(periph); - xpt_schedule(periph, CAM_PRIORITY_DEV); + if (softc->state == PMP_STATE_NORMAL) { + softc->state = PMP_STATE_PORTS; + cam_periph_acquire(periph); + xpt_schedule(periph, CAM_PRIORITY_BUS); + } else + softc->restart = 1; break; default: cam_periph_async(periph, code, path, arg); @@ -395,7 +405,7 @@ pmpregister(struct cam_periph *periph, v * the end of probe. */ (void)cam_periph_acquire(periph); - xpt_schedule(periph, CAM_PRIORITY_DEV); + xpt_schedule(periph, CAM_PRIORITY_BUS); return(CAM_REQ_CMP); } @@ -408,6 +418,11 @@ pmpstart(struct cam_periph *periph, unio softc = (struct pmp_softc *)periph->softc; ataio = &start_ccb->ataio; + + if (softc->restart) { + softc->restart = 0; + softc->state = PMP_STATE_PORTS; + } switch (softc->state) { case PMP_STATE_PORTS: @@ -469,6 +484,7 @@ printf("PM RESET %d%s\n", softc->pm_step ata_pm_read_cmd(ataio, 0, softc->pm_step); break; case PMP_STATE_CLEAR: + softc->reset = 0; cam_fill_ataio(ataio, pmp_retry_count, pmpdone, @@ -492,7 +508,7 @@ pmpdone(struct cam_periph *periph, union 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 +518,158 @@ pmpdone(struct cam_periph *periph, union 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; + } + + if (softc->restart) { + softc->restart = 0; + if (softc->state == PMP_STATE_SCAN) { + pmpfreeze(periph, 1 << softc->pm_step); + work_ccb = done_ccb; + done_ccb = (union ccb*)work_ccb->ccb_h.ppriv_ptr0; + /* Free the current request path- we're done with it. */ + xpt_free_path(work_ccb->ccb_h.path); + xpt_free_ccb(work_ccb); } xpt_release_ccb(done_ccb); - break; + softc->state = PMP_STATE_PORTS; + xpt_schedule(periph, priority); + return; + } + + 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); + 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; + softc->reset |= ~softc->found; 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; + cam_freeze_devq(periph->path); + cam_release_devq(periph->path, + RELSIM_RELEASE_AFTER_TIMEOUT, + /*reduction*/0, + /*timeout*/5, + /*getcount_only*/0); + 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; + cam_freeze_devq(periph->path); + cam_release_devq(periph->path, + RELSIM_RELEASE_AFTER_TIMEOUT, + /*reduction*/0, + /*timeout*/10, + /*getcount_only*/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) { - printf("PM status: %d - %08x\n", softc->pm_step, res); - softc->found |= (1 << softc->pm_step); - softc->pm_step++; + 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 < 10) { + cam_freeze_devq(periph->path); + cam_release_devq(periph->path, + RELSIM_RELEASE_AFTER_TIMEOUT, + /*reduction*/0, + /*timeout*/10, + /*getcount_only*/0); + softc->pm_try++; } 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++; + 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; + } + if (softc->pm_step >= softc->pm_ports) { + if (softc->reset & softc->found) { + cam_freeze_devq(periph->path); + cam_release_devq(periph->path, + RELSIM_RELEASE_AFTER_TIMEOUT, + /*reduction*/0, + /*timeout*/1000, + /*getcount_only*/0); } - } 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->state = PMP_STATE_CLEAR; + softc->pm_step = 0; } xpt_release_ccb(done_ccb); - break; + xpt_schedule(periph, priority); + return; 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 +684,6 @@ do_scan: } 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 +692,6 @@ do_scan: 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 +706,8 @@ do_scan: default: break; } +done: + xpt_release_ccb(done_ccb); softc->state = PMP_STATE_NORMAL; pmprelease(periph, -1); cam_periph_release_locked(periph); Modified: stable/8/sys/cam/ata/ata_xpt.c ============================================================================== --- stable/8/sys/cam/ata/ata_xpt.c Tue Nov 17 20:41:15 2009 (r199430) +++ stable/8/sys/cam/ata/ata_xpt.c Tue Nov 17 20:43:04 2009 (r199431) @@ -83,7 +83,8 @@ static periph_init_t probe_periph_init; static struct periph_driver probe_driver = { probe_periph_init, "aprobe", - TAILQ_HEAD_INITIALIZER(probe_driver.units) + TAILQ_HEAD_INITIALIZER(probe_driver.units), /* generation */ 0, + CAM_PERIPH_DRV_EARLY }; PERIPHDRIVER_DECLARE(aprobe, probe_driver); @@ -92,6 +93,7 @@ typedef enum { PROBE_RESET, PROBE_IDENTIFY, PROBE_SETMODE, + PROBE_SET_MULTI, PROBE_INQUIRY, PROBE_FULL_INQUIRY, PROBE_PM_PID, @@ -103,6 +105,7 @@ static char *probe_action_text[] = { "PROBE_RESET", "PROBE_IDENTIFY", "PROBE_SETMODE", + "PROBE_SET_MULTI", "PROBE_INQUIRY", "PROBE_FULL_INQUIRY", "PROBE_PM_PID", @@ -282,12 +285,16 @@ probestart(struct cam_periph *periph, un struct ccb_ataio *ataio; struct ccb_scsiio *csio; probe_softc *softc; + struct cam_path *path; + struct ata_params *ident_buf; CAM_DEBUG(start_ccb->ccb_h.path, CAM_DEBUG_TRACE, ("probestart\n")); softc = (probe_softc *)periph->softc; + path = start_ccb->ccb_h.path; ataio = &start_ccb->ataio; csio = &start_ccb->csio; + ident_buf = &periph->path->device->ident_data; switch (softc->action) { case PROBE_RESET: @@ -302,10 +309,6 @@ probestart(struct cam_periph *periph, un ata_reset_cmd(ataio); break; case PROBE_IDENTIFY: - { - struct ata_params *ident_buf = - &periph->path->device->ident_data; - if ((periph->path->device->flags & CAM_DEV_UNCONFIGURED) == 0) { /* Prepare check that it is the same device. */ MD5_CTX context; @@ -335,12 +338,7 @@ probestart(struct cam_periph *periph, un else ata_28bit_cmd(ataio, ATA_ATAPI_IDENTIFY, 0, 0, 0); break; - } case PROBE_SETMODE: - { - struct ata_params *ident_buf = - &periph->path->device->ident_data; - cam_fill_ataio(ataio, 1, probedone, @@ -352,6 +350,37 @@ probestart(struct cam_periph *periph, un ata_28bit_cmd(ataio, ATA_SETFEATURES, ATA_SF_SETXFER, 0, ata_max_mode(ident_buf, ATA_UDMA6, ATA_UDMA6)); break; + case PROBE_SET_MULTI: + { + struct ccb_trans_settings cts; + u_int sectors; + + sectors = max(1, min(ident_buf->sectors_intr & 0xff, 16)); + + /* Report bytecount to SIM. */ + 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; + if (path->device->transport == XPORT_ATA) { + cts.xport_specific.ata.bytecount = sectors * 512; + cts.xport_specific.ata.valid = CTS_ATA_VALID_BYTECOUNT; + } else { + cts.xport_specific.sata.bytecount = sectors * 512; + cts.xport_specific.sata.valid = CTS_SATA_VALID_BYTECOUNT; + } + xpt_action((union ccb *)&cts); + + cam_fill_ataio(ataio, + 1, + probedone, + CAM_DIR_NONE, + 0, + NULL, + 0, + 30*1000); + ata_28bit_cmd(ataio, ATA_SET_MULTI, 0, 0, sectors); + break; } case PROBE_INQUIRY: case PROBE_FULL_INQUIRY: @@ -406,7 +435,7 @@ probestart(struct cam_periph *periph, un ata_pm_read_cmd(ataio, 1, 15); break; case PROBE_INVALID: - CAM_DEBUG(start_ccb->ccb_h.path, CAM_DEBUG_INFO, + CAM_DEBUG(path, CAM_DEBUG_INFO, ("probestart: invalid action state\n")); default: break; @@ -552,101 +581,119 @@ probedone(struct cam_periph *periph, uni 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: + /* 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 + * automatically retrying the command. Therefore, the + * inquiry failed. If we had inquiry information before + * for this device, but this latest inquiry command failed, + * the device has probably gone away. If this device isn't + * already marked unconfigured, notify the peripheral + * drivers that this device is no more. + */ + 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: { - if ((done_ccb->ccb_h.status & CAM_STATUS_MASK) == CAM_REQ_CMP) { - int16_t *ptr; + 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; - 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; + /* 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; + } + 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); + } + } else { /* Clean up from previous instance of this device */ if (path->device->serial_num != NULL) { free(path->device->serial_num, M_CAMXPT); @@ -655,7 +702,7 @@ probedone(struct cam_periph *periph, uni } path->device->serial_num = (u_int8_t *)malloc((sizeof(ident_buf->serial) + 1), - M_CAMXPT, M_NOWAIT); + M_CAMXPT, M_NOWAIT); if (path->device->serial_num != NULL) { bcopy(ident_buf->serial, path->device->serial_num, @@ -667,188 +714,120 @@ probedone(struct cam_periph *periph, uni } 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: - /* - * If we get to this point, we got an error status back - * from the inquiry and the error status doesn't require - * automatically retrying the command. Therefore, the - * inquiry failed. If we had inquiry information before - * for this device, but this latest inquiry command failed, - * the device has probably gone away. If this device isn't - * already marked unconfigured, notify the peripheral - * drivers that this device is no more. - */ - if ((path->device->flags & CAM_DEV_UNCONFIGURED) == 0) - xpt_async(AC_LOST_DEVICE, path, NULL); - found = 0; + ata_device_transport(path); + PROBE_SET_ACTION(softc, PROBE_SETMODE); xpt_release_ccb(done_ccb); - break; + 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) { - 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); + if (path->device->protocol == PROTO_ATA) { + PROBE_SET_ACTION(softc, PROBE_SET_MULTI); + } else { + PROBE_SET_ACTION(softc, PROBE_INQUIRY); } - /* 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; - } + xpt_release_ccb(done_ccb); + xpt_schedule(periph, priority); + return; + case PROBE_SET_MULTI: + 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); + } + 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; *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-stable-8@FreeBSD.ORG Tue Nov 17 20:45:49 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E22C7106568B; Tue, 17 Nov 2009 20:45:49 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id D0CED8FC08; Tue, 17 Nov 2009 20:45:49 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nAHKjnJg037394; Tue, 17 Nov 2009 20:45:49 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nAHKjnqE037392; Tue, 17 Nov 2009 20:45:49 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <200911172045.nAHKjnqE037392@svn.freebsd.org> From: Alexander Motin Date: Tue, 17 Nov 2009 20:45:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r199432 - stable/8/sbin/camcontrol X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Nov 2009 20:45:50 -0000 Author: mav Date: Tue Nov 17 20:45:49 2009 New Revision: 199432 URL: http://svn.freebsd.org/changeset/base/199432 Log: MFC r198709: Sync connection speed reporting with kernel. Report speed in identify command, same as done by inquiry. Modified: stable/8/sbin/camcontrol/camcontrol.c Directory Properties: stable/8/sbin/camcontrol/ (props changed) Modified: stable/8/sbin/camcontrol/camcontrol.c ============================================================================== --- stable/8/sbin/camcontrol/camcontrol.c Tue Nov 17 20:43:04 2009 (r199431) +++ stable/8/sbin/camcontrol/camcontrol.c Tue Nov 17 20:45:49 2009 (r199432) @@ -186,7 +186,7 @@ static int scsidoinquiry(struct cam_devi char *combinedopt, int retry_count, int timeout); static int scsiinquiry(struct cam_device *device, int retry_count, int timeout); static int scsiserial(struct cam_device *device, int retry_count, int timeout); -static int scsixferrate(struct cam_device *device); +static int camxferrate(struct cam_device *device); #endif /* MINIMALISTIC */ static int parse_btl(char *tstr, int *bus, int *target, int *lun, cam_argmask *arglst); @@ -663,7 +663,7 @@ scsidoinquiry(struct cam_device *device, return(error); if (arglist & CAM_ARG_GET_XFERRATE) - error = scsixferrate(device); + error = camxferrate(device); return(error); } @@ -873,14 +873,18 @@ scsiserial(struct cam_device *device, in } static int -scsixferrate(struct cam_device *device) +camxferrate(struct cam_device *device) { + struct ccb_pathinq cpi; u_int32_t freq = 0; u_int32_t speed = 0; union ccb *ccb; u_int mb; int retval = 0; + if ((retval = get_cpi(device, &cpi)) != 0) + return (1); + ccb = cam_getccb(device); if (ccb == NULL) { @@ -913,6 +917,8 @@ scsixferrate(struct cam_device *device) } + speed = cpi.base_transfer_speed; + freq = 0; if (ccb->cts.transport == XPORT_SPI) { struct ccb_trans_settings_spi *spi = &ccb->cts.xport_specific.spi; @@ -920,31 +926,44 @@ scsixferrate(struct cam_device *device) if ((spi->valid & CTS_SPI_VALID_SYNC_RATE) != 0) { freq = scsi_calc_syncsrate(spi->sync_period); speed = freq; - } else { - struct ccb_pathinq cpi; - - retval = get_cpi(device, &cpi); - if (retval == 0) { - speed = cpi.base_transfer_speed; - freq = 0; - } } - - fprintf(stdout, "%s%d: ", device->device_name, - device->dev_unit_num); - if ((spi->valid & CTS_SPI_VALID_BUS_WIDTH) != 0) { speed *= (0x01 << spi->bus_width); } + } else if (ccb->cts.transport == XPORT_FC) { + struct ccb_trans_settings_fc *fc = + &ccb->cts.xport_specific.fc; + + if (fc->valid & CTS_FC_VALID_SPEED) + speed = fc->bitrate; + } else if (ccb->cts.transport == XPORT_SAS) { + struct ccb_trans_settings_sas *sas = + &ccb->cts.xport_specific.sas; + + if (sas->valid & CTS_SAS_VALID_SPEED) + speed = sas->bitrate; + } else if (ccb->cts.transport == XPORT_SATA) { + struct ccb_trans_settings_sata *sata = + &ccb->cts.xport_specific.sata; + + if (sata->valid & CTS_SATA_VALID_SPEED) + speed = sata->bitrate; + } + + mb = speed / 1000; + if (mb > 0) { + fprintf(stdout, "%s%d: %d.%03dMB/s transfers ", + device->device_name, device->dev_unit_num, + mb, speed % 1000); + } else { + fprintf(stdout, "%s%d: %dKB/s transfers ", + device->device_name, device->dev_unit_num, + speed); + } - mb = speed / 1000; - - if (mb > 0) - fprintf(stdout, "%d.%03dMB/s transfers ", - mb, speed % 1000); - else - fprintf(stdout, "%dKB/s transfers ", - speed); + if (ccb->cts.transport == XPORT_SPI) { + struct ccb_trans_settings_spi *spi = + &ccb->cts.xport_specific.spi; if (((spi->valid & CTS_SPI_VALID_SYNC_OFFSET) != 0) && (spi->sync_offset != 0)) @@ -964,25 +983,22 @@ scsixferrate(struct cam_device *device) && (spi->sync_offset != 0)) { fprintf(stdout, ")"); } - } else { - struct ccb_pathinq cpi; - - retval = get_cpi(device, &cpi); - - if (retval != 0) - goto xferrate_bailout; - - speed = cpi.base_transfer_speed; - freq = 0; - - mb = speed / 1000; - - if (mb > 0) - fprintf(stdout, "%d.%03dMB/s transfers ", - mb, speed % 1000); - else - fprintf(stdout, "%dKB/s transfers ", - speed); + } else if (ccb->cts.transport == XPORT_ATA) { + struct ccb_trans_settings_ata *ata = + &ccb->cts.xport_specific.ata; + + if (ata->valid & CTS_ATA_VALID_BYTECOUNT) { + fprintf(stdout, "(PIO size %dbytes)", + ata->bytecount); + } + } else if (ccb->cts.transport == XPORT_SATA) { + struct ccb_trans_settings_sata *sata = + &ccb->cts.xport_specific.sata; + + if (sata->valid & CTS_SATA_VALID_BYTECOUNT) { + fprintf(stdout, "(PIO size %dbytes)", + sata->bytecount); + } } if (ccb->cts.protocol == PROTO_SCSI) { @@ -1305,6 +1321,7 @@ ataidentify(struct cam_device *device, i fprintf(stdout, "%s%d: ", device->device_name, device->dev_unit_num); ata_print_ident(ident_buf); + camxferrate(device); atacapprint(ident_buf); free(ident_buf); From owner-svn-src-stable-8@FreeBSD.ORG Tue Nov 17 20:49:26 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A314E1065697; Tue, 17 Nov 2009 20:49:26 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 914638FC20; Tue, 17 Nov 2009 20:49:26 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nAHKnQcB037658; Tue, 17 Nov 2009 20:49:26 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nAHKnQwu037653; Tue, 17 Nov 2009 20:49:26 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <200911172049.nAHKnQwu037653@svn.freebsd.org> From: Alexander Motin Date: Tue, 17 Nov 2009 20:49:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r199435 - in stable/8/sys/cam: . ata scsi X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Nov 2009 20:49:26 -0000 Author: mav Date: Tue Nov 17 20:49:26 2009 New Revision: 199435 URL: http://svn.freebsd.org/changeset/base/199435 Log: MFC r198748, r198782: Fix reference counting bug, when device unreferenced before invalidated. To do it, do not handle validity flag as another reference, but explicitly modify reference count each time flag is modified. The async callback could free the device. If it is a broadcast async, it doesn't hold device reference, so take our own reference. Modified: stable/8/sys/cam/ata/ata_xpt.c stable/8/sys/cam/cam_xpt.c stable/8/sys/cam/cam_xpt_internal.h stable/8/sys/cam/scsi/scsi_xpt.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) Modified: stable/8/sys/cam/ata/ata_xpt.c ============================================================================== --- stable/8/sys/cam/ata/ata_xpt.c Tue Nov 17 20:49:09 2009 (r199434) +++ stable/8/sys/cam/ata/ata_xpt.c Tue Nov 17 20:49:26 2009 (r199435) @@ -733,6 +733,7 @@ noerror: case PROBE_SET_MULTI: if (periph->path->device->flags & CAM_DEV_UNCONFIGURED) { path->device->flags &= ~CAM_DEV_UNCONFIGURED; + xpt_acquire_device(path->device); done_ccb->ccb_h.func_code = XPT_GDEV_TYPE; xpt_action(done_ccb); xpt_async(AC_FOUND_DEVICE, done_ccb->ccb_h.path, @@ -777,6 +778,7 @@ noerror: ata_device_transport(path); if (periph->path->device->flags & CAM_DEV_UNCONFIGURED) { path->device->flags &= ~CAM_DEV_UNCONFIGURED; + xpt_acquire_device(path->device); 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); @@ -810,6 +812,7 @@ noerror: path->device->flags |= CAM_DEV_IDENTIFY_DATA_VALID; if (periph->path->device->flags & CAM_DEV_UNCONFIGURED) { path->device->flags &= ~CAM_DEV_UNCONFIGURED; + xpt_acquire_device(path->device); done_ccb->ccb_h.func_code = XPT_GDEV_TYPE; xpt_action(done_ccb); xpt_async(AC_FOUND_DEVICE, done_ccb->ccb_h.path, @@ -1485,8 +1488,10 @@ ata_dev_async(u_int32_t async_code, stru CAM_EXPECT_INQ_CHANGE, NULL); } xpt_release_path(&newpath); - } else if (async_code == AC_LOST_DEVICE) { + } else if (async_code == AC_LOST_DEVICE && + (device->flags & CAM_DEV_UNCONFIGURED) == 0) { device->flags |= CAM_DEV_UNCONFIGURED; + xpt_release_device(device); } else if (async_code == AC_TRANSFER_NEG) { struct ccb_trans_settings *settings; Modified: stable/8/sys/cam/cam_xpt.c ============================================================================== --- stable/8/sys/cam/cam_xpt.c Tue Nov 17 20:49:09 2009 (r199434) +++ stable/8/sys/cam/cam_xpt.c Tue Nov 17 20:49:26 2009 (r199435) @@ -217,9 +217,7 @@ static void xpt_release_devq_device(str int run_queue); static struct cam_et* xpt_alloc_target(struct cam_eb *bus, target_id_t target_id); -static void xpt_release_target(struct cam_eb *bus, struct cam_et *target); -static void xpt_release_device(struct cam_eb *bus, struct cam_et *target, - struct cam_ed *device); +static void xpt_release_target(struct cam_et *target); static struct cam_eb* xpt_find_bus(path_id_t path_id); static struct cam_et* @@ -3521,9 +3519,9 @@ xpt_compile_path(struct cam_path *new_pa CAM_DEBUG(new_path, CAM_DEBUG_TRACE, ("xpt_compile_path\n")); } else { if (device != NULL) - xpt_release_device(bus, target, device); + xpt_release_device(device); if (target != NULL) - xpt_release_target(bus, target); + xpt_release_target(target); if (bus != NULL) xpt_release_bus(bus); } @@ -3535,11 +3533,11 @@ xpt_release_path(struct cam_path *path) { CAM_DEBUG(path, CAM_DEBUG_TRACE, ("xpt_release_path\n")); if (path->device != NULL) { - xpt_release_device(path->bus, path->target, path->device); + xpt_release_device(path->device); path->device = NULL; } if (path->target != NULL) { - xpt_release_target(path->bus, path->target); + xpt_release_target(path->target); path->target = NULL; } if (path->bus != NULL) { @@ -4024,13 +4022,19 @@ xpt_async(u_int32_t async_code, struct c && path->device->lun_id != CAM_LUN_WILDCARD && device->lun_id != CAM_LUN_WILDCARD) continue; - + /* + * The async callback could free the device. + * If it is a broadcast async, it doesn't hold + * device reference, so take our own reference. + */ + xpt_acquire_device(device); (*(bus->xport->async))(async_code, bus, target, device, async_arg); xpt_async_bcast(&device->asyncs, async_code, path, async_arg); + xpt_release_device(device); } } @@ -4375,15 +4379,15 @@ xpt_alloc_target(struct cam_eb *bus, tar } static void -xpt_release_target(struct cam_eb *bus, struct cam_et *target) +xpt_release_target(struct cam_et *target) { if ((--target->refcount == 0) && (TAILQ_FIRST(&target->ed_entries) == NULL)) { - TAILQ_REMOVE(&bus->et_entries, target, links); - bus->generation++; + TAILQ_REMOVE(&target->bus->et_entries, target, links); + target->bus->generation++; + xpt_release_bus(target->bus); free(target, M_CAMXPT); - xpt_release_bus(bus); } } @@ -4470,13 +4474,18 @@ xpt_alloc_device(struct cam_eb *bus, str return (device); } -static void -xpt_release_device(struct cam_eb *bus, struct cam_et *target, - struct cam_ed *device) +void +xpt_acquire_device(struct cam_ed *device) +{ + + device->refcount++; +} + +void +xpt_release_device(struct cam_ed *device) { - if ((--device->refcount == 0) - && ((device->flags & CAM_DEV_UNCONFIGURED) != 0)) { + if (--device->refcount == 0) { struct cam_devq *devq; if (device->alloc_ccb_entry.pinfo.index != CAM_UNQUEUED_INDEX @@ -4486,16 +4495,16 @@ xpt_release_device(struct cam_eb *bus, s if ((device->flags & CAM_DEV_REL_TIMEOUT_PENDING) != 0) callout_stop(&device->callout); - TAILQ_REMOVE(&target->ed_entries, device,links); - target->generation++; - bus->sim->max_ccbs -= device->ccbq.devq_openings; + TAILQ_REMOVE(&device->target->ed_entries, device,links); + device->target->generation++; + device->target->bus->sim->max_ccbs -= device->ccbq.devq_openings; /* Release our slot in the devq */ - devq = bus->sim->devq; + devq = device->target->bus->sim->devq; cam_devq_resize(devq, devq->alloc_queue.array_size - 1); camq_fini(&device->drvq); cam_ccbq_fini(&device->ccbq); + xpt_release_target(device->target); free(device, M_CAMXPT); - xpt_release_target(bus, target); } } Modified: stable/8/sys/cam/cam_xpt_internal.h ============================================================================== --- stable/8/sys/cam/cam_xpt_internal.h Tue Nov 17 20:49:09 2009 (r199434) +++ stable/8/sys/cam/cam_xpt_internal.h Tue Nov 17 20:49:26 2009 (r199435) @@ -37,9 +37,7 @@ struct cam_ed; typedef struct cam_ed * (*xpt_alloc_device_func)(struct cam_eb *bus, struct cam_et *target, lun_id_t lun_id); -typedef void (*xpt_release_device_func)(struct cam_eb *bus, - struct cam_et *target, - struct cam_ed *device); +typedef void (*xpt_release_device_func)(struct cam_ed *device); typedef void (*xpt_action_func)(union ccb *start_ccb); typedef void (*xpt_dev_async_func)(u_int32_t async_code, struct cam_eb *bus, @@ -172,6 +170,8 @@ struct xpt_xport * ata_get_xport(void); struct cam_ed * xpt_alloc_device(struct cam_eb *bus, struct cam_et *target, lun_id_t lun_id); +void xpt_acquire_device(struct cam_ed *device); +void xpt_release_device(struct cam_ed *device); void xpt_run_dev_sendq(struct cam_eb *bus); int xpt_schedule_dev(struct camq *queue, cam_pinfo *dev_pinfo, u_int32_t new_priority); Modified: stable/8/sys/cam/scsi/scsi_xpt.c ============================================================================== --- stable/8/sys/cam/scsi/scsi_xpt.c Tue Nov 17 20:49:09 2009 (r199434) +++ stable/8/sys/cam/scsi/scsi_xpt.c Tue Nov 17 20:49:26 2009 (r199435) @@ -1076,8 +1076,10 @@ probedone(struct cam_periph *periph, uni else PROBE_SET_ACTION(softc, PROBE_SERIAL_NUM_0); - path->device->flags &= ~CAM_DEV_UNCONFIGURED; - + if (path->device->flags & CAM_DEV_UNCONFIGURED) { + path->device->flags &= ~CAM_DEV_UNCONFIGURED; + xpt_acquire_device(path->device); + } xpt_release_ccb(done_ccb); xpt_schedule(periph, priority); return; @@ -1336,8 +1338,12 @@ probedone(struct cam_periph *periph, uni CAM_DEBUG(periph->path, CAM_DEBUG_INFO, ("Leave Domain Validation\n")); } + if (path->device->flags & CAM_DEV_UNCONFIGURED) { + path->device->flags &= ~CAM_DEV_UNCONFIGURED; + xpt_acquire_device(path->device); + } path->device->flags &= - ~(CAM_DEV_UNCONFIGURED|CAM_DEV_IN_DV|CAM_DEV_DV_HIT_BOTTOM); + ~(CAM_DEV_IN_DV|CAM_DEV_DV_HIT_BOTTOM); if ((softc->flags & PROBE_NO_ANNOUNCE) == 0) { /* Inform the XPT that a new device has been found */ done_ccb->ccb_h.func_code = XPT_GDEV_TYPE; @@ -1387,8 +1393,12 @@ probedone(struct cam_periph *periph, uni CAM_DEBUG(periph->path, CAM_DEBUG_INFO, ("Leave Domain Validation Successfully\n")); } + if (path->device->flags & CAM_DEV_UNCONFIGURED) { + path->device->flags &= ~CAM_DEV_UNCONFIGURED; + xpt_acquire_device(path->device); + } path->device->flags &= - ~(CAM_DEV_UNCONFIGURED|CAM_DEV_IN_DV|CAM_DEV_DV_HIT_BOTTOM); + ~(CAM_DEV_IN_DV|CAM_DEV_DV_HIT_BOTTOM); if ((softc->flags & PROBE_NO_ANNOUNCE) == 0) { /* Inform the XPT that a new device has been found */ done_ccb->ccb_h.func_code = XPT_GDEV_TYPE; @@ -2375,8 +2385,10 @@ scsi_dev_async(u_int32_t async_code, str CAM_EXPECT_INQ_CHANGE, NULL); } xpt_release_path(&newpath); - } else if (async_code == AC_LOST_DEVICE) { + } else if (async_code == AC_LOST_DEVICE && + (device->flags & CAM_DEV_UNCONFIGURED) == 0) { device->flags |= CAM_DEV_UNCONFIGURED; + xpt_release_device(device); } else if (async_code == AC_TRANSFER_NEG) { struct ccb_trans_settings *settings; From owner-svn-src-stable-8@FreeBSD.ORG Tue Nov 17 20:54:52 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 84AB0106566B; Tue, 17 Nov 2009 20:54:52 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 741BA8FC0A; Tue, 17 Nov 2009 20:54:52 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nAHKsqBO037902; Tue, 17 Nov 2009 20:54:52 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nAHKsqBi037900; Tue, 17 Nov 2009 20:54:52 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <200911172054.nAHKsqBi037900@svn.freebsd.org> From: Alexander Motin Date: Tue, 17 Nov 2009 20:54:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r199436 - stable/8/sys/cam/scsi X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Nov 2009 20:54:52 -0000 Author: mav Date: Tue Nov 17 20:54:52 2009 New Revision: 199436 URL: http://svn.freebsd.org/changeset/base/199436 Log: MFC r198832: Provide the same sanity check on the sector size in dagetcapacity as when the disk is first probed. dagetcapacity is called whenever the disk is opened from geom via d_open(), a zero sector size will cause geom to panic later on. Modified: stable/8/sys/cam/scsi/scsi_da.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) Modified: stable/8/sys/cam/scsi/scsi_da.c ============================================================================== --- stable/8/sys/cam/scsi/scsi_da.c Tue Nov 17 20:49:26 2009 (r199435) +++ stable/8/sys/cam/scsi/scsi_da.c Tue Nov 17 20:54:52 2009 (r199436) @@ -1948,8 +1948,15 @@ dagetcapacity(struct cam_periph *periph) done: - if (error == 0) - dasetgeom(periph, block_len, maxsector); + if (error == 0) { + if (block_len >= MAXPHYS || block_len == 0) { + xpt_print(periph->path, + "unsupportable block size %ju\n", + (uintmax_t) block_len); + error = EINVAL; + } else + dasetgeom(periph, block_len, maxsector); + } xpt_release_ccb(ccb); From owner-svn-src-stable-8@FreeBSD.ORG Tue Nov 17 20:56:24 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7EE68106578D; Tue, 17 Nov 2009 20:56:24 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 6CE948FC18; Tue, 17 Nov 2009 20:56:24 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nAHKuOt5038095; Tue, 17 Nov 2009 20:56:24 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nAHKuOHu038089; Tue, 17 Nov 2009 20:56:24 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <200911172056.nAHKuOHu038089@svn.freebsd.org> From: Alexander Motin Date: Tue, 17 Nov 2009 20:56:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r199438 - in stable/8/sys/cam: . ata X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Nov 2009 20:56:24 -0000 Author: mav Date: Tue Nov 17 20:56:24 2009 New Revision: 199438 URL: http://svn.freebsd.org/changeset/base/199438 Log: MFC r198849: Improve reporting ATA Status error details. Modified: stable/8/sys/cam/ata/ata_all.c stable/8/sys/cam/ata/ata_all.h stable/8/sys/cam/cam.c stable/8/sys/cam/cam.h stable/8/sys/cam/cam_periph.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) Modified: stable/8/sys/cam/ata/ata_all.c ============================================================================== --- stable/8/sys/cam/ata/ata_all.c Tue Nov 17 20:56:14 2009 (r199437) +++ stable/8/sys/cam/ata/ata_all.c Tue Nov 17 20:56:24 2009 (r199438) @@ -68,6 +68,185 @@ ata_version(int ver) return 0; } +char * +ata_op_string(struct ata_cmd *cmd) +{ + + switch (cmd->command) { + case 0x00: return ("NOP"); + case 0x03: return ("CFA_REQUEST_EXTENDED_ERROR"); + case 0x08: return ("DEVICE_RESET"); + case 0x20: return ("READ"); + case 0x24: return ("READ48"); + case 0x25: return ("READ_DMA48"); + case 0x26: return ("READ_DMA_QUEUED48"); + case 0x27: return ("READ_NATIVE_MAX_ADDRESS48"); + case 0x29: return ("READ_MUL48"); + case 0x2a: return ("READ_STREAM_DMA48"); + case 0x2b: return ("READ_STREAM48"); + case 0x2f: return ("READ_LOG_EXT"); + case 0x30: return ("WRITE"); + case 0x34: return ("WRITE48"); + case 0x35: return ("WRITE_DMA48"); + case 0x36: return ("WRITE_DMA_QUEUED48"); + case 0x37: return ("SET_MAX_ADDRESS48"); + case 0x39: return ("WRITE_MUL48"); + case 0x3a: return ("WRITE_STREAM_DMA48"); + case 0x3b: return ("WRITE_STREAM48"); + case 0x3d: return ("WRITE_DMA_FUA"); + case 0x3e: return ("WRITE_DMA_FUA48"); + case 0x3f: return ("WRITE_LOG_EXT"); + case 0x40: return ("READ_VERIFY"); + case 0x42: return ("READ_VERIFY48"); + case 0x51: return ("CONFIGURE_STREAM"); + case 0x60: return ("READ_FPDMA_QUEUED"); + case 0x61: return ("WRITE_FPDMA_QUEUED"); + case 0x70: return ("SEEK"); + case 0x87: return ("CFA_TRANSLATE_SECTOR"); + case 0x90: return ("EXECUTE_DEVICE_DIAGNOSTIC"); + case 0x92: return ("DOWNLOAD_MICROCODE"); + case 0xa0: return ("PACKET"); + case 0xa1: return ("ATAPI_IDENTIFY"); + case 0xa2: return ("SERVICE"); + case 0xb0: return ("SMART"); + case 0xb1: return ("DEVICE CONFIGURATION"); + case 0xc0: return ("CFA_ERASE"); + case 0xc4: return ("READ_MUL"); + case 0xc5: return ("WRITE_MUL"); + case 0xc6: return ("SET_MULTI"); + case 0xc7: return ("READ_DMA_QUEUED"); + case 0xc8: return ("READ_DMA"); + case 0xca: return ("WRITE_DMA"); + case 0xcc: return ("WRITE_DMA_QUEUED"); + case 0xcd: return ("CFA_WRITE_MULTIPLE_WITHOUT_ERASE"); + case 0xce: return ("WRITE_MULTIPLE_FUA48"); + case 0xd1: return ("CHECK_MEDIA_CARD_TYPE"); + case 0xda: return ("GET_MEDIA_STATUS"); + case 0xde: return ("MEDIA_LOCK"); + case 0xdf: return ("MEDIA_UNLOCK"); + case 0xe0: return ("STANDBY_IMMEDIATE"); + case 0xe1: return ("IDLE_IMMEDIATE"); + case 0xe2: return ("STANDBY"); + case 0xe3: return ("IDLE"); + case 0xe4: return ("READ_BUFFER/PM"); + case 0xe5: return ("CHECK_POWER_MODE"); + case 0xe6: return ("SLEEP"); + case 0xe7: return ("FLUSHCACHE"); + case 0xe8: return ("WRITE_PM"); + case 0xea: return ("FLUSHCACHE48"); + case 0xec: return ("ATA_IDENTIFY"); + case 0xed: return ("MEDIA_EJECT"); + case 0xef: + switch (cmd->features) { + case 0x03: return ("SETFEATURES SET TRANSFER MODE"); + case 0x02: return ("SETFEATURES ENABLE WCACHE"); + case 0x82: return ("SETFEATURES DISABLE WCACHE"); + case 0xaa: return ("SETFEATURES ENABLE RCACHE"); + case 0x55: return ("SETFEATURES DISABLE RCACHE"); + } + return "SETFEATURES"; + case 0xf1: return ("SECURITY_SET_PASSWORD"); + case 0xf2: return ("SECURITY_UNLOCK"); + case 0xf3: return ("SECURITY_ERASE_PREPARE"); + case 0xf4: return ("SECURITY_ERASE_UNIT"); + case 0xf5: return ("SECURITY_FREE_LOCK"); + case 0xf6: return ("SECURITY DISABLE PASSWORD"); + case 0xf8: return ("READ_NATIVE_MAX_ADDRESS"); + case 0xf9: return ("SET_MAX_ADDRESS"); + } + return "UNKNOWN"; +} + +char * +ata_cmd_string(struct ata_cmd *cmd, char *cmd_string, size_t len) +{ + + snprintf(cmd_string, len, "%02x %02x %02x %02x " + "%02x %02x %02x %02x %02x %02x %02x %02x", + cmd->command, cmd->features, + cmd->lba_low, cmd->lba_mid, cmd->lba_high, cmd->device, + cmd->lba_low_exp, cmd->lba_mid_exp, cmd->lba_high_exp, + cmd->features_exp, cmd->sector_count, cmd->sector_count_exp); + + return(cmd_string); +} + +char * +ata_res_string(struct ata_res *res, char *res_string, size_t len) +{ + + snprintf(res_string, len, "%02x %02x %02x %02x " + "%02x %02x %02x %02x %02x %02x %02x", + res->status, res->error, + res->lba_low, res->lba_mid, res->lba_high, res->device, + res->lba_low_exp, res->lba_mid_exp, res->lba_high_exp, + res->sector_count, res->sector_count_exp); + + return(res_string); +} + +/* + * ata_command_sbuf() returns 0 for success and -1 for failure. + */ +int +ata_command_sbuf(struct ccb_ataio *ataio, struct sbuf *sb) +{ + char cmd_str[(12 * 3) + 1]; + + sbuf_printf(sb, "CMD: %s: %s", + ata_op_string(&ataio->cmd), + ata_cmd_string(&ataio->cmd, cmd_str, sizeof(cmd_str))); + + return(0); +} + +/* + * ata_status_abuf() returns 0 for success and -1 for failure. + */ +int +ata_status_sbuf(struct ccb_ataio *ataio, struct sbuf *sb) +{ + + sbuf_printf(sb, "ATA Status: %02x (%s%s%s%s%s%s%s%s)", + ataio->res.status, + (ataio->res.status & 0x80) ? "BSY " : "", + (ataio->res.status & 0x40) ? "DRDY " : "", + (ataio->res.status & 0x20) ? "DF " : "", + (ataio->res.status & 0x10) ? "SERV " : "", + (ataio->res.status & 0x08) ? "DRQ " : "", + (ataio->res.status & 0x04) ? "CORR " : "", + (ataio->res.status & 0x02) ? "IDX " : "", + (ataio->res.status & 0x01) ? "ERR" : ""); + if (ataio->res.status & 1) { + sbuf_printf(sb, ", Error: %02x (%s%s%s%s%s%s%s%s)", + ataio->res.error, + (ataio->res.error & 0x80) ? "ICRC " : "", + (ataio->res.error & 0x40) ? "UNC " : "", + (ataio->res.error & 0x20) ? "MC " : "", + (ataio->res.error & 0x10) ? "IDNF " : "", + (ataio->res.error & 0x08) ? "MCR " : "", + (ataio->res.error & 0x04) ? "ABRT " : "", + (ataio->res.error & 0x02) ? "NM " : "", + (ataio->res.error & 0x01) ? "ILI" : ""); + } + + return(0); +} + +/* + * ata_res_sbuf() returns 0 for success and -1 for failure. + */ +int +ata_res_sbuf(struct ccb_ataio *ataio, struct sbuf *sb) +{ + char res_str[(11 * 3) + 1]; + + sbuf_printf(sb, "RES: %s", + ata_res_string(&ataio->res, res_str, sizeof(res_str))); + + return(0); +} + void ata_print_ident(struct ata_params *ident_data) { Modified: stable/8/sys/cam/ata/ata_all.h ============================================================================== --- stable/8/sys/cam/ata/ata_all.h Tue Nov 17 20:56:14 2009 (r199437) +++ stable/8/sys/cam/ata/ata_all.h Tue Nov 17 20:56:24 2009 (r199438) @@ -81,6 +81,14 @@ struct ata_res { }; int ata_version(int ver); + +char * ata_op_string(struct ata_cmd *cmd); +char * ata_cmd_string(struct ata_cmd *cmd, char *cmd_string, size_t len); +char * ata_res_string(struct ata_res *res, char *res_string, size_t len); +int ata_command_sbuf(struct ccb_ataio *ataio, struct sbuf *sb); +int ata_status_sbuf(struct ccb_ataio *ataio, struct sbuf *sb); +int ata_res_sbuf(struct ccb_ataio *ataio, struct sbuf *sb); + void ata_print_ident(struct ata_params *ident_data); void ata_28bit_cmd(struct ccb_ataio *ataio, uint8_t cmd, uint8_t features, Modified: stable/8/sys/cam/cam.c ============================================================================== --- stable/8/sys/cam/cam.c Tue Nov 17 20:56:14 2009 (r199437) +++ stable/8/sys/cam/cam.c Tue Nov 17 20:56:24 2009 (r199438) @@ -229,6 +229,21 @@ cam_error_string(struct cam_device *devi return(NULL); switch (ccb->ccb_h.func_code) { + case XPT_ATA_IO: + switch (proto_flags & CAM_EPF_LEVEL_MASK) { + case CAM_EPF_NONE: + break; + case CAM_EPF_ALL: + case CAM_EPF_NORMAL: + proto_flags |= CAM_EAF_PRINT_RESULT; + /* FALLTHROUGH */ + case CAM_EPF_MINIMAL: + proto_flags |= CAM_EAF_PRINT_STATUS; + /* FALLTHROUGH */ + default: + break; + } + break; case XPT_SCSI_IO: switch (proto_flags & CAM_EPF_LEVEL_MASK) { case CAM_EPF_NONE: @@ -256,10 +271,12 @@ cam_error_string(struct cam_device *devi sbuf_new(&sb, str, str_len, 0); if (flags & CAM_ESF_COMMAND) { - sbuf_cat(&sb, path_str); - switch (ccb->ccb_h.func_code) { + case XPT_ATA_IO: + ata_command_sbuf(&ccb->ataio, &sb); + sbuf_printf(&sb, "\n"); + break; case XPT_SCSI_IO: #ifdef _KERNEL scsi_command_string(&ccb->csio, &sb); @@ -267,7 +284,6 @@ cam_error_string(struct cam_device *devi scsi_command_string(device, &ccb->csio, &sb); #endif /* _KERNEL/!_KERNEL */ sbuf_printf(&sb, "\n"); - break; default: break; @@ -295,6 +311,22 @@ cam_error_string(struct cam_device *devi if (flags & CAM_ESF_PROTO_STATUS) { switch (ccb->ccb_h.func_code) { + case XPT_ATA_IO: + if ((ccb->ccb_h.status & CAM_STATUS_MASK) != + CAM_ATA_STATUS_ERROR) + break; + if (proto_flags & CAM_EAF_PRINT_STATUS) { + sbuf_cat(&sb, path_str); + ata_status_sbuf(&ccb->ataio, &sb); + sbuf_printf(&sb, "\n"); + } + if (proto_flags & CAM_EAF_PRINT_RESULT) { + sbuf_cat(&sb, path_str); + ata_res_sbuf(&ccb->ataio, &sb); + sbuf_printf(&sb, "\n"); + } + + break; case XPT_SCSI_IO: if ((ccb->ccb_h.status & CAM_STATUS_MASK) != CAM_SCSI_STATUS_ERROR) @@ -302,10 +334,6 @@ cam_error_string(struct cam_device *devi if (proto_flags & CAM_ESF_PRINT_STATUS) { sbuf_cat(&sb, path_str); - /* - * Print out the SCSI status byte as long as - * the user wants some protocol output. - */ sbuf_printf(&sb, "SCSI Status: %s\n", scsi_status_string(&ccb->csio)); } Modified: stable/8/sys/cam/cam.h ============================================================================== --- stable/8/sys/cam/cam.h Tue Nov 17 20:56:14 2009 (r199437) +++ stable/8/sys/cam/cam.h Tue Nov 17 20:56:24 2009 (r199438) @@ -184,6 +184,12 @@ typedef enum { CAM_ESF_PRINT_SENSE = 0x20 } cam_error_scsi_flags; +typedef enum { + CAM_EAF_PRINT_NONE = 0x00, + CAM_EAF_PRINT_STATUS = 0x10, + CAM_EAF_PRINT_RESULT = 0x20 +} cam_error_ata_flags; + struct cam_status_entry { cam_status status_code; Modified: stable/8/sys/cam/cam_periph.c ============================================================================== --- stable/8/sys/cam/cam_periph.c Tue Nov 17 20:56:14 2009 (r199437) +++ stable/8/sys/cam/cam_periph.c Tue Nov 17 20:56:24 2009 (r199438) @@ -1612,6 +1612,7 @@ cam_periph_error(union ccb *ccb, cam_fla if (bootverbose && printed == 0) { xpt_print(ccb->ccb_h.path, "Request completed with CAM_ATA_STATUS_ERROR\n"); + cam_error_print(ccb, CAM_ESF_ALL, CAM_EPF_ALL); printed++; } /* FALLTHROUGH */ From owner-svn-src-stable-8@FreeBSD.ORG Tue Nov 17 20:57:35 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 686471065679; Tue, 17 Nov 2009 20:57:35 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 577518FC19; Tue, 17 Nov 2009 20:57:35 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nAHKvZFn038193; Tue, 17 Nov 2009 20:57:35 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nAHKvZ17038190; Tue, 17 Nov 2009 20:57:35 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <200911172057.nAHKvZ17038190@svn.freebsd.org> From: Alexander Motin Date: Tue, 17 Nov 2009 20:57:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r199439 - stable/8/sys/dev/ahci X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Nov 2009 20:57:35 -0000 Author: mav Date: Tue Nov 17 20:57:35 2009 New Revision: 199439 URL: http://svn.freebsd.org/changeset/base/199439 Log: MFC r198851: - Handle timeouts and fatal errors with port hard-reset. The rest of recovery will be done by XPT on receiving async event. More gracefull per-device soft-reset recovery can be implemented later. - Add workaround for ATI SB600/SB700 PMP probe related bug, to speedup boot. Modified: stable/8/sys/dev/ahci/ahci.c stable/8/sys/dev/ahci/ahci.h Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) Modified: stable/8/sys/dev/ahci/ahci.c ============================================================================== --- stable/8/sys/dev/ahci/ahci.c Tue Nov 17 20:56:24 2009 (r199438) +++ stable/8/sys/dev/ahci/ahci.c Tue Nov 17 20:57:35 2009 (r199439) @@ -1221,6 +1221,13 @@ ahci_execute_transaction(struct ahci_slo et = AHCI_ERR_TFE; break; } + /* Workaround for ATI SB600/SB700 chipsets. */ + if (ccb->ccb_h.target_id == 15 && + pci_get_vendor(device_get_parent(dev)) == 0x1002 && + (ATA_INL(ch->r_mem, AHCI_P_IS) & AHCI_P_IX_IPM)) { + et = AHCI_ERR_TIMEOUT; + break; + } } if (timeout && (count >= timeout)) { device_printf(ch->dev, @@ -1275,10 +1282,8 @@ ahci_timeout(struct ahci_slot *slot) 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); + ch->fatalerr = 1; /* Handle frozen command. */ if (ch->frozen) { union ccb *fccb = ch->frozen; @@ -1360,6 +1365,7 @@ ahci_end_transaction(struct ahci_slot *s ccb->csio.scsi_status = SCSI_STATUS_OK; break; case AHCI_ERR_INVALID: + ch->fatalerr = 1; ccb->ccb_h.status |= CAM_REQ_INVALID; break; case AHCI_ERR_INNOCENT: @@ -1375,6 +1381,7 @@ ahci_end_transaction(struct ahci_slot *s } break; case AHCI_ERR_SATA: + ch->fatalerr = 1; if (!ch->readlog) { xpt_freeze_simq(ch->sim, 1); ccb->ccb_h.status &= ~CAM_STATUS_MASK; @@ -1383,6 +1390,10 @@ ahci_end_transaction(struct ahci_slot *s ccb->ccb_h.status |= CAM_UNCOR_PARITY; break; case AHCI_ERR_TIMEOUT: + /* Do no treat soft-reset timeout as fatal here. */ + if (ccb->ccb_h.func_code != XPT_ATA_IO || + !(ccb->ataio.cmd.flags & CAM_ATAIO_CONTROL)) + ch->fatalerr = 1; if (!ch->readlog) { xpt_freeze_simq(ch->sim, 1); ccb->ccb_h.status &= ~CAM_STATUS_MASK; @@ -1391,6 +1402,7 @@ ahci_end_transaction(struct ahci_slot *s ccb->ccb_h.status |= CAM_CMD_TIMEOUT; break; default: + ch->fatalerr = 1; ccb->ccb_h.status |= CAM_REQ_CMP_ERR; } /* Free slot. */ @@ -1414,12 +1426,13 @@ ahci_end_transaction(struct ahci_slot *s ahci_begin_transaction(dev, ccb); return; } + /* If it was our READ LOG command - process it. */ + if (ch->readlog) { + ahci_process_read_log(dev, ccb); /* If it was NCQ command error, put result on hold. */ - if (et == AHCI_ERR_NCQ) { + } else if (et == AHCI_ERR_NCQ) { ch->hold[slot->slot] = ccb; - } else if (ch->readlog) /* If it was our READ LOG command - process it. */ - ahci_process_read_log(dev, ccb); - else + } else xpt_done(ccb); /* Unfreeze frozen command. */ if (ch->frozen && ch->numrslots == 0) { @@ -1428,6 +1441,13 @@ ahci_end_transaction(struct ahci_slot *s ahci_begin_transaction(dev, fccb); xpt_release_simq(ch->sim, TRUE); } + /* If we have no other active commands, ... */ + if (ch->rslots == 0) { + /* if there was fatal error - reset port. */ + if (ch->fatalerr) { + ahci_reset(dev); + } + } /* Start PM timer. */ if (ch->numrslots == 0 && ch->pm_level > 3) { callout_schedule(&ch->pm_timer, @@ -1674,6 +1694,13 @@ ahci_reset(device_t dev) /* XXX; Commands in loading state. */ ahci_end_transaction(&ch->slot[i], AHCI_ERR_INNOCENT); } + for (i = 0; i < ch->numslots; i++) { + if (!ch->hold[i]) + continue; + xpt_done(ch->hold[i]); + ch->hold[i] = NULL; + } + ch->fatalerr = 0; /* Tell the XPT about the event */ xpt_async(AC_BUS_RESET, ch->path, NULL); /* Disable port interrupts */ Modified: stable/8/sys/dev/ahci/ahci.h ============================================================================== --- stable/8/sys/dev/ahci/ahci.h Tue Nov 17 20:56:24 2009 (r199438) +++ stable/8/sys/dev/ahci/ahci.h Tue Nov 17 20:57:35 2009 (r199439) @@ -366,6 +366,7 @@ struct ahci_channel { int numrslots; /* Number of running slots */ int numtslots; /* Number of tagged slots */ int readlog; /* Our READ LOG active */ + int fatalerr; /* Fatal error happend */ int lastslot; /* Last used slot */ int taggedtarget; /* Last tagged target */ union ccb *frozen; /* Frozen command */ From owner-svn-src-stable-8@FreeBSD.ORG Tue Nov 17 20:59:01 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 495A8106568D; Tue, 17 Nov 2009 20:59:01 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 3745D8FC15; Tue, 17 Nov 2009 20:59:01 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nAHKx1mP038289; Tue, 17 Nov 2009 20:59:01 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nAHKx1fC038286; Tue, 17 Nov 2009 20:59:01 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <200911172059.nAHKx1fC038286@svn.freebsd.org> From: Alexander Motin Date: Tue, 17 Nov 2009 20:59:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r199440 - stable/8/sys/dev/siis X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Nov 2009 20:59:01 -0000 Author: mav Date: Tue Nov 17 20:59:00 2009 New Revision: 199440 URL: http://svn.freebsd.org/changeset/base/199440 Log: MFC r198852: - Rework timeout handling, to make it more graceful for devices sharing controller port (with PMP). Wait for other commands completion/timeout before initiating recovery. - Handle timeouts and fatal errors with port hard-reset. The rest of recovery will be done by XPT on receiving async event. More gracefull per-device soft-reset recovery can be implemented later. Modified: stable/8/sys/dev/siis/siis.c stable/8/sys/dev/siis/siis.h Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) Modified: stable/8/sys/dev/siis/siis.c ============================================================================== --- stable/8/sys/dev/siis/siis.c Tue Nov 17 20:57:35 2009 (r199439) +++ stable/8/sys/dev/siis/siis.c Tue Nov 17 20:59:00 2009 (r199440) @@ -511,7 +511,10 @@ siis_ch_resume(device_t dev) /* Get port out of reset state. */ ATA_OUTL(ch->r_mem, SIIS_P_CTLCLR, SIIS_P_CTL_PORT_RESET); ATA_OUTL(ch->r_mem, SIIS_P_CTLCLR, SIIS_P_CTL_32BIT); - ATA_OUTL(ch->r_mem, SIIS_P_CTLCLR, SIIS_P_CTL_PME); + if (ch->pm_present) + ATA_OUTL(ch->r_mem, SIIS_P_CTLSET, SIIS_P_CTL_PME); + else + ATA_OUTL(ch->r_mem, SIIS_P_CTLCLR, SIIS_P_CTL_PME); /* Enable port interrupts */ ATA_OUTL(ch->r_mem, SIIS_P_IESET, SIIS_P_IX_ENABLED); return (0); @@ -764,7 +767,7 @@ siis_ch_intr(void *data) estatus == SIIS_P_CMDERR_DATAFIS) { tslots = ch->numtslots[port]; for (i = 0; i < SIIS_MAX_SLOTS; i++) { - /* XXX: reqests in loading state. */ + /* XXX: requests in loading state. */ if (((ch->rslots >> i) & 1) == 0) continue; if (ch->slot[i].ccb->ccb_h.target_id != port) @@ -796,7 +799,7 @@ siis_ch_intr(void *data) } else et = SIIS_ERR_INVALID; for (i = 0; i < SIIS_MAX_SLOTS; i++) { - /* XXX: reqests in loading state. */ + /* XXX: requests in loading state. */ if (((ch->rslots >> i) & 1) == 0) continue; siis_end_transaction(&ch->slot[i], et); @@ -967,48 +970,51 @@ siis_execute_transaction(struct siis_slo return; } -/* Locked by callout mechanism. */ +/* Must be called with channel locked. */ static void -siis_timeout(struct siis_slot *slot) +siis_process_timeout(device_t dev) { - device_t dev = slot->dev; struct siis_channel *ch = device_get_softc(dev); int i; mtx_assert(&ch->mtx, MA_OWNED); - device_printf(dev, "Timeout on slot %d\n", slot->slot); -device_printf(dev, "%s is %08x ss %08x rs %08x es %08x sts %08x serr %08x\n", - __func__, ATA_INL(ch->r_mem, SIIS_P_IS), ATA_INL(ch->r_mem, SIIS_P_SS), ch->rslots, - ATA_INL(ch->r_mem, SIIS_P_CMDERR), ATA_INL(ch->r_mem, SIIS_P_STS), - ATA_INL(ch->r_mem, SIIS_P_SERR)); - /* Kick controller into sane state. */ - siis_portinit(ch->dev); - - if (!ch->readlog) + if (!ch->readlog && !ch->recovery) { xpt_freeze_simq(ch->sim, ch->numrslots); - /* Handle frozen command. */ - if (ch->frozen) { - union ccb *fccb = ch->frozen; - ch->frozen = NULL; - fccb->ccb_h.status &= ~CAM_STATUS_MASK; - fccb->ccb_h.status |= CAM_REQUEUE_REQ | CAM_RELEASE_SIMQ; - if (!(fccb->ccb_h.status & CAM_DEV_QFRZN)) { - xpt_freeze_devq(fccb->ccb_h.path, 1); - fccb->ccb_h.status |= CAM_DEV_QFRZN; - } - xpt_done(fccb); + ch->recovery = 1; } - /* Handle command with timeout. */ - siis_end_transaction(&ch->slot[slot->slot], SIIS_ERR_TIMEOUT); /* Handle the rest of commands. */ for (i = 0; i < SIIS_MAX_SLOTS; i++) { /* Do we have a running request on slot? */ if (ch->slot[i].state < SIIS_SLOT_RUNNING) continue; - siis_end_transaction(&ch->slot[i], SIIS_ERR_INNOCENT); + siis_end_transaction(&ch->slot[i], SIIS_ERR_TIMEOUT); } } +/* Locked by callout mechanism. */ +static void +siis_timeout(struct siis_slot *slot) +{ + device_t dev = slot->dev; + struct siis_channel *ch = device_get_softc(dev); + + mtx_assert(&ch->mtx, MA_OWNED); + device_printf(dev, "Timeout on slot %d\n", slot->slot); +device_printf(dev, "%s is %08x ss %08x rs %08x es %08x sts %08x serr %08x\n", + __func__, ATA_INL(ch->r_mem, SIIS_P_IS), ATA_INL(ch->r_mem, SIIS_P_SS), ch->rslots, + ATA_INL(ch->r_mem, SIIS_P_CMDERR), ATA_INL(ch->r_mem, SIIS_P_STS), + ATA_INL(ch->r_mem, SIIS_P_SERR)); + + if (ch->toslots == 0) + xpt_freeze_simq(ch->sim, 1); + ch->toslots |= (1 << slot->slot); + if ((ch->rslots & ~ch->toslots) == 0) + siis_process_timeout(dev); + else + device_printf(dev, " ... waiting for slots %08x\n", + ch->rslots & ~ch->toslots); +} + /* Must be called with channel locked. */ static void siis_end_transaction(struct siis_slot *slot, enum siis_err_type et) @@ -1071,6 +1077,7 @@ siis_end_transaction(struct siis_slot *s ccb->csio.scsi_status = SCSI_STATUS_OK; break; case SIIS_ERR_INVALID: + ch->fatalerr = 1; ccb->ccb_h.status |= CAM_REQ_INVALID; break; case SIIS_ERR_INNOCENT: @@ -1086,9 +1093,11 @@ siis_end_transaction(struct siis_slot *s } break; case SIIS_ERR_SATA: + ch->fatalerr = 1; ccb->ccb_h.status |= CAM_UNCOR_PARITY; break; case SIIS_ERR_TIMEOUT: + ch->fatalerr = 1; ccb->ccb_h.status |= CAM_CMD_TIMEOUT; break; default: @@ -1097,6 +1106,11 @@ siis_end_transaction(struct siis_slot *s /* Free slot. */ ch->rslots &= ~(1 << slot->slot); ch->aslots &= ~(1 << slot->slot); + if (et != SIIS_ERR_TIMEOUT) { + if (ch->toslots == (1 << slot->slot)) + xpt_release_simq(ch->sim, TRUE); + ch->toslots &= ~(1 << slot->slot); + } slot->state = SIIS_SLOT_EMPTY; slot->ccb = NULL; /* Update channel stats. */ @@ -1105,13 +1119,14 @@ siis_end_transaction(struct siis_slot *s (ccb->ataio.cmd.flags & CAM_ATAIO_FPDMA)) { ch->numtslots[ccb->ccb_h.target_id]--; } + /* If it was our READ LOG command - process it. */ + if (ch->readlog) { + siis_process_read_log(dev, ccb); /* If it was NCQ command error, put result on hold. */ - if (et == SIIS_ERR_NCQ) { + } else if (et == SIIS_ERR_NCQ) { ch->hold[slot->slot] = ccb; ch->numhslots++; - } else if (ch->readlog) /* If it was our READ LOG command - process it. */ - siis_process_read_log(dev, ccb); - else + } else xpt_done(ccb); /* Unfreeze frozen command. */ if (ch->frozen && ch->numrslots == 0) { @@ -1122,13 +1137,20 @@ siis_end_transaction(struct siis_slot *s } /* If we have no other active commands, ... */ if (ch->rslots == 0) { - /* if we have slots in error, we can reinit port. */ - if (ch->eslots != 0) - siis_portinit(dev); - /* if there commands on hold, we can do READ LOG. */ - if (!ch->readlog && ch->numhslots) - siis_issue_read_log(dev); - } + /* if there were timeouts or fatal error - reset port. */ + if (ch->toslots != 0 || ch->fatalerr) { + siis_reset(dev); + } else { + /* if we have slots in error, we can reinit port. */ + if (ch->eslots != 0) + siis_portinit(dev); + /* if there commands on hold, we can do READ LOG. */ + if (!ch->readlog && ch->numhslots) + siis_issue_read_log(dev); + } + /* If all the reset of commands are in timeout - abort them. */ + } else if ((ch->rslots & ~ch->toslots) == 0) + siis_process_timeout(dev); } static void @@ -1296,13 +1318,14 @@ static void siis_reset(device_t dev) { struct siis_channel *ch = device_get_softc(dev); - int i; + int i, retry = 0; uint32_t val; if (bootverbose) device_printf(dev, "SIIS reset...\n"); - xpt_freeze_simq(ch->sim, ch->numrslots); - /* Requeue freezed command. */ + if (!ch->readlog && !ch->recovery) + xpt_freeze_simq(ch->sim, ch->numrslots); + /* Requeue frozen command. */ if (ch->frozen) { union ccb *fccb = ch->frozen; ch->frozen = NULL; @@ -1322,6 +1345,20 @@ siis_reset(device_t dev) /* XXX; Commands in loading state. */ siis_end_transaction(&ch->slot[i], SIIS_ERR_INNOCENT); } + /* Finish all holden commands as-is. */ + for (i = 0; i < SIIS_MAX_SLOTS; i++) { + if (!ch->hold[i]) + continue; + xpt_done(ch->hold[i]); + ch->hold[i] = NULL; + ch->numhslots--; + } + if (ch->toslots != 0) + xpt_release_simq(ch->sim, TRUE); + ch->eslots = 0; + ch->recovery = 0; + ch->toslots = 0; + ch->fatalerr = 0; /* Disable port interrupts */ ATA_OUTL(ch->r_mem, SIIS_P_IECLR, 0x0000FFFF); /* Set speed limit. */ @@ -1336,6 +1373,7 @@ siis_reset(device_t dev) ATA_OUTL(ch->r_mem, SIIS_P_SCTL, ATA_SC_DET_IDLE | val | ((ch->pm_level > 0) ? 0 : (ATA_SC_IPM_DIS_PARTIAL | ATA_SC_IPM_DIS_SLUMBER))); +retry: siis_devreset(dev); /* Reset and reconnect PHY, */ if (!siis_sata_connect(ch)) { @@ -1350,8 +1388,25 @@ siis_reset(device_t dev) return; } /* Wait for clearing busy status. */ - if (siis_wait_ready(dev, 10000)) + if (siis_wait_ready(dev, 10000)) { device_printf(dev, "device ready timeout\n"); + if (!retry) { + device_printf(dev, "trying full port reset ...\n"); + /* Get port to the reset state. */ + ATA_OUTL(ch->r_mem, SIIS_P_CTLSET, SIIS_P_CTL_PORT_RESET); + DELAY(10000); + /* Get port out of reset state. */ + ATA_OUTL(ch->r_mem, SIIS_P_CTLCLR, SIIS_P_CTL_PORT_RESET); + ATA_OUTL(ch->r_mem, SIIS_P_CTLCLR, SIIS_P_CTL_32BIT); + if (ch->pm_present) + ATA_OUTL(ch->r_mem, SIIS_P_CTLSET, SIIS_P_CTL_PME); + else + ATA_OUTL(ch->r_mem, SIIS_P_CTLCLR, SIIS_P_CTL_PME); + siis_wait_ready(dev, 5000); + retry = 1; + goto retry; + } + } ch->devices = 1; /* Enable port interrupts */ ATA_OUTL(ch->r_mem, SIIS_P_IS, 0xFFFFFFFF); @@ -1487,7 +1542,8 @@ siisaction(struct cam_sim *sim, union cc struct ccb_trans_settings *cts = &ccb->cts; if (cts->xport_specific.sata.valid & CTS_SATA_VALID_PM) { - if (cts->xport_specific.sata.pm_present) + ch->pm_present = cts->xport_specific.sata.pm_present; + if (ch->pm_present) ATA_OUTL(ch->r_mem, SIIS_P_CTLSET, SIIS_P_CTL_PME); else ATA_OUTL(ch->r_mem, SIIS_P_CTLCLR, SIIS_P_CTL_PME); @@ -1522,9 +1578,7 @@ siisaction(struct cam_sim *sim, union cc cts->xport_specific.sata.bitrate = 150000; cts->xport_specific.sata.valid |= CTS_SATA_VALID_SPEED; } - cts->xport_specific.sata.pm_present = - (ATA_INL(ch->r_mem, SIIS_P_STS) & SIIS_P_CTL_PME) ? - 1 : 0; + cts->xport_specific.sata.pm_present = ch->pm_present; cts->xport_specific.sata.valid |= CTS_SATA_VALID_PM; ccb->ccb_h.status = CAM_REQ_CMP; xpt_done(ccb); Modified: stable/8/sys/dev/siis/siis.h ============================================================================== --- stable/8/sys/dev/siis/siis.h Tue Nov 17 20:57:35 2009 (r199439) +++ stable/8/sys/dev/siis/siis.h Tue Nov 17 20:59:00 2009 (r199440) @@ -373,13 +373,14 @@ struct siis_channel { uint32_t rslots; /* Running slots */ uint32_t aslots; /* Slots with atomic commands */ uint32_t eslots; /* Slots in error */ + uint32_t toslots; /* Slots in timeout */ int numrslots; /* Number of running slots */ int numtslots[SIIS_MAX_SLOTS]; /* Number of tagged slots */ int numhslots; /* Number of holden slots */ int readlog; /* Our READ LOG active */ + int fatalerr; /* Fatal error happend */ int recovery; /* Some slots are in error */ int lastslot; /* Last used slot */ - int taggedtarget; /* Last tagged target */ union ccb *frozen; /* Frozen command */ }; From owner-svn-src-stable-8@FreeBSD.ORG Tue Nov 17 21:00:03 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4272A106566B; Tue, 17 Nov 2009 21:00:03 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 117028FC13; Tue, 17 Nov 2009 21:00:03 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nAHL02ur038436; Tue, 17 Nov 2009 21:00:02 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nAHL02nY038435; Tue, 17 Nov 2009 21:00:02 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <200911172100.nAHL02nY038435@svn.freebsd.org> From: Alexander Motin Date: Tue, 17 Nov 2009 21:00:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r199441 - stable/8/sys/dev/siis X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Nov 2009 21:00:03 -0000 Author: mav Date: Tue Nov 17 21:00:02 2009 New Revision: 199441 URL: http://svn.freebsd.org/changeset/base/199441 Log: MFC r198896: Do not unarm callout on request completion and change slot selection algorithm as done in ahci(4). This saves some CPU time on high request rates. Modified: stable/8/sys/dev/siis/siis.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) Modified: stable/8/sys/dev/siis/siis.c ============================================================================== --- stable/8/sys/dev/siis/siis.c Tue Nov 17 20:59:00 2009 (r199440) +++ stable/8/sys/dev/siis/siis.c Tue Nov 17 21:00:02 2009 (r199441) @@ -641,6 +641,7 @@ siis_slotsfree(device_t dev) for (i = 0; i < SIIS_MAX_SLOTS; i++) { struct siis_slot *slot = &ch->slot[i]; + callout_drain(&slot->timeout); if (slot->dma.data_map) { bus_dmamap_destroy(ch->dma.data_tag, slot->dma.data_map); slot->dma.data_map = NULL; @@ -838,15 +839,11 @@ siis_begin_transaction(device_t dev, uni mtx_assert(&ch->mtx, MA_OWNED); /* Choose empty slot. */ tag = ch->lastslot; - do { - tag++; - if (tag >= SIIS_MAX_SLOTS) + while (ch->slot[tag].state != SIIS_SLOT_EMPTY) { + if (++tag >= SIIS_MAX_SLOTS) tag = 0; - if (ch->slot[tag].state == SIIS_SLOT_EMPTY) - break; - } while (tag != ch->lastslot); - if (ch->slot[tag].state != SIIS_SLOT_EMPTY) - device_printf(ch->dev, "ALL SLOTS BUSY!\n"); + KASSERT(tag != ch->lastslot, ("siis: ALL SLOTS BUSY!")); + } ch->lastslot = tag; /* Occupy chosen slot. */ slot = &ch->slot[tag]; @@ -999,6 +996,9 @@ siis_timeout(struct siis_slot *slot) struct siis_channel *ch = device_get_softc(dev); mtx_assert(&ch->mtx, MA_OWNED); + /* Check for stale timeout. */ + if (slot->state < SIIS_SLOT_RUNNING) + return; device_printf(dev, "Timeout on slot %d\n", slot->slot); device_printf(dev, "%s is %08x ss %08x rs %08x es %08x sts %08x serr %08x\n", __func__, ATA_INL(ch->r_mem, SIIS_P_IS), ATA_INL(ch->r_mem, SIIS_P_SS), ch->rslots, @@ -1024,8 +1024,6 @@ siis_end_transaction(struct siis_slot *s union ccb *ccb = slot->ccb; mtx_assert(&ch->mtx, MA_OWNED); - /* Cancel command execution timeout */ - callout_stop(&slot->timeout); bus_dmamap_sync(ch->dma.work_tag, ch->dma.work_map, BUS_DMASYNC_POSTWRITE); /* Read result registers to the result struct From owner-svn-src-stable-8@FreeBSD.ORG Tue Nov 17 21:08:13 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id F3BB41065695; Tue, 17 Nov 2009 21:08:12 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id DFB978FC15; Tue, 17 Nov 2009 21:08:12 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nAHL8CLA038948; Tue, 17 Nov 2009 21:08:12 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nAHL8Crv038941; Tue, 17 Nov 2009 21:08:12 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <200911172108.nAHL8Crv038941@svn.freebsd.org> From: Alexander Motin Date: Tue, 17 Nov 2009 21:08:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r199443 - in stable/8: . contrib/top lib/libusb sbin/camcontrol sys/cam/ata sys/sys tools/regression/lib/msun tools/regression/usr.bin/pkill tools/tools/ath/common tools/tools/termcap u... X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Nov 2009 21:08:13 -0000 Author: mav Date: Tue Nov 17 21:08:12 2009 New Revision: 199443 URL: http://svn.freebsd.org/changeset/base/199443 Log: MFC r198897: - Add support for sector size > 512 bytes and physical sector of several logical sectors, introduced by ATA-7 specification. - Remove some obsoleted code. Modified: stable/8/sbin/camcontrol/camcontrol.c stable/8/sys/cam/ata/ata_all.c stable/8/sys/cam/ata/ata_all.h stable/8/sys/cam/ata/ata_da.c stable/8/sys/cam/ata/ata_xpt.c stable/8/sys/sys/ata.h Directory Properties: stable/8/ (props changed) stable/8/ObsoleteFiles.inc (props changed) stable/8/UPDATING (props changed) stable/8/bin/csh/ (props changed) stable/8/bin/sh/ (props changed) stable/8/cddl/compat/opensolaris/ (props changed) stable/8/cddl/contrib/opensolaris/ (props changed) stable/8/cddl/lib/libnvpair/ (props changed) stable/8/contrib/bind9/ (props changed) stable/8/contrib/bzip2/ (props changed) stable/8/contrib/cpio/ (props changed) stable/8/contrib/csup/ (props changed) stable/8/contrib/ee/ (props changed) stable/8/contrib/file/ (props changed) stable/8/contrib/gdb/ (props changed) stable/8/contrib/gdtoa/ (props changed) stable/8/contrib/less/ (props changed) stable/8/contrib/libpcap/ (props changed) stable/8/contrib/ncurses/ (props changed) stable/8/contrib/netcat/ (props changed) stable/8/contrib/ntp/ (props changed) stable/8/contrib/openbsm/ (props changed) stable/8/contrib/openpam/ (props changed) stable/8/contrib/pf/ (props changed) stable/8/contrib/sendmail/ (props changed) stable/8/contrib/tcpdump/ (props changed) stable/8/contrib/tcsh/ (props changed) stable/8/contrib/top/ (props changed) stable/8/contrib/top/install-sh (props changed) stable/8/contrib/traceroute/ (props changed) stable/8/contrib/wpa/ (props changed) stable/8/crypto/openssh/ (props changed) stable/8/crypto/openssl/ (props changed) stable/8/etc/ (props changed) stable/8/games/fortune/ (props changed) stable/8/games/fortune/datfiles/ (props changed) stable/8/gnu/usr.bin/groff/ (props changed) stable/8/gnu/usr.bin/patch/ (props changed) stable/8/include/ (props changed) stable/8/kerberos5/lib/libgssapi_krb5/ (props changed) stable/8/kerberos5/lib/libgssapi_spnego/ (props changed) stable/8/lib/libarchive/ (props changed) stable/8/lib/libc/ (props changed) stable/8/lib/libc/stdtime/ (props changed) stable/8/lib/libdevinfo/ (props changed) stable/8/lib/libdisk/ (props changed) stable/8/lib/libkvm/ (props changed) stable/8/lib/libradius/ (props changed) stable/8/lib/libstand/ (props changed) stable/8/lib/libthr/ (props changed) stable/8/lib/libusb/ (props changed) stable/8/lib/libusb/usb.h (props changed) stable/8/lib/libutil/ (props changed) stable/8/libexec/rtld-elf/ (props changed) stable/8/release/ (props changed) stable/8/release/doc/ (props changed) stable/8/release/doc/en_US.ISO8859-1/hardware/ (props changed) stable/8/sbin/ (props changed) stable/8/sbin/bsdlabel/ (props changed) stable/8/sbin/camcontrol/ (props changed) stable/8/sbin/ddb/ (props changed) stable/8/sbin/dhclient/ (props changed) stable/8/sbin/geom/ (props changed) stable/8/sbin/ifconfig/ (props changed) stable/8/sbin/ipfw/ (props changed) stable/8/sbin/mksnap_ffs/ (props changed) stable/8/sbin/mount/ (props changed) stable/8/sbin/mount_nfs/ (props changed) stable/8/sbin/umount/ (props changed) stable/8/secure/usr.bin/bdes/ (props changed) stable/8/share/man/man4/ (props changed) stable/8/share/man/man5/ (props changed) stable/8/share/man/man7/ (props changed) stable/8/share/man/man9/ (props changed) stable/8/share/misc/ (props changed) stable/8/share/timedef/ (props changed) stable/8/share/zoneinfo/ (props changed) stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) stable/8/tools/kerneldoc/subsys/ (props changed) stable/8/tools/regression/bin/sh/ (props changed) stable/8/tools/regression/lib/msun/test-conj.t (props changed) stable/8/tools/regression/poll/ (props changed) stable/8/tools/regression/priv/ (props changed) stable/8/tools/regression/usr.bin/pkill/pgrep-_g.t (props changed) stable/8/tools/regression/usr.bin/pkill/pgrep-_s.t (props changed) stable/8/tools/regression/usr.bin/pkill/pkill-_g.t (props changed) stable/8/tools/tools/ath/common/dumpregs.h (props changed) stable/8/tools/tools/ath/common/dumpregs_5210.c (props changed) stable/8/tools/tools/ath/common/dumpregs_5211.c (props changed) stable/8/tools/tools/ath/common/dumpregs_5212.c (props changed) stable/8/tools/tools/ath/common/dumpregs_5416.c (props changed) stable/8/tools/tools/termcap/termcap.pl (props changed) stable/8/tools/tools/vimage/ (props changed) stable/8/usr.bin/calendar/calendars/calendar.freebsd (props changed) stable/8/usr.bin/csup/ (props changed) stable/8/usr.bin/find/ (props changed) stable/8/usr.bin/fstat/ (props changed) stable/8/usr.bin/gcore/ (props changed) stable/8/usr.bin/locale/ (props changed) stable/8/usr.bin/look/ (props changed) stable/8/usr.bin/netstat/ (props changed) stable/8/usr.bin/procstat/ (props changed) stable/8/usr.bin/systat/ (props changed) stable/8/usr.bin/vmstat/ (props changed) stable/8/usr.bin/w/ (props changed) stable/8/usr.bin/whois/ (props changed) stable/8/usr.sbin/ (props changed) stable/8/usr.sbin/acpi/ (props changed) stable/8/usr.sbin/arp/ (props changed) stable/8/usr.sbin/cdcontrol/ (props changed) stable/8/usr.sbin/crashinfo/ (props changed) stable/8/usr.sbin/dumpcis/cardinfo.h (props changed) stable/8/usr.sbin/dumpcis/cis.h (props changed) stable/8/usr.sbin/freebsd-update/ (props changed) stable/8/usr.sbin/iostat/ (props changed) stable/8/usr.sbin/jail/ (props changed) stable/8/usr.sbin/jls/ (props changed) stable/8/usr.sbin/lpr/ (props changed) stable/8/usr.sbin/makefs/ffs/ffs_bswap.c (props changed) stable/8/usr.sbin/makefs/ffs/ffs_subr.c (props changed) stable/8/usr.sbin/makefs/ffs/ufs_bswap.h (props changed) stable/8/usr.sbin/makefs/getid.c (props changed) stable/8/usr.sbin/mfiutil/mfiutil.8 (props changed) stable/8/usr.sbin/ndp/ (props changed) stable/8/usr.sbin/ntp/ (props changed) stable/8/usr.sbin/ppp/ (props changed) stable/8/usr.sbin/pstat/ (props changed) stable/8/usr.sbin/sysinstall/ (props changed) stable/8/usr.sbin/traceroute6/ (props changed) stable/8/usr.sbin/usbconfig/ (props changed) stable/8/usr.sbin/wpa/ (props changed) stable/8/usr.sbin/zic/ (props changed) Modified: stable/8/sbin/camcontrol/camcontrol.c ============================================================================== --- stable/8/sbin/camcontrol/camcontrol.c Tue Nov 17 21:08:10 2009 (r199442) +++ stable/8/sbin/camcontrol/camcontrol.c Tue Nov 17 21:08:12 2009 (r199443) @@ -1061,6 +1061,10 @@ atacapprint(struct ata_params *parm) printf("cylinders %d\n", parm->cylinders); printf("heads %d\n", parm->heads); printf("sectors/track %d\n", parm->sectors); + printf("sector size logical %u, physical %lu, offset %lu\n", + ata_logical_sector_size(parm), + (unsigned long)ata_physical_sector_size(parm), + (unsigned long)ata_logical_sector_offset(parm)); if (parm->config == ATA_PROTO_CFA || (parm->support.command2 & ATA_SUPPORT_CFA)) Modified: stable/8/sys/cam/ata/ata_all.c ============================================================================== --- stable/8/sys/cam/ata/ata_all.c Tue Nov 17 21:08:10 2009 (r199442) +++ stable/8/sys/cam/ata/ata_all.c Tue Nov 17 21:08:12 2009 (r199443) @@ -271,6 +271,38 @@ ata_print_ident(struct ata_params *ident printf(" device\n"); } +uint32_t +ata_logical_sector_size(struct ata_params *ident_data) +{ + if ((ident_data->pss & 0xc000) == 0x4000 && + (ident_data->pss & ATA_PSS_LSSABOVE512)) { + return ((u_int32_t)ident_data->lss_1 | + ((u_int32_t)ident_data->lss_2 << 16)); + } + return (512); +} + +uint64_t +ata_physical_sector_size(struct ata_params *ident_data) +{ + if ((ident_data->pss & 0xc000) == 0x4000 && + (ident_data->pss & ATA_PSS_MULTLS)) { + return ((uint64_t)ata_logical_sector_size(ident_data) * + (1 << (ident_data->pss & ATA_PSS_LSPPS))); + } + return (512); +} + +uint64_t +ata_logical_sector_offset(struct ata_params *ident_data) +{ + if ((ident_data->lsalign & 0xc000) == 0x4000) { + return ((uint64_t)ata_logical_sector_size(ident_data) * + (ident_data->lsalign & 0x3fff)); + } + return (0); +} + void ata_28bit_cmd(struct ccb_ataio *ataio, uint8_t cmd, uint8_t features, uint32_t lba, uint8_t sector_count) Modified: stable/8/sys/cam/ata/ata_all.h ============================================================================== --- stable/8/sys/cam/ata/ata_all.h Tue Nov 17 21:08:10 2009 (r199442) +++ stable/8/sys/cam/ata/ata_all.h Tue Nov 17 21:08:12 2009 (r199443) @@ -91,6 +91,10 @@ int ata_res_sbuf(struct ccb_ataio *ataio void ata_print_ident(struct ata_params *ident_data); +uint32_t ata_logical_sector_size(struct ata_params *ident_data); +uint64_t ata_physical_sector_size(struct ata_params *ident_data); +uint64_t ata_logical_sector_offset(struct ata_params *ident_data); + void ata_28bit_cmd(struct ccb_ataio *ataio, uint8_t cmd, uint8_t features, uint32_t lba, uint8_t sector_count); void ata_48bit_cmd(struct ccb_ataio *ataio, uint8_t cmd, uint16_t features, Modified: stable/8/sys/cam/ata/ata_da.c ============================================================================== --- stable/8/sys/cam/ata/ata_da.c Tue Nov 17 21:08:10 2009 (r199442) +++ stable/8/sys/cam/ata/ata_da.c Tue Nov 17 21:08:12 2009 (r199443) @@ -95,16 +95,14 @@ typedef enum { struct disk_params { u_int8_t heads; - u_int32_t cylinders; u_int8_t secs_per_track; - u_int32_t secsize; /* Number of bytes/sector */ - u_int64_t sectors; /* total number sectors */ + u_int32_t cylinders; + u_int32_t secsize; /* Number of bytes/logical sector */ + u_int64_t sectors; /* Total number sectors */ }; struct ada_softc { struct bio_queue_head bio_queue; - SLIST_ENTRY(ada_softc) links; - LIST_HEAD(, ccb_hdr) pending_ccbs; ada_state state; ada_flags flags; ada_quirks quirks; @@ -142,7 +140,7 @@ static void adadone(struct cam_periph * union ccb *done_ccb); static int adaerror(union ccb *ccb, u_int32_t cam_flags, u_int32_t sense_flags); -static void adasetgeom(struct cam_periph *periph, +static void adagetparams(struct cam_periph *periph, struct ccb_getdev *cgd); static timeout_t adasendorderedtag; static void adashutdown(void *arg, int howto); @@ -613,7 +611,6 @@ adaregister(struct cam_periph *periph, v return(CAM_REQ_CMP_ERR); } - LIST_INIT(&softc->pending_ccbs); bioq_init(&softc->bio_queue); if (cgd->ident_data.capabilities1 & ATA_SUPPORT_DMA) @@ -658,6 +655,7 @@ adaregister(struct cam_periph *periph, v * Register this media as a disk */ mtx_unlock(periph->sim->mtx); + adagetparams(periph, cgd); softc->disk = disk_alloc(); softc->disk->d_open = adaopen; softc->disk->d_close = adaclose; @@ -671,9 +669,9 @@ adaregister(struct cam_periph *periph, v else if (maxio > MAXPHYS) maxio = MAXPHYS; /* for safety */ if (cgd->ident_data.support.command2 & ATA_SUPPORT_ADDRESS48) - maxio = min(maxio, 65536 * 512); + maxio = min(maxio, 65536 * softc->params.secsize); else /* 28bit ATA command limit */ - maxio = min(maxio, 256 * 512); + maxio = min(maxio, 256 * softc->params.secsize); softc->disk->d_maxsize = maxio; softc->disk->d_unit = periph->unit_number; softc->disk->d_flags = 0; @@ -682,9 +680,12 @@ adaregister(struct cam_periph *periph, v strlcpy(softc->disk->d_ident, cgd->serial_num, MIN(sizeof(softc->disk->d_ident), cgd->serial_num_len + 1)); - adasetgeom(periph, cgd); softc->disk->d_sectorsize = softc->params.secsize; - softc->disk->d_mediasize = softc->params.secsize * (off_t)softc->params.sectors; + softc->disk->d_mediasize = (off_t)softc->params.sectors * + softc->params.secsize; + softc->disk->d_stripesize = ata_physical_sector_size(&cgd->ident_data); + softc->disk->d_stripeoffset = softc->disk->d_stripesize - + ata_logical_sector_offset(&cgd->ident_data); /* 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; @@ -852,19 +853,10 @@ adastart(struct cam_periph *periph, unio break; } start_ccb->ccb_h.ccb_state = ADA_CCB_BUFFER_IO; - - /* - * Block out any asyncronous callbacks - * while we touch the pending ccb list. - */ - LIST_INSERT_HEAD(&softc->pending_ccbs, - &start_ccb->ccb_h, periph_links.le); - softc->outstanding_cmds++; - start_ccb->ccb_h.ccb_bp = bp; - bp = bioq_first(&softc->bio_queue); - + softc->outstanding_cmds++; xpt_action(start_ccb); + bp = bioq_first(&softc->bio_queue); } if (bp != NULL) { @@ -941,12 +933,6 @@ adadone(struct cam_periph *periph, union if (ataio->resid > 0) bp->bio_flags |= BIO_ERROR; } - - /* - * Block out any asyncronous callbacks - * while we touch the pending ccb list. - */ - LIST_REMOVE(&done_ccb->ccb_h, periph_links.le); softc->outstanding_cmds--; if (softc->outstanding_cmds == 0) softc->flags |= ADA_FLAG_WENT_IDLE; @@ -983,14 +969,14 @@ adaerror(union ccb *ccb, u_int32_t cam_f } static void -adasetgeom(struct cam_periph *periph, struct ccb_getdev *cgd) +adagetparams(struct cam_periph *periph, struct ccb_getdev *cgd) { struct ada_softc *softc = (struct ada_softc *)periph->softc; struct disk_params *dp = &softc->params; u_int64_t lbasize48; u_int32_t lbasize; - dp->secsize = 512; + dp->secsize = ata_logical_sector_size(&cgd->ident_data); if ((cgd->ident_data.atavalid & ATA_FLAG_54_58) && cgd->ident_data.current_heads && cgd->ident_data.current_sectors) { dp->heads = cgd->ident_data.current_heads; Modified: stable/8/sys/cam/ata/ata_xpt.c ============================================================================== --- stable/8/sys/cam/ata/ata_xpt.c Tue Nov 17 21:08:10 2009 (r199442) +++ stable/8/sys/cam/ata/ata_xpt.c Tue Nov 17 21:08:12 2009 (r199443) @@ -363,10 +363,12 @@ probestart(struct cam_periph *periph, un cts.ccb_h.func_code = XPT_SET_TRAN_SETTINGS; cts.type = CTS_TYPE_CURRENT_SETTINGS; if (path->device->transport == XPORT_ATA) { - cts.xport_specific.ata.bytecount = sectors * 512; + cts.xport_specific.ata.bytecount = sectors * + ata_logical_sector_size(ident_buf); cts.xport_specific.ata.valid = CTS_ATA_VALID_BYTECOUNT; } else { - cts.xport_specific.sata.bytecount = sectors * 512; + cts.xport_specific.sata.bytecount = sectors * + ata_logical_sector_size(ident_buf); cts.xport_specific.sata.valid = CTS_SATA_VALID_BYTECOUNT; } xpt_action((union ccb *)&cts); Modified: stable/8/sys/sys/ata.h ============================================================================== --- stable/8/sys/sys/ata.h Tue Nov 17 21:08:10 2009 (r199442) +++ stable/8/sys/sys/ata.h Tue Nov 17 21:08:12 2009 (r199443) @@ -234,7 +234,7 @@ struct ata_params { /*176*/ u_int8_t media_serial[60]; /*206*/ u_int16_t sct; u_int16_t reserved206[2]; -/*209*/ u_int16_t lbalign; +/*209*/ u_int16_t lsalign; /*210*/ u_int16_t wrv_sectors_m3_1; u_int16_t wrv_sectors_m3_2; /*212*/ u_int16_t wrv_sectors_m2_1; From owner-svn-src-stable-8@FreeBSD.ORG Tue Nov 17 21:09:47 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id BB5321065676; Tue, 17 Nov 2009 21:09:47 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id AA01F8FC13; Tue, 17 Nov 2009 21:09:47 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nAHL9l1d039041; Tue, 17 Nov 2009 21:09:47 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nAHL9lO8039036; Tue, 17 Nov 2009 21:09:47 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <200911172109.nAHL9lO8039036@svn.freebsd.org> From: Alexander Motin Date: Tue, 17 Nov 2009 21:09:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r199444 - in stable/8/sys/cam: . ata scsi X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Nov 2009 21:09:47 -0000 Author: mav Date: Tue Nov 17 21:09:47 2009 New Revision: 199444 URL: http://svn.freebsd.org/changeset/base/199444 Log: MFC r198899: - Remove CAM_PERIPH_POLLED flag. It is broken by design. Polling can't be periph flag. May be SIM, may be CCB, but now it works fine just without it. - Remove check unused for at least five years. If we will ever have non-BIO devices in CAM, this check is smallest of what we will need. - If several controllers complete requests same time, call swi_sched() only once. Modified: stable/8/sys/cam/ata/ata_da.c stable/8/sys/cam/cam_periph.h stable/8/sys/cam/cam_xpt.c stable/8/sys/cam/scsi/scsi_da.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) Modified: stable/8/sys/cam/ata/ata_da.c ============================================================================== --- stable/8/sys/cam/ata/ata_da.c Tue Nov 17 21:08:12 2009 (r199443) +++ stable/8/sys/cam/ata/ata_da.c Tue Nov 17 21:09:47 2009 (r199444) @@ -371,7 +371,6 @@ adadump(void *arg, void *virtual, vm_off } if (length > 0) { - periph->flags |= CAM_PERIPH_POLLED; xpt_setup_ccb(&ccb.ccb_h, periph->path, CAM_PRIORITY_NORMAL); ccb.ccb_h.ccb_state = ADA_CCB_DUMP; cam_fill_ataio(&ccb.ataio, @@ -431,7 +430,6 @@ adadump(void *arg, void *virtual, vm_off /*timeout*/0, /*getcount_only*/0); } - periph->flags &= ~CAM_PERIPH_POLLED; cam_periph_unlock(periph); return (0); } Modified: stable/8/sys/cam/cam_periph.h ============================================================================== --- stable/8/sys/cam/cam_periph.h Tue Nov 17 21:08:12 2009 (r199443) +++ stable/8/sys/cam/cam_periph.h Tue Nov 17 21:09:47 2009 (r199444) @@ -117,7 +117,6 @@ struct cam_periph { #define CAM_PERIPH_INVALID 0x08 #define CAM_PERIPH_NEW_DEV_FOUND 0x10 #define CAM_PERIPH_RECOVERY_INPROG 0x20 -#define CAM_PERIPH_POLLED 0x40 u_int32_t immediate_priority; u_int32_t refcount; SLIST_HEAD(, ccb_hdr) ccb_list; /* For "immediate" requests */ Modified: stable/8/sys/cam/cam_xpt.c ============================================================================== --- stable/8/sys/cam/cam_xpt.c Tue Nov 17 21:08:12 2009 (r199443) +++ stable/8/sys/cam/cam_xpt.c Tue Nov 17 21:09:47 2009 (r199444) @@ -4238,6 +4238,7 @@ void xpt_done(union ccb *done_ccb) { struct cam_sim *sim; + int first; CAM_DEBUG(done_ccb->ccb_h.path, CAM_DEBUG_TRACE, ("xpt_done\n")); if ((done_ccb->ccb_h.func_code & XPT_FC_QUEUED) != 0) { @@ -4246,25 +4247,17 @@ xpt_done(union ccb *done_ccb) * any of the "non-immediate" type of ccbs. */ sim = done_ccb->ccb_h.path->bus->sim; - switch (done_ccb->ccb_h.path->periph->type) { - case CAM_PERIPH_BIO: - TAILQ_INSERT_TAIL(&sim->sim_doneq, &done_ccb->ccb_h, - sim_links.tqe); - done_ccb->ccb_h.pinfo.index = CAM_DONEQ_INDEX; - if ((sim->flags & CAM_SIM_ON_DONEQ) == 0) { - mtx_lock(&cam_simq_lock); - TAILQ_INSERT_TAIL(&cam_simq, sim, - links); - mtx_unlock(&cam_simq_lock); - sim->flags |= CAM_SIM_ON_DONEQ; - if ((done_ccb->ccb_h.path->periph->flags & - CAM_PERIPH_POLLED) == 0) - swi_sched(cambio_ih, 0); - } - break; - default: - panic("unknown periph type %d", - done_ccb->ccb_h.path->periph->type); + TAILQ_INSERT_TAIL(&sim->sim_doneq, &done_ccb->ccb_h, + sim_links.tqe); + done_ccb->ccb_h.pinfo.index = CAM_DONEQ_INDEX; + if ((sim->flags & CAM_SIM_ON_DONEQ) == 0) { + mtx_lock(&cam_simq_lock); + first = TAILQ_EMPTY(&cam_simq); + TAILQ_INSERT_TAIL(&cam_simq, sim, links); + mtx_unlock(&cam_simq_lock); + sim->flags |= CAM_SIM_ON_DONEQ; + if (first) + swi_sched(cambio_ih, 0); } } } Modified: stable/8/sys/cam/scsi/scsi_da.c ============================================================================== --- stable/8/sys/cam/scsi/scsi_da.c Tue Nov 17 21:08:12 2009 (r199443) +++ stable/8/sys/cam/scsi/scsi_da.c Tue Nov 17 21:09:47 2009 (r199444) @@ -859,7 +859,6 @@ dadump(void *arg, void *virtual, vm_offs } if (length > 0) { - periph->flags |= CAM_PERIPH_POLLED; xpt_setup_ccb(&csio.ccb_h, periph->path, CAM_PRIORITY_NORMAL); csio.ccb_h.ccb_state = DA_CCB_DUMP; scsi_read_write(&csio, @@ -885,7 +884,6 @@ dadump(void *arg, void *virtual, vm_offs else printf("status == 0x%x, scsi status == 0x%x\n", csio.ccb_h.status, csio.scsi_status); - periph->flags |= CAM_PERIPH_POLLED; return(EIO); } cam_periph_unlock(periph); @@ -929,7 +927,6 @@ dadump(void *arg, void *virtual, vm_offs } } } - periph->flags &= ~CAM_PERIPH_POLLED; cam_periph_unlock(periph); return (0); } From owner-svn-src-stable-8@FreeBSD.ORG Tue Nov 17 21:14:02 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id BBCC31065693; Tue, 17 Nov 2009 21:14:02 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 9190F8FC12; Tue, 17 Nov 2009 21:14:02 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nAHLE2oH039329; Tue, 17 Nov 2009 21:14:02 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nAHLE2hg039326; Tue, 17 Nov 2009 21:14:02 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <200911172114.nAHLE2hg039326@svn.freebsd.org> From: Alexander Motin Date: Tue, 17 Nov 2009 21:14:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r199445 - stable/8/sys/cam/ata X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Nov 2009 21:14:02 -0000 Author: mav Date: Tue Nov 17 21:14:02 2009 New Revision: 199445 URL: http://svn.freebsd.org/changeset/base/199445 Log: MFC r198904, r198905: PMP commands use short format. PMP write doesn't return result. Modified: stable/8/sys/cam/ata/ata_all.c stable/8/sys/cam/ata/ata_all.h Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) Modified: stable/8/sys/cam/ata/ata_all.c ============================================================================== --- stable/8/sys/cam/ata/ata_all.c Tue Nov 17 21:09:47 2009 (r199444) +++ stable/8/sys/cam/ata/ata_all.c Tue Nov 17 21:14:02 2009 (r199445) @@ -368,30 +368,24 @@ void ata_pm_read_cmd(struct ccb_ataio *ataio, int reg, int port) { bzero(&ataio->cmd, sizeof(ataio->cmd)); - ataio->cmd.flags = CAM_ATAIO_48BIT | CAM_ATAIO_NEEDRESULT; + ataio->cmd.flags = CAM_ATAIO_NEEDRESULT; ataio->cmd.command = ATA_READ_PM; ataio->cmd.features = reg; - ataio->cmd.features_exp = reg >> 8; ataio->cmd.device = port & 0x0f; } void -ata_pm_write_cmd(struct ccb_ataio *ataio, int reg, int port, uint64_t val) +ata_pm_write_cmd(struct ccb_ataio *ataio, int reg, int port, uint32_t val) { bzero(&ataio->cmd, sizeof(ataio->cmd)); - ataio->cmd.flags = CAM_ATAIO_48BIT | CAM_ATAIO_NEEDRESULT; + ataio->cmd.flags = 0; ataio->cmd.command = ATA_WRITE_PM; ataio->cmd.features = reg; + ataio->cmd.sector_count = val; ataio->cmd.lba_low = val >> 8; ataio->cmd.lba_mid = val >> 16; ataio->cmd.lba_high = val >> 24; ataio->cmd.device = port & 0x0f; - ataio->cmd.lba_low_exp = val >> 40; - ataio->cmd.lba_mid_exp = val >> 48; - ataio->cmd.lba_high_exp = val >> 56; - ataio->cmd.features_exp = reg >> 8; - ataio->cmd.sector_count = val; - ataio->cmd.sector_count_exp = val >> 32; } void Modified: stable/8/sys/cam/ata/ata_all.h ============================================================================== --- stable/8/sys/cam/ata/ata_all.h Tue Nov 17 21:09:47 2009 (r199444) +++ stable/8/sys/cam/ata/ata_all.h Tue Nov 17 21:14:02 2009 (r199445) @@ -103,7 +103,7 @@ void ata_ncq_cmd(struct ccb_ataio *ataio uint64_t lba, uint16_t sector_count); void ata_reset_cmd(struct ccb_ataio *ataio); void ata_pm_read_cmd(struct ccb_ataio *ataio, int reg, int port); -void ata_pm_write_cmd(struct ccb_ataio *ataio, int reg, int port, uint64_t val); +void ata_pm_write_cmd(struct ccb_ataio *ataio, int reg, int port, uint32_t val); void ata_bswap(int8_t *buf, int len); void ata_btrim(int8_t *buf, int len); From owner-svn-src-stable-8@FreeBSD.ORG Tue Nov 17 21:14:59 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 10F141065694; Tue, 17 Nov 2009 21:14:59 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 006518FC2E; Tue, 17 Nov 2009 21:14:59 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nAHLEwI1039411; Tue, 17 Nov 2009 21:14:58 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nAHLEwkC039409; Tue, 17 Nov 2009 21:14:58 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <200911172114.nAHLEwkC039409@svn.freebsd.org> From: Alexander Motin Date: Tue, 17 Nov 2009 21:14:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r199446 - stable/8/sys/cam X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Nov 2009 21:14:59 -0000 Author: mav Date: Tue Nov 17 21:14:58 2009 New Revision: 199446 URL: http://svn.freebsd.org/changeset/base/199446 Log: MFC r198947: Implement device stats accounting for ATA commands. Modified: stable/8/sys/cam/cam_periph.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) Modified: stable/8/sys/cam/cam_periph.c ============================================================================== --- stable/8/sys/cam/cam_periph.c Tue Nov 17 21:14:02 2009 (r199445) +++ stable/8/sys/cam/cam_periph.c Tue Nov 17 21:14:58 2009 (r199446) @@ -898,7 +898,8 @@ cam_periph_runccb(union ccb *ccb, * If the user has supplied a stats structure, and if we understand * this particular type of ccb, record the transaction start. */ - if ((ds != NULL) && (ccb->ccb_h.func_code == XPT_SCSI_IO)) + if ((ds != NULL) && (ccb->ccb_h.func_code == XPT_SCSI_IO || + ccb->ccb_h.func_code == XPT_ATA_IO)) devstat_start_transaction(ds, NULL); xpt_action(ccb); @@ -921,15 +922,27 @@ cam_periph_runccb(union ccb *ccb, /* timeout */0, /* getcount_only */ FALSE); - if ((ds != NULL) && (ccb->ccb_h.func_code == XPT_SCSI_IO)) - devstat_end_transaction(ds, + if (ds != NULL) { + if (ccb->ccb_h.func_code == XPT_SCSI_IO) { + devstat_end_transaction(ds, ccb->csio.dxfer_len, - ccb->csio.tag_action & 0xf, + ccb->csio.tag_action & 0x3, ((ccb->ccb_h.flags & CAM_DIR_MASK) == CAM_DIR_NONE) ? DEVSTAT_NO_DATA : (ccb->ccb_h.flags & CAM_DIR_OUT) ? DEVSTAT_WRITE : DEVSTAT_READ, NULL, NULL); + } else if (ccb->ccb_h.func_code == XPT_ATA_IO) { + devstat_end_transaction(ds, + ccb->ataio.dxfer_len, + ccb->ataio.tag_action & 0x3, + ((ccb->ccb_h.flags & CAM_DIR_MASK) == + CAM_DIR_NONE) ? DEVSTAT_NO_DATA : + (ccb->ccb_h.flags & CAM_DIR_OUT) ? + DEVSTAT_WRITE : + DEVSTAT_READ, NULL, NULL); + } + } return(error); } From owner-svn-src-stable-8@FreeBSD.ORG Tue Nov 17 21:17:22 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A66DE1065676; Tue, 17 Nov 2009 21:17:22 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 950338FC0A; Tue, 17 Nov 2009 21:17:22 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nAHLHMEq039555; Tue, 17 Nov 2009 21:17:22 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nAHLHMfb039552; Tue, 17 Nov 2009 21:17:22 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <200911172117.nAHLHMfb039552@svn.freebsd.org> From: Alexander Motin Date: Tue, 17 Nov 2009 21:17:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r199447 - stable/8/sbin/camcontrol X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Nov 2009 21:17:22 -0000 Author: mav Date: Tue Nov 17 21:17:22 2009 New Revision: 199447 URL: http://svn.freebsd.org/changeset/base/199447 Log: MFC r199079, r199101: Add support for ATA Power Management. Modified: stable/8/sbin/camcontrol/camcontrol.8 stable/8/sbin/camcontrol/camcontrol.c Directory Properties: stable/8/sbin/camcontrol/ (props changed) Modified: stable/8/sbin/camcontrol/camcontrol.8 ============================================================================== --- stable/8/sbin/camcontrol/camcontrol.8 Tue Nov 17 21:14:58 2009 (r199446) +++ stable/8/sbin/camcontrol/camcontrol.8 Tue Nov 17 21:17:22 2009 (r199447) @@ -27,7 +27,7 @@ .\" .\" $FreeBSD$ .\" -.Dd September 4, 2009 +.Dd November 9, 2009 .Dt CAMCONTROL 8 .Os .Sh NAME @@ -165,6 +165,20 @@ .Op Fl w .Op Fl y .Nm +.Ic idle +.Op device id +.Op generic args +.Op Fl t Ar time +.Nm +.Ic standby +.Op device id +.Op generic args +.Op Fl t Ar time +.Nm +.Ic sleep +.Op device id +.Op generic args +.Nm .Ic help .Sh DESCRIPTION The @@ -821,6 +835,15 @@ The user will not be asked about the timeout if a timeout is specified on the command line. .El +.It Ic idle +Put ATA device into IDLE state. Optional parameter specifies automatic +idle timer value in seconds. +.It Ic standby +Put ATA device into STANDBY state. Optional parameter specifies automatic +standby timer value in seconds. +.It Ic sleep +Put ATA device into SLEEP state. Note that the only way get device out of +this state may be reset. .It Ic help Print out verbose usage information. .El Modified: stable/8/sbin/camcontrol/camcontrol.c ============================================================================== --- stable/8/sbin/camcontrol/camcontrol.c Tue Nov 17 21:14:58 2009 (r199446) +++ stable/8/sbin/camcontrol/camcontrol.c Tue Nov 17 21:17:22 2009 (r199447) @@ -74,7 +74,10 @@ typedef enum { CAM_CMD_DETACH = 0x00000010, CAM_CMD_REPORTLUNS = 0x00000011, CAM_CMD_READCAP = 0x00000012, - CAM_CMD_IDENTIFY = 0x00000013 + CAM_CMD_IDENTIFY = 0x00000013, + CAM_CMD_IDLE = 0x00000014, + CAM_CMD_STANDBY = 0x00000015, + CAM_CMD_SLEEP = 0x00000016 } cam_cmdmask; typedef enum { @@ -154,6 +157,9 @@ struct camcontrol_opts option_table[] = {"rate", CAM_CMD_RATE, CAM_ARG_NONE, negotiate_opts}, {"debug", CAM_CMD_DEBUG, CAM_ARG_NONE, "IPTSXc"}, {"format", CAM_CMD_FORMAT, CAM_ARG_NONE, "qrwy"}, + {"idle", CAM_CMD_IDLE, CAM_ARG_NONE, "t:"}, + {"standby", CAM_CMD_STANDBY, CAM_ARG_NONE, "t:"}, + {"sleep", CAM_CMD_SLEEP, CAM_ARG_NONE, ""}, #endif /* MINIMALISTIC */ {"help", CAM_CMD_USAGE, CAM_ARG_NONE, NULL}, {"-?", CAM_CMD_USAGE, CAM_ARG_NONE, NULL}, @@ -217,6 +223,8 @@ static int scsireportluns(struct cam_dev char *combinedopt, int retry_count, int timeout); static int scsireadcapacity(struct cam_device *device, int argc, char **argv, char *combinedopt, int retry_count, int timeout); +static int atapm(struct cam_device *device, int argc, char **argv, + char *combinedopt, int retry_count, int timeout); #endif /* MINIMALISTIC */ camcontrol_optret @@ -4128,6 +4136,91 @@ bailout: return (retval); } +static int +atapm(struct cam_device *device, int argc, char **argv, + char *combinedopt, int retry_count, int timeout) +{ + union ccb *ccb; + int retval = 0; + int t = -1; + int c; + u_char cmd, sc; + + ccb = cam_getccb(device); + + if (ccb == NULL) { + warnx("%s: error allocating ccb", __func__); + return (1); + } + + while ((c = getopt(argc, argv, combinedopt)) != -1) { + switch (c) { + case 't': + t = atoi(optarg); + break; + default: + break; + } + } + if (strcmp(argv[1], "idle") == 0) { + if (t == -1) + cmd = ATA_IDLE_IMMEDIATE; + else + cmd = ATA_IDLE_CMD; + } else if (strcmp(argv[1], "standby") == 0) { + if (t == -1) + cmd = ATA_STANDBY_IMMEDIATE; + else + cmd = ATA_STANDBY_CMD; + } else { + cmd = ATA_SLEEP; + t = -1; + } + if (t < 0) + sc = 0; + else if (t <= (240 * 5)) + sc = t / 5; + else if (t <= (11 * 30 * 60)) + sc = t / (30 * 60) + 241; + else + sc = 253; + cam_fill_ataio(&ccb->ataio, + retry_count, + NULL, + /*flags*/CAM_DIR_NONE, + MSG_SIMPLE_Q_TAG, + /*data_ptr*/NULL, + /*dxfer_len*/0, + timeout ? timeout : 30 * 1000); + ata_28bit_cmd(&ccb->ataio, cmd, 0, 0, sc); + + /* Disable freezing the device queue */ + ccb->ccb_h.flags |= CAM_DEV_QFRZDIS; + + if (arglist & CAM_ARG_ERR_RECOVER) + ccb->ccb_h.flags |= CAM_PASS_ERR_RECOVER; + + if (cam_send_ccb(device, ccb) < 0) { + warn("error sending command"); + + if (arglist & CAM_ARG_VERBOSE) + cam_error_print(device, ccb, CAM_ESF_ALL, + CAM_EPF_ALL, stderr); + + retval = 1; + goto bailout; + } + + if ((ccb->ccb_h.status & CAM_STATUS_MASK) != CAM_REQ_CMP) { + cam_error_print(device, ccb, CAM_ESF_ALL, CAM_EPF_ALL, stderr); + retval = 1; + goto bailout; + } +bailout: + cam_freeccb(ccb); + return (retval); +} + #endif /* MINIMALISTIC */ void @@ -4166,6 +4259,9 @@ usage(int verbose) " [-R syncrate][-v][-T ]\n" " [-U][-W bus_width]\n" " camcontrol format [dev_id][generic args][-q][-r][-w][-y]\n" +" camcontrol idle [dev_id][generic args][-t time]\n" +" camcontrol standby [dev_id][generic args][-t time]\n" +" camcontrol sleep [dev_id][generic args]\n" #endif /* MINIMALISTIC */ " camcontrol help\n"); if (!verbose) @@ -4193,6 +4289,9 @@ usage(int verbose) "tags report or set the number of transaction slots for a device\n" "negotiate report or set device negotiation parameters\n" "format send the SCSI FORMAT UNIT command to the named device\n" +"idle send the ATA IDLE command to the named device\n" +"standby send the ATA STANDBY command to the named device\n" +"sleep send the ATA SLEEP command to the named device\n" "help this message\n" "Device Identifiers:\n" "bus:target specify the bus and target, lun defaults to 0\n" @@ -4259,7 +4358,9 @@ usage(int verbose) "-q be quiet, don't print status messages\n" "-r run in report only mode\n" "-w don't send immediate format command\n" -"-y don't ask any questions\n"); +"-y don't ask any questions\n" +"idle/standby arguments:\n" +"-t number of seconds before respective state.\n"); #endif /* MINIMALISTIC */ } @@ -4555,6 +4656,13 @@ main(int argc, char **argv) combinedopt, retry_count, timeout); break; + case CAM_CMD_IDLE: + case CAM_CMD_STANDBY: + case CAM_CMD_SLEEP: + error = atapm(cam_dev, argc, argv, + combinedopt, retry_count, + timeout); + break; #endif /* MINIMALISTIC */ case CAM_CMD_USAGE: usage(1); From owner-svn-src-stable-8@FreeBSD.ORG Tue Nov 17 21:20:19 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D14DE1065679; Tue, 17 Nov 2009 21:20:19 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id B6C858FC1E; Tue, 17 Nov 2009 21:20:19 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nAHLKJ3g039730; Tue, 17 Nov 2009 21:20:19 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nAHLKJ0Q039727; Tue, 17 Nov 2009 21:20:19 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <200911172120.nAHLKJ0Q039727@svn.freebsd.org> From: Alexander Motin Date: Tue, 17 Nov 2009 21:20:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r199448 - stable/8/sys/dev/siis X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Nov 2009 21:20:20 -0000 Author: mav Date: Tue Nov 17 21:20:19 2009 New Revision: 199448 URL: http://svn.freebsd.org/changeset/base/199448 Log: MFC r199132: Organize device IDs and add some more of them. Modified: stable/8/sys/dev/siis/siis.c stable/8/sys/dev/siis/siis.h Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) Modified: stable/8/sys/dev/siis/siis.c ============================================================================== --- stable/8/sys/dev/siis/siis.c Tue Nov 17 21:17:22 2009 (r199447) +++ stable/8/sys/dev/siis/siis.c Tue Nov 17 21:20:19 2009 (r199448) @@ -89,24 +89,37 @@ static void siispoll(struct cam_sim *sim MALLOC_DEFINE(M_SIIS, "SIIS driver", "SIIS driver data buffers"); +static struct { + uint32_t id; + const char *name; + int ports; +} siis_ids[] = { + {0x31241095, "SiI3124", 4}, + {0x31248086, "SiI3124", 4}, + {0x31321095, "SiI3132", 2}, + {0x02421095, "SiI3132", 2}, + {0x02441095, "SiI3132", 2}, + {0x31311095, "SiI3131", 1}, + {0x35311095, "SiI3531", 1}, + {0, NULL, 0} +}; + static int siis_probe(device_t dev) { + char buf[64]; + int i; uint32_t devid = pci_get_devid(dev); - if (devid == SIIS_SII3124) { - device_set_desc_copy(dev, "SiI3124 SATA2 controller"); - } else if (devid == SIIS_SII3132 || - devid == SIIS_SII3132_1 || - devid == SIIS_SII3132_2) { - device_set_desc_copy(dev, "SiI3132 SATA2 controller"); - } else if (devid == SIIS_SII3531) { - device_set_desc_copy(dev, "SiI3531 SATA2 controller"); - } else { - return (ENXIO); + for (i = 0; siis_ids[i].id != 0; i++) { + if (siis_ids[i].id == devid) { + snprintf(buf, sizeof(buf), "%s SATA2 controller", + siis_ids[i].name); + device_set_desc_copy(dev, buf); + return (BUS_PROBE_VENDOR); + } } - - return (BUS_PROBE_VENDOR); + return (ENXIO); } static int @@ -115,8 +128,12 @@ siis_attach(device_t dev) struct siis_controller *ctlr = device_get_softc(dev); uint32_t devid = pci_get_devid(dev); device_t child; - int error, unit; + int error, i, unit; + for (i = 0; siis_ids[i].id != 0; i++) { + if (siis_ids[i].id == devid) + break; + } ctlr->dev = dev; /* Global memory */ ctlr->r_grid = PCIR_BAR(0); @@ -146,8 +163,7 @@ siis_attach(device_t dev) /* Reset controller */ siis_resume(dev); /* Number of HW channels */ - ctlr->channels = (devid == SIIS_SII3124) ? 4 : - (devid == SIIS_SII3531 ? 1 : 2); + ctlr->channels = siis_ids[i].ports; /* Setup interrupts. */ if (siis_setup_interrupt(dev)) { bus_release_resource(dev, SYS_RES_MEMORY, ctlr->r_rid, ctlr->r_mem); Modified: stable/8/sys/dev/siis/siis.h ============================================================================== --- stable/8/sys/dev/siis/siis.h Tue Nov 17 21:17:22 2009 (r199447) +++ stable/8/sys/dev/siis/siis.h Tue Nov 17 21:20:19 2009 (r199448) @@ -137,12 +137,6 @@ #define ATA_SACTIVE 16 -#define SIIS_SII3124 0x31241095 -#define SIIS_SII3132 0x31321095 -#define SIIS_SII3132_1 0x02421095 -#define SIIS_SII3132_2 0x02441095 -#define SIIS_SII3531 0x35311095 - /* * Global registers */ From owner-svn-src-stable-8@FreeBSD.ORG Tue Nov 17 21:21:28 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 258EE106568D; Tue, 17 Nov 2009 21:21:28 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 0AD878FC1E; Tue, 17 Nov 2009 21:21:28 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nAHLLRov039856; Tue, 17 Nov 2009 21:21:27 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nAHLLR7W039854; Tue, 17 Nov 2009 21:21:27 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <200911172121.nAHLLR7W039854@svn.freebsd.org> From: Alexander Motin Date: Tue, 17 Nov 2009 21:21:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r199449 - stable/8/sys/dev/ahci X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Nov 2009 21:21:28 -0000 Author: mav Date: Tue Nov 17 21:21:27 2009 New Revision: 199449 URL: http://svn.freebsd.org/changeset/base/199449 Log: MFC r199176: Add set of chip IDs, known to support AHCI. Modified: stable/8/sys/dev/ahci/ahci.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) Modified: stable/8/sys/dev/ahci/ahci.c ============================================================================== --- stable/8/sys/dev/ahci/ahci.c Tue Nov 17 21:20:19 2009 (r199448) +++ stable/8/sys/dev/ahci/ahci.c Tue Nov 17 21:21:27 2009 (r199449) @@ -96,23 +96,154 @@ static void ahcipoll(struct cam_sim *sim MALLOC_DEFINE(M_AHCI, "AHCI driver", "AHCI driver data buffers"); -/* - * AHCI v1.x compliant SATA chipset support functions - */ +static struct { + uint32_t id; + const char *name; + int flags; +} ahci_ids[] = { + {0x43801002, "ATI IXP600", 0}, + {0x43901002, "ATI IXP700", 0}, + {0x43911002, "ATI IXP700", 0}, + {0x43921002, "ATI IXP700", 0}, + {0x43931002, "ATI IXP700", 0}, + {0x43941002, "ATI IXP800", 0}, + {0x43951002, "ATI IXP800", 0}, + {0x26528086, "Intel ICH6", 0}, + {0x26538086, "Intel ICH6M", 0}, + {0x26818086, "Intel ESB2", 0}, + {0x26828086, "Intel ESB2", 0}, + {0x26838086, "Intel ESB2", 0}, + {0x27c18086, "Intel ICH7", 0}, + {0x27c38086, "Intel ICH7", 0}, + {0x27c58086, "Intel ICH7M", 0}, + {0x27c68086, "Intel ICH7M", 0}, + {0x28218086, "Intel ICH8", 0}, + {0x28228086, "Intel ICH8", 0}, + {0x28248086, "Intel ICH8", 0}, + {0x28298086, "Intel ICH8M", 0}, + {0x282a8086, "Intel ICH8M", 0}, + {0x29228086, "Intel ICH9", 0}, + {0x29238086, "Intel ICH9", 0}, + {0x29248086, "Intel ICH9", 0}, + {0x29258086, "Intel ICH9", 0}, + {0x29278086, "Intel ICH9", 0}, + {0x29298086, "Intel ICH9M", 0}, + {0x292a8086, "Intel ICH9M", 0}, + {0x292b8086, "Intel ICH9M", 0}, + {0x292c8086, "Intel ICH9M", 0}, + {0x292f8086, "Intel ICH9M", 0}, + {0x294d8086, "Intel ICH9", 0}, + {0x294e8086, "Intel ICH9M", 0}, + {0x3a058086, "Intel ICH10", 0}, + {0x3a228086, "Intel ICH10", 0}, + {0x3a258086, "Intel ICH10", 0}, + {0x3b228086, "Intel PCH", 0}, + {0x3b238086, "Intel PCH", 0}, + {0x3b248086, "Intel PCH", 0}, + {0x3b258086, "Intel PCH", 0}, + {0x3b298086, "Intel PCH", 0}, + {0x3b2b8086, "Intel PCH", 0}, + {0x3b2c8086, "Intel PCH", 0}, + {0x3b2f8086, "Intel PCH", 0}, + {0x044c10de, "NVIDIA MCP65", 0}, + {0x044d10de, "NVIDIA MCP65", 0}, + {0x044e10de, "NVIDIA MCP65", 0}, + {0x044f10de, "NVIDIA MCP65", 0}, + {0x045c10de, "NVIDIA MCP65", 0}, + {0x045d10de, "NVIDIA MCP65", 0}, + {0x045e10de, "NVIDIA MCP65", 0}, + {0x045f10de, "NVIDIA MCP65", 0}, + {0x055010de, "NVIDIA MCP67", 0}, + {0x055110de, "NVIDIA MCP67", 0}, + {0x055210de, "NVIDIA MCP67", 0}, + {0x055310de, "NVIDIA MCP67", 0}, + {0x055410de, "NVIDIA MCP67", 0}, + {0x055510de, "NVIDIA MCP67", 0}, + {0x055610de, "NVIDIA MCP67", 0}, + {0x055710de, "NVIDIA MCP67", 0}, + {0x055810de, "NVIDIA MCP67", 0}, + {0x055910de, "NVIDIA MCP67", 0}, + {0x055A10de, "NVIDIA MCP67", 0}, + {0x055B10de, "NVIDIA MCP67", 0}, + {0x058410de, "NVIDIA MCP67", 0}, + {0x07f010de, "NVIDIA MCP73", 0}, + {0x07f110de, "NVIDIA MCP73", 0}, + {0x07f210de, "NVIDIA MCP73", 0}, + {0x07f310de, "NVIDIA MCP73", 0}, + {0x07f410de, "NVIDIA MCP73", 0}, + {0x07f510de, "NVIDIA MCP73", 0}, + {0x07f610de, "NVIDIA MCP73", 0}, + {0x07f710de, "NVIDIA MCP73", 0}, + {0x07f810de, "NVIDIA MCP73", 0}, + {0x07f910de, "NVIDIA MCP73", 0}, + {0x07fa10de, "NVIDIA MCP73", 0}, + {0x07fb10de, "NVIDIA MCP73", 0}, + {0x0ad010de, "NVIDIA MCP77", 0}, + {0x0ad110de, "NVIDIA MCP77", 0}, + {0x0ad210de, "NVIDIA MCP77", 0}, + {0x0ad310de, "NVIDIA MCP77", 0}, + {0x0ad410de, "NVIDIA MCP77", 0}, + {0x0ad510de, "NVIDIA MCP77", 0}, + {0x0ad610de, "NVIDIA MCP77", 0}, + {0x0ad710de, "NVIDIA MCP77", 0}, + {0x0ad810de, "NVIDIA MCP77", 0}, + {0x0ad910de, "NVIDIA MCP77", 0}, + {0x0ada10de, "NVIDIA MCP77", 0}, + {0x0adb10de, "NVIDIA MCP77", 0}, + {0x0ab410de, "NVIDIA MCP79", 0}, + {0x0ab510de, "NVIDIA MCP79", 0}, + {0x0ab610de, "NVIDIA MCP79", 0}, + {0x0ab710de, "NVIDIA MCP79", 0}, + {0x0ab810de, "NVIDIA MCP79", 0}, + {0x0ab910de, "NVIDIA MCP79", 0}, + {0x0aba10de, "NVIDIA MCP79", 0}, + {0x0abb10de, "NVIDIA MCP79", 0}, + {0x0abc10de, "NVIDIA MCP79", 0}, + {0x0abd10de, "NVIDIA MCP79", 0}, + {0x0abe10de, "NVIDIA MCP79", 0}, + {0x0abf10de, "NVIDIA MCP79", 0}, + {0x0d8410de, "NVIDIA MCP89", 0}, + {0x0d8510de, "NVIDIA MCP89", 0}, + {0x0d8610de, "NVIDIA MCP89", 0}, + {0x0d8710de, "NVIDIA MCP89", 0}, + {0x0d8810de, "NVIDIA MCP89", 0}, + {0x0d8910de, "NVIDIA MCP89", 0}, + {0x0d8a10de, "NVIDIA MCP89", 0}, + {0x0d8b10de, "NVIDIA MCP89", 0}, + {0x0d8c10de, "NVIDIA MCP89", 0}, + {0x0d8d10de, "NVIDIA MCP89", 0}, + {0x0d8e10de, "NVIDIA MCP89", 0}, + {0x0d8f10de, "NVIDIA MCP89", 0}, + {0x33491106, "VIA VT8251", 0}, + {0x62871106, "VIA VT8251", 0}, + {0x11841039, "SiS 966", 0}, + {0x11851039, "SiS 968", 0}, + {0x01861039, "SiS 968", 0}, + {0, NULL, 0} +}; + static int ahci_probe(device_t dev) { + char buf[64]; + int i; + uint32_t devid = pci_get_devid(dev); - /* is this a possible AHCI candidate ? */ + /* Is this a known AHCI chip? */ + for (i = 0; ahci_ids[i].id != 0; i++) { + if (ahci_ids[i].id == devid) { + snprintf(buf, sizeof(buf), "%s AHCI SATA controller", + ahci_ids[i].name); + device_set_desc_copy(dev, buf); + return (BUS_PROBE_VENDOR); + } + } + /* Is this a possible AHCI candidate? */ if (pci_get_class(dev) != PCIC_STORAGE || - pci_get_subclass(dev) != PCIS_STORAGE_SATA) + pci_get_subclass(dev) != PCIS_STORAGE_SATA || + pci_get_progif(dev) != PCIP_STORAGE_SATA_AHCI_1_0) return (ENXIO); - - /* is this PCI device flagged as an AHCI compliant chip ? */ - if (pci_get_progif(dev) != PCIP_STORAGE_SATA_AHCI_1_0) - return (ENXIO); - - device_set_desc_copy(dev, "AHCI controller"); + device_set_desc_copy(dev, "AHCI SATA controller"); return (BUS_PROBE_VENDOR); } From owner-svn-src-stable-8@FreeBSD.ORG Tue Nov 17 21:23:05 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D92481065672; Tue, 17 Nov 2009 21:23:05 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id C745C8FC08; Tue, 17 Nov 2009 21:23:05 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nAHLN5eF039985; Tue, 17 Nov 2009 21:23:05 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nAHLN5mS039973; Tue, 17 Nov 2009 21:23:05 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <200911172123.nAHLN5mS039973@svn.freebsd.org> From: Alexander Motin Date: Tue, 17 Nov 2009 21:23:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r199450 - in stable/8/sys: cam cam/ata cam/scsi dev/ahci dev/siis X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Nov 2009 21:23:06 -0000 Author: mav Date: Tue Nov 17 21:23:05 2009 New Revision: 199450 URL: http://svn.freebsd.org/changeset/base/199450 Log: MFC r199178: - Move tagged queueing control from ADA to ATA XPT. It allows to control device command queue length correctly. First step to support < 32 tags. - Limit queue for non-tagged devices by 2 slots for ahci(4) and siis(4). - Implement quirk matching for ATA devices. - Move xpt_schedule_dev_sendq() from header to source file. - Move delayed queue shrinking to the more expected place - element freeing. - Remove some SCSIsms in ATA. Modified: stable/8/sys/cam/ata/ata_all.c stable/8/sys/cam/ata/ata_all.h stable/8/sys/cam/ata/ata_da.c stable/8/sys/cam/ata/ata_xpt.c stable/8/sys/cam/cam.c stable/8/sys/cam/cam_ccb.h stable/8/sys/cam/cam_xpt.c stable/8/sys/cam/cam_xpt_internal.h stable/8/sys/cam/scsi/scsi_xpt.c stable/8/sys/dev/ahci/ahci.c stable/8/sys/dev/siis/siis.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) Modified: stable/8/sys/cam/ata/ata_all.c ============================================================================== --- stable/8/sys/cam/ata/ata_all.c Tue Nov 17 21:21:27 2009 (r199449) +++ stable/8/sys/cam/ata/ata_all.c Tue Nov 17 21:23:05 2009 (r199450) @@ -509,3 +509,38 @@ ata_max_mode(struct ata_params *ap, int return (mode); } +int +ata_identify_match(caddr_t identbuffer, caddr_t table_entry) +{ + struct scsi_inquiry_pattern *entry; + struct ata_params *ident; + + entry = (struct scsi_inquiry_pattern *)table_entry; + ident = (struct ata_params *)identbuffer; + + if ((cam_strmatch(ident->model, entry->product, + sizeof(ident->model)) == 0) + && (cam_strmatch(ident->revision, entry->revision, + sizeof(ident->revision)) == 0)) { + return (0); + } + return (-1); +} + +int +ata_static_identify_match(caddr_t identbuffer, caddr_t table_entry) +{ + struct scsi_static_inquiry_pattern *entry; + struct ata_params *ident; + + entry = (struct scsi_static_inquiry_pattern *)table_entry; + ident = (struct ata_params *)identbuffer; + + if ((cam_strmatch(ident->model, entry->product, + sizeof(ident->model)) == 0) + && (cam_strmatch(ident->revision, entry->revision, + sizeof(ident->revision)) == 0)) { + return (0); + } + return (-1); +} Modified: stable/8/sys/cam/ata/ata_all.h ============================================================================== --- stable/8/sys/cam/ata/ata_all.h Tue Nov 17 21:21:27 2009 (r199449) +++ stable/8/sys/cam/ata/ata_all.h Tue Nov 17 21:23:05 2009 (r199450) @@ -114,4 +114,7 @@ int ata_max_wmode(struct ata_params *ap) int ata_max_umode(struct ata_params *ap); int ata_max_mode(struct ata_params *ap, int mode, int maxmode); +int ata_identify_match(caddr_t identbuffer, caddr_t table_entry); +int ata_static_identify_match(caddr_t identbuffer, caddr_t table_entry); + #endif Modified: stable/8/sys/cam/ata/ata_da.c ============================================================================== --- stable/8/sys/cam/ata/ata_da.c Tue Nov 17 21:21:27 2009 (r199449) +++ stable/8/sys/cam/ata/ata_da.c Tue Nov 17 21:23:05 2009 (r199450) @@ -122,9 +122,17 @@ struct ada_quirk_entry { ada_quirks quirks; }; -//static struct ada_quirk_entry ada_quirk_table[] = -//{ -//}; +static struct ada_quirk_entry ada_quirk_table[] = +{ + { + /* Default */ + { + T_ANY, SIP_MEDIA_REMOVABLE|SIP_MEDIA_FIXED, + /*vendor*/"*", /*product*/"*", /*revision*/"*" + }, + /*quirks*/0 + }, +}; static disk_strategy_t adastrategy; static dumper_t adadump; @@ -618,7 +626,7 @@ adaregister(struct cam_periph *periph, v if (cgd->ident_data.support.command2 & ATA_SUPPORT_FLUSHCACHE) softc->flags |= ADA_FLAG_CAN_FLUSHCACHE; if (cgd->ident_data.satacapabilities & ATA_SUPPORT_NCQ && - cgd->ident_data.queue >= 31) + cgd->inq_flags & SID_CmdQue) softc->flags |= ADA_FLAG_CAN_NCQ; softc->state = ADA_STATE_NORMAL; @@ -627,12 +635,10 @@ adaregister(struct cam_periph *periph, v /* * See if this device has any quirks. */ -// match = cam_quirkmatch((caddr_t)&cgd->inq_data, -// (caddr_t)ada_quirk_table, -// sizeof(ada_quirk_table)/sizeof(*ada_quirk_table), -// sizeof(*ada_quirk_table), scsi_inquiry_match); - match = NULL; - + match = cam_quirkmatch((caddr_t)&cgd->ident_data, + (caddr_t)ada_quirk_table, + sizeof(ada_quirk_table)/sizeof(*ada_quirk_table), + sizeof(*ada_quirk_table), ata_identify_match); if (match != NULL) softc->quirks = ((struct ada_quirk_entry *)match)->quirks; else @@ -700,11 +706,6 @@ adaregister(struct cam_periph *periph, v dp->secsize, dp->heads, dp->secs_per_track, dp->cylinders); xpt_announce_periph(periph, announce_buf); - if (softc->flags & ADA_FLAG_CAN_NCQ) { - printf("%s%d: Native Command Queueing enabled\n", - periph->periph_name, periph->unit_number); - } - /* * Add async callbacks for bus reset and * bus device reset calls. I don't bother Modified: stable/8/sys/cam/ata/ata_xpt.c ============================================================================== --- stable/8/sys/cam/ata/ata_xpt.c Tue Nov 17 21:21:27 2009 (r199449) +++ stable/8/sys/cam/ata/ata_xpt.c Tue Nov 17 21:23:05 2009 (r199450) @@ -66,17 +66,12 @@ __FBSDID("$FreeBSD$"); #include /* for xpt_print below */ #include "opt_cam.h" -struct scsi_quirk_entry { +struct ata_quirk_entry { struct scsi_inquiry_pattern inq_pat; u_int8_t quirks; -#define CAM_QUIRK_NOLUNS 0x01 -#define CAM_QUIRK_NOSERIAL 0x02 -#define CAM_QUIRK_HILUNS 0x04 -#define CAM_QUIRK_NOHILUNS 0x08 - u_int mintags; +#define CAM_QUIRK_MAXTAGS 0x01 u_int maxtags; }; -#define SCSI_QUIRK(dev) ((struct scsi_quirk_entry *)((dev)->quirk)) static periph_init_t probe_periph_init; @@ -138,7 +133,7 @@ typedef struct { struct cam_periph *periph; } probe_softc; -static struct scsi_quirk_entry scsi_quirk_table[] = +static struct ata_quirk_entry ata_quirk_table[] = { { /* Default tagged queuing parameters for all devices */ @@ -146,12 +141,12 @@ static struct scsi_quirk_entry scsi_quir T_ANY, SIP_MEDIA_REMOVABLE|SIP_MEDIA_FIXED, /*vendor*/"*", /*product*/"*", /*revision*/"*" }, - /*quirks*/0, /*mintags*/2, /*maxtags*/32 + /*quirks*/0, /*maxtags*/0 }, }; -static const int scsi_quirk_table_size = - sizeof(scsi_quirk_table) / sizeof(*scsi_quirk_table); +static const int ata_quirk_table_size = + sizeof(ata_quirk_table) / sizeof(*ata_quirk_table); static cam_status proberegister(struct cam_periph *periph, void *arg); @@ -162,7 +157,7 @@ static void probestart(struct cam_perip // struct cam_ed *device); static void probedone(struct cam_periph *periph, union ccb *done_ccb); static void probecleanup(struct cam_periph *periph); -static void scsi_find_quirk(struct cam_ed *device); +static void ata_find_quirk(struct cam_ed *device); static void ata_scan_bus(struct cam_periph *periph, union ccb *ccb); static void ata_scan_lun(struct cam_periph *periph, struct cam_path *path, cam_flags flags, @@ -172,10 +167,9 @@ static struct cam_ed * ata_alloc_device(struct cam_eb *bus, struct cam_et *target, lun_id_t lun_id); static void ata_device_transport(struct cam_path *path); -static void scsi_set_transfer_settings(struct ccb_trans_settings *cts, +static void ata_set_transfer_settings(struct ccb_trans_settings *cts, struct cam_ed *device, int async_update); -static void scsi_toggle_tags(struct cam_path *path); static void ata_dev_async(u_int32_t async_code, struct cam_eb *bus, struct cam_et *target, @@ -717,6 +711,17 @@ noerror: path->device->flags |= CAM_DEV_IDENTIFY_DATA_VALID; } + if (ident_buf->satacapabilities & ATA_SUPPORT_NCQ) { + path->device->mintags = path->device->maxtags = + ATA_QUEUE_LEN(ident_buf->queue) + 1; + } + ata_find_quirk(path->device); + /* XXX: If not all tags allowed, we must to tell SIM which are. */ + if (path->device->mintags < path->bus->sim->max_tagged_dev_openings) + path->device->mintags = path->device->maxtags = 0; + if (path->device->mintags != 0) { + xpt_start_tags(path); + } ata_device_transport(path); PROBE_SET_ACTION(softc, PROBE_SETMODE); xpt_release_ccb(done_ccb); @@ -776,7 +781,6 @@ noerror: return; } - scsi_find_quirk(path->device); ata_device_transport(path); if (periph->path->device->flags & CAM_DEV_UNCONFIGURED) { path->device->flags &= ~CAM_DEV_UNCONFIGURED; @@ -853,24 +857,23 @@ probecleanup(struct cam_periph *periph) } static void -scsi_find_quirk(struct cam_ed *device) +ata_find_quirk(struct cam_ed *device) { - struct scsi_quirk_entry *quirk; + struct ata_quirk_entry *quirk; caddr_t match; - match = cam_quirkmatch((caddr_t)&device->inq_data, - (caddr_t)scsi_quirk_table, - sizeof(scsi_quirk_table) / - sizeof(*scsi_quirk_table), - sizeof(*scsi_quirk_table), scsi_inquiry_match); + match = cam_quirkmatch((caddr_t)&device->ident_data, + (caddr_t)ata_quirk_table, + ata_quirk_table_size, + sizeof(*ata_quirk_table), ata_identify_match); if (match == NULL) panic("xpt_find_quirk: device didn't match wildcard entry!!"); - quirk = (struct scsi_quirk_entry *)match; + quirk = (struct ata_quirk_entry *)match; device->quirk = quirk; - device->mintags = quirk->mintags; - device->maxtags = quirk->maxtags; + if (quirk->quirks & CAM_QUIRK_MAXTAGS) + device->mintags = device->maxtags = quirk->maxtags; } typedef struct { @@ -1101,7 +1104,7 @@ static struct cam_ed * ata_alloc_device(struct cam_eb *bus, struct cam_et *target, lun_id_t lun_id) { struct cam_path path; - struct scsi_quirk_entry *quirk; + struct ata_quirk_entry *quirk; struct cam_ed *device; struct cam_ed *cur_device; @@ -1113,10 +1116,10 @@ ata_alloc_device(struct cam_eb *bus, str * Take the default quirk entry until we have inquiry * data and can determine a better quirk to use. */ - quirk = &scsi_quirk_table[scsi_quirk_table_size - 1]; + quirk = &ata_quirk_table[ata_quirk_table_size - 1]; device->quirk = (void *)quirk; - device->mintags = quirk->mintags; - device->maxtags = quirk->maxtags; + device->mintags = 0; + device->maxtags = 0; bzero(&device->inq_data, sizeof(device->inq_data)); device->inq_flags = 0; device->queue_flags = 0; @@ -1199,7 +1202,7 @@ ata_action(union ccb *start_ccb) switch (start_ccb->ccb_h.func_code) { case XPT_SET_TRAN_SETTINGS: { - scsi_set_transfer_settings(&start_ccb->cts, + ata_set_transfer_settings(&start_ccb->cts, start_ccb->ccb_h.path->device, /*async_update*/FALSE); break; @@ -1227,7 +1230,7 @@ ata_action(union ccb *start_ccb) } static void -scsi_set_transfer_settings(struct ccb_trans_settings *cts, struct cam_ed *device, +ata_set_transfer_settings(struct ccb_trans_settings *cts, struct cam_ed *device, int async_update) { struct ccb_pathinq cpi; @@ -1379,24 +1382,7 @@ scsi_set_transfer_settings(struct ccb_tr device->tag_delay_count = CAM_TAG_DELAY_COUNT; device->flags |= CAM_DEV_TAG_AFTER_COUNT; } else { - struct ccb_relsim crs; - - xpt_freeze_devq(cts->ccb_h.path, /*count*/1); - device->inq_flags &= ~SID_CmdQue; - xpt_dev_ccbq_resize(cts->ccb_h.path, - sim->max_dev_openings); - device->flags &= ~CAM_DEV_TAG_AFTER_COUNT; - device->tag_delay_count = 0; - - xpt_setup_ccb(&crs.ccb_h, cts->ccb_h.path, - CAM_PRIORITY_NORMAL); - crs.ccb_h.func_code = XPT_REL_SIMQ; - crs.release_flags = RELSIM_RELEASE_AFTER_QEMPTY; - crs.openings - = crs.release_timeout - = crs.qfrozen_cnt - = 0; - xpt_action((union ccb *)&crs); + xpt_stop_tags(cts->ccb_h.path); } } } @@ -1404,39 +1390,6 @@ scsi_set_transfer_settings(struct ccb_tr (*(sim->sim_action))(sim, (union ccb *)cts); } -static void -scsi_toggle_tags(struct cam_path *path) -{ - struct cam_ed *dev; - - /* - * Give controllers a chance to renegotiate - * before starting tag operations. We - * "toggle" tagged queuing off then on - * which causes the tag enable command delay - * counter to come into effect. - */ - dev = path->device; - if ((dev->flags & CAM_DEV_TAG_AFTER_COUNT) != 0 - || ((dev->inq_flags & SID_CmdQue) != 0 - && (dev->inq_flags & (SID_Sync|SID_WBus16|SID_WBus32)) != 0)) { - struct ccb_trans_settings cts; - - xpt_setup_ccb(&cts.ccb_h, path, CAM_PRIORITY_NORMAL); - cts.protocol = PROTO_SCSI; - cts.protocol_version = PROTO_VERSION_UNSPECIFIED; - cts.transport = XPORT_UNSPECIFIED; - cts.transport_version = XPORT_VERSION_UNSPECIFIED; - cts.proto_specific.scsi.flags = 0; - cts.proto_specific.scsi.valid = CTS_SCSI_VALID_TQ; - scsi_set_transfer_settings(&cts, path->device, - /*async_update*/TRUE); - cts.proto_specific.scsi.flags = CTS_SCSI_FLAGS_TAG_ENB; - scsi_set_transfer_settings(&cts, path->device, - /*async_update*/TRUE); - } -} - /* * Handle any per-device event notifications that require action by the XPT. */ @@ -1469,15 +1422,6 @@ ata_dev_async(u_int32_t async_code, stru status = CAM_REQ_CMP_ERR; if (status == CAM_REQ_CMP) { - - /* - * Allow transfer negotiation to occur in a - * tag free environment. - */ - if (async_code == AC_SENT_BDR - || async_code == AC_BUS_RESET) - scsi_toggle_tags(&newpath); - if (async_code == AC_INQ_CHANGED) { /* * We've sent a start unit command, or @@ -1498,7 +1442,7 @@ ata_dev_async(u_int32_t async_code, stru struct ccb_trans_settings *settings; settings = (struct ccb_trans_settings *)async_arg; - scsi_set_transfer_settings(settings, device, + ata_set_transfer_settings(settings, device, /*async_update*/TRUE); } } Modified: stable/8/sys/cam/cam.c ============================================================================== --- stable/8/sys/cam/cam.c Tue Nov 17 21:21:27 2009 (r199449) +++ stable/8/sys/cam/cam.c Tue Nov 17 21:23:05 2009 (r199450) @@ -165,8 +165,12 @@ cam_strmatch(const u_int8_t *str, const str++; str_len--; } - while (str_len > 0 && *str++ == ' ') + while (str_len > 0 && *str == ' ') { + str++; str_len--; + } + if (str_len > 0 && *str == 0) + str_len = 0; return (str_len); } Modified: stable/8/sys/cam/cam_ccb.h ============================================================================== --- stable/8/sys/cam/cam_ccb.h Tue Nov 17 21:21:27 2009 (r199449) +++ stable/8/sys/cam/cam_ccb.h Tue Nov 17 21:23:05 2009 (r199450) @@ -307,7 +307,7 @@ struct ccb_getdev { struct scsi_inquiry_data inq_data; struct ata_params ident_data; u_int8_t serial_num[252]; - u_int8_t reserved; + u_int8_t inq_flags; u_int8_t serial_num_len; }; Modified: stable/8/sys/cam/cam_xpt.c ============================================================================== --- stable/8/sys/cam/cam_xpt.c Tue Nov 17 21:21:27 2009 (r199449) +++ stable/8/sys/cam/cam_xpt.c Tue Nov 17 21:23:05 2009 (r199450) @@ -285,7 +285,6 @@ static xpt_devicefunc_t xptsetasyncfunc; static xpt_busfunc_t xptsetasyncbusfunc; static cam_status xptregister(struct cam_periph *periph, void *arg); -static void xpt_start_tags(struct cam_path *path); static __inline int xpt_schedule_dev_allocq(struct cam_eb *bus, struct cam_ed *dev); static __inline int periph_is_queued(struct cam_periph *periph); @@ -299,12 +298,6 @@ xpt_schedule_dev_allocq(struct cam_eb *b int retval; if (dev->ccbq.devq_openings > 0) { - if ((dev->flags & CAM_DEV_RESIZE_QUEUE_NEEDED) != 0) { - cam_ccbq_resize(&dev->ccbq, - dev->ccbq.dev_openings - + dev->ccbq.dev_active); - dev->flags &= ~CAM_DEV_RESIZE_QUEUE_NEEDED; - } /* * The priority of a device waiting for CCB resources * is that of the the highest priority peripheral driver @@ -321,6 +314,27 @@ xpt_schedule_dev_allocq(struct cam_eb *b } static __inline int +xpt_schedule_dev_sendq(struct cam_eb *bus, struct cam_ed *dev) +{ + int retval; + + if (dev->ccbq.dev_openings > 0) { + /* + * The priority of a device waiting for controller + * resources is that of the the highest priority CCB + * enqueued. + */ + retval = + xpt_schedule_dev(&bus->sim->devq->send_queue, + &dev->send_ccb_entry.pinfo, + CAMQ_GET_HEAD(&dev->ccbq.queue)->priority); + } else { + retval = 0; + } + return (retval); +} + +static __inline int periph_is_queued(struct cam_periph *periph) { return (periph->pinfo.index != CAM_UNQUEUED_INDEX); @@ -2657,6 +2671,7 @@ xpt_action_default(union ccb *start_ccb) cgd->protocol = dev->protocol; cgd->inq_data = dev->inq_data; cgd->ident_data = dev->ident_data; + cgd->inq_flags = dev->inq_flags; cgd->ccb_h.status = CAM_REQ_CMP; cgd->serial_num_len = dev->serial_num_len; if ((dev->serial_num_len > 0) @@ -3747,6 +3762,11 @@ xpt_release_ccb(union ccb *free_ccb) mtx_assert(sim->mtx, MA_OWNED); cam_ccbq_release_opening(&device->ccbq); + if (device->flags & CAM_DEV_RESIZE_QUEUE_NEEDED) { + device->flags &= ~CAM_DEV_RESIZE_QUEUE_NEEDED; + cam_ccbq_resize(&device->ccbq, + device->ccbq.dev_openings + device->ccbq.dev_active); + } if (sim->ccb_count > sim->max_ccbs) { xpt_free_ccb(free_ccb); sim->ccb_count--; @@ -4573,7 +4593,7 @@ xpt_find_device(struct cam_et *target, l return (device); } -static void +void xpt_start_tags(struct cam_path *path) { struct ccb_relsim crs; @@ -4602,6 +4622,30 @@ xpt_start_tags(struct cam_path *path) xpt_action((union ccb *)&crs); } +void +xpt_stop_tags(struct cam_path *path) +{ + struct ccb_relsim crs; + struct cam_ed *device; + struct cam_sim *sim; + + device = path->device; + sim = path->bus->sim; + device->flags &= ~CAM_DEV_TAG_AFTER_COUNT; + device->tag_delay_count = 0; + xpt_freeze_devq(path, /*count*/1); + device->inq_flags &= ~SID_CmdQue; + xpt_dev_ccbq_resize(path, sim->max_dev_openings); + xpt_setup_ccb(&crs.ccb_h, path, CAM_PRIORITY_NORMAL); + crs.ccb_h.func_code = XPT_REL_SIMQ; + crs.release_flags = RELSIM_RELEASE_AFTER_QEMPTY; + crs.openings + = crs.release_timeout + = crs.qfrozen_cnt + = 0; + xpt_action((union ccb *)&crs); +} + static int busses_to_config; static int busses_to_reset; Modified: stable/8/sys/cam/cam_xpt_internal.h ============================================================================== --- stable/8/sys/cam/cam_xpt_internal.h Tue Nov 17 21:21:27 2009 (r199449) +++ stable/8/sys/cam/cam_xpt_internal.h Tue Nov 17 21:23:05 2009 (r199450) @@ -176,29 +176,8 @@ void xpt_run_dev_sendq(struct cam_eb * int xpt_schedule_dev(struct camq *queue, cam_pinfo *dev_pinfo, u_int32_t new_priority); u_int32_t xpt_dev_ccbq_resize(struct cam_path *path, int newopenings); - - - -static __inline int -xpt_schedule_dev_sendq(struct cam_eb *bus, struct cam_ed *dev) -{ - int retval; - - if (dev->ccbq.dev_openings > 0) { - /* - * The priority of a device waiting for controller - * resources is that of the the highest priority CCB - * enqueued. - */ - retval = - xpt_schedule_dev(&bus->sim->devq->send_queue, - &dev->send_ccb_entry.pinfo, - CAMQ_GET_HEAD(&dev->ccbq.queue)->priority); - } else { - retval = 0; - } - return (retval); -} +void xpt_start_tags(struct cam_path *path); +void xpt_stop_tags(struct cam_path *path); MALLOC_DECLARE(M_CAMXPT); Modified: stable/8/sys/cam/scsi/scsi_xpt.c ============================================================================== --- stable/8/sys/cam/scsi/scsi_xpt.c Tue Nov 17 21:21:27 2009 (r199449) +++ stable/8/sys/cam/scsi/scsi_xpt.c Tue Nov 17 21:23:05 2009 (r199450) @@ -2274,24 +2274,7 @@ scsi_set_transfer_settings(struct ccb_tr device->tag_delay_count = CAM_TAG_DELAY_COUNT; device->flags |= CAM_DEV_TAG_AFTER_COUNT; } else { - struct ccb_relsim crs; - - xpt_freeze_devq(cts->ccb_h.path, /*count*/1); - device->inq_flags &= ~SID_CmdQue; - xpt_dev_ccbq_resize(cts->ccb_h.path, - sim->max_dev_openings); - device->flags &= ~CAM_DEV_TAG_AFTER_COUNT; - device->tag_delay_count = 0; - - xpt_setup_ccb(&crs.ccb_h, cts->ccb_h.path, - CAM_PRIORITY_NORMAL); - crs.ccb_h.func_code = XPT_REL_SIMQ; - crs.release_flags = RELSIM_RELEASE_AFTER_QEMPTY; - crs.openings - = crs.release_timeout - = crs.qfrozen_cnt - = 0; - xpt_action((union ccb *)&crs); + xpt_stop_tags(cts->ccb_h.path); } } } Modified: stable/8/sys/dev/ahci/ahci.c ============================================================================== --- stable/8/sys/dev/ahci/ahci.c Tue Nov 17 21:21:27 2009 (r199449) +++ stable/8/sys/dev/ahci/ahci.c Tue Nov 17 21:23:05 2009 (r199450) @@ -733,7 +733,8 @@ ahci_ch_attach(device_t dev) } /* Construct SIM entry */ ch->sim = cam_sim_alloc(ahciaction, ahcipoll, "ahcich", ch, - device_get_unit(dev), &ch->mtx, ch->numslots, 0, devq); + device_get_unit(dev), &ch->mtx, + min(2, ch->numslots), ch->numslots, devq); if (ch->sim == NULL) { device_printf(dev, "unable to allocate sim\n"); error = ENOMEM; Modified: stable/8/sys/dev/siis/siis.c ============================================================================== --- stable/8/sys/dev/siis/siis.c Tue Nov 17 21:21:27 2009 (r199449) +++ stable/8/sys/dev/siis/siis.c Tue Nov 17 21:23:05 2009 (r199450) @@ -454,7 +454,7 @@ siis_ch_attach(device_t dev) } /* Construct SIM entry */ ch->sim = cam_sim_alloc(siisaction, siispoll, "siisch", ch, - device_get_unit(dev), &ch->mtx, SIIS_MAX_SLOTS, 0, devq); + device_get_unit(dev), &ch->mtx, 2, SIIS_MAX_SLOTS, devq); if (ch->sim == NULL) { device_printf(dev, "unable to allocate sim\n"); error = ENOMEM; From owner-svn-src-stable-8@FreeBSD.ORG Tue Nov 17 21:26:05 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D8C571065670; Tue, 17 Nov 2009 21:26:05 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id C864E8FC1A; Tue, 17 Nov 2009 21:26:05 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nAHLQ5fg040202; Tue, 17 Nov 2009 21:26:05 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nAHLQ51C040200; Tue, 17 Nov 2009 21:26:05 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <200911172126.nAHLQ51C040200@svn.freebsd.org> From: Alexander Motin Date: Tue, 17 Nov 2009 21:26:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r199451 - stable/8/sys/cam/ata X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Nov 2009 21:26:06 -0000 Author: mav Date: Tue Nov 17 21:26:05 2009 New Revision: 199451 URL: http://svn.freebsd.org/changeset/base/199451 Log: MFC r199263: Do not enable tagged queueing if controller reports 0 tags support. Modified: stable/8/sys/cam/ata/ata_xpt.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) Modified: stable/8/sys/cam/ata/ata_xpt.c ============================================================================== --- stable/8/sys/cam/ata/ata_xpt.c Tue Nov 17 21:23:05 2009 (r199450) +++ stable/8/sys/cam/ata/ata_xpt.c Tue Nov 17 21:26:05 2009 (r199451) @@ -719,7 +719,8 @@ noerror: /* XXX: If not all tags allowed, we must to tell SIM which are. */ if (path->device->mintags < path->bus->sim->max_tagged_dev_openings) path->device->mintags = path->device->maxtags = 0; - if (path->device->mintags != 0) { + if (path->device->mintags != 0 && + path->bus->sim->max_tagged_dev_openings != 0) { xpt_start_tags(path); } ata_device_transport(path); From owner-svn-src-stable-8@FreeBSD.ORG Tue Nov 17 21:27:22 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 178251065693; Tue, 17 Nov 2009 21:27:22 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 074E88FC27; Tue, 17 Nov 2009 21:27:22 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nAHLRL7S040307; Tue, 17 Nov 2009 21:27:21 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nAHLRLmH040305; Tue, 17 Nov 2009 21:27:21 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <200911172127.nAHLRLmH040305@svn.freebsd.org> From: Alexander Motin Date: Tue, 17 Nov 2009 21:27:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r199452 - stable/8/sys/dev/ahci X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Nov 2009 21:27:22 -0000 Author: mav Date: Tue Nov 17 21:27:21 2009 New Revision: 199452 URL: http://svn.freebsd.org/changeset/base/199452 Log: MFC r199278: Check SNCQ HBA capability bit when reporting NCQ support to CAM. Modified: stable/8/sys/dev/ahci/ahci.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) Modified: stable/8/sys/dev/ahci/ahci.c ============================================================================== --- stable/8/sys/dev/ahci/ahci.c Tue Nov 17 21:26:05 2009 (r199451) +++ stable/8/sys/dev/ahci/ahci.c Tue Nov 17 21:27:21 2009 (r199452) @@ -734,7 +734,9 @@ ahci_ch_attach(device_t dev) /* Construct SIM entry */ ch->sim = cam_sim_alloc(ahciaction, ahcipoll, "ahcich", ch, device_get_unit(dev), &ch->mtx, - min(2, ch->numslots), ch->numslots, devq); + min(2, ch->numslots), + (ch->caps & AHCI_CAP_SNCQ) ? ch->numslots : 0, + devq); if (ch->sim == NULL) { device_printf(dev, "unable to allocate sim\n"); error = ENOMEM; @@ -2119,7 +2121,9 @@ ahciaction(struct cam_sim *sim, union cc struct ccb_pathinq *cpi = &ccb->cpi; cpi->version_num = 1; /* XXX??? */ - cpi->hba_inquiry = PI_SDTR_ABLE | PI_TAG_ABLE; + cpi->hba_inquiry = PI_SDTR_ABLE; + if (ch->caps & AHCI_CAP_SNCQ) + cpi->hba_inquiry |= PI_TAG_ABLE; if (ch->caps & AHCI_CAP_SPM) cpi->hba_inquiry |= PI_SATAPM; cpi->target_sprt = 0; From owner-svn-src-stable-8@FreeBSD.ORG Tue Nov 17 21:28:59 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 798641065672; Tue, 17 Nov 2009 21:28:59 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 693388FC1C; Tue, 17 Nov 2009 21:28:59 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nAHLSx5w040453; Tue, 17 Nov 2009 21:28:59 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nAHLSxAG040451; Tue, 17 Nov 2009 21:28:59 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <200911172128.nAHLSxAG040451@svn.freebsd.org> From: Alexander Motin Date: Tue, 17 Nov 2009 21:28:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r199453 - stable/8/sys/dev/siis X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Nov 2009 21:28:59 -0000 Author: mav Date: Tue Nov 17 21:28:59 2009 New Revision: 199453 URL: http://svn.freebsd.org/changeset/base/199453 Log: MFC r199333: Do not require payload data to be aligned. It is not mentioned in datasheet and works fine in practice. Modified: stable/8/sys/dev/siis/siis.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) Modified: stable/8/sys/dev/siis/siis.c ============================================================================== --- stable/8/sys/dev/siis/siis.c Tue Nov 17 21:27:21 2009 (r199452) +++ stable/8/sys/dev/siis/siis.c Tue Nov 17 21:28:59 2009 (r199453) @@ -579,7 +579,7 @@ siis_dmainit(device_t dev) } ch->dma.work_bus = dcba.maddr; /* Data area. */ - if (bus_dma_tag_create(bus_get_dma_tag(dev), 2, 0, + if (bus_dma_tag_create(bus_get_dma_tag(dev), 1, 0, BUS_SPACE_MAXADDR, BUS_SPACE_MAXADDR, NULL, NULL, SIIS_SG_ENTRIES * PAGE_SIZE * SIIS_MAX_SLOTS, From owner-svn-src-stable-8@FreeBSD.ORG Tue Nov 17 21:42:12 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7FE3A10656B6; Tue, 17 Nov 2009 21:42:12 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 55B298FC21; Tue, 17 Nov 2009 21:42:12 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nAHLgCOP041264; Tue, 17 Nov 2009 21:42:12 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nAHLgCka041263; Tue, 17 Nov 2009 21:42:12 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <200911172142.nAHLgCka041263@svn.freebsd.org> From: Alexander Motin Date: Tue, 17 Nov 2009 21:42:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r199454 - stable/8/sys/geom/stripe X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Nov 2009 21:42:12 -0000 Author: mav Date: Tue Nov 17 21:42:11 2009 New Revision: 199454 URL: http://svn.freebsd.org/changeset/base/199454 Log: MFC r196837: Remove artificial MAX_IO_SIZE constant, equal to DFLTPHYS * 2. Use MAXPHYS instead. It is NULL change for GENERIC kernel, but allows 'fast' mode to work on systems with increased MAXPHYS. Modified: stable/8/sys/geom/stripe/g_stripe.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) Modified: stable/8/sys/geom/stripe/g_stripe.c ============================================================================== --- stable/8/sys/geom/stripe/g_stripe.c Tue Nov 17 21:28:59 2009 (r199453) +++ stable/8/sys/geom/stripe/g_stripe.c Tue Nov 17 21:42:11 2009 (r199454) @@ -41,7 +41,6 @@ __FBSDID("$FreeBSD$"); #include -#define MAX_IO_SIZE (DFLTPHYS * 2) static MALLOC_DEFINE(M_STRIPE, "stripe_data", "GEOM_STRIPE Data"); static uma_zone_t g_stripe_zone; @@ -87,7 +86,7 @@ g_sysctl_stripe_fast(SYSCTL_HANDLER_ARGS } SYSCTL_PROC(_kern_geom_stripe, OID_AUTO, fast, CTLTYPE_INT | CTLFLAG_RW, NULL, 0, g_sysctl_stripe_fast, "I", "Fast, but memory-consuming, mode"); -static u_int g_stripe_maxmem = MAX_IO_SIZE * 100; +static u_int g_stripe_maxmem = MAXPHYS * 100; TUNABLE_INT("kern.geom.stripe.maxmem", &g_stripe_maxmem); SYSCTL_UINT(_kern_geom_stripe, OID_AUTO, maxmem, CTLFLAG_RD, &g_stripe_maxmem, 0, "Maximum memory that can be allocated in \"fast\" mode (in bytes)"); @@ -125,10 +124,10 @@ static void g_stripe_init(struct g_class *mp __unused) { - g_stripe_zone = uma_zcreate("g_stripe_zone", MAX_IO_SIZE, NULL, NULL, + g_stripe_zone = uma_zcreate("g_stripe_zone", MAXPHYS, NULL, NULL, NULL, NULL, 0, 0); - g_stripe_maxmem -= g_stripe_maxmem % MAX_IO_SIZE; - uma_zone_set_max(g_stripe_zone, g_stripe_maxmem / MAX_IO_SIZE); + g_stripe_maxmem -= g_stripe_maxmem % MAXPHYS; + uma_zone_set_max(g_stripe_zone, g_stripe_maxmem / MAXPHYS); } static void @@ -613,14 +612,14 @@ g_stripe_start(struct bio *bp) * Do use "fast" mode when: * 1. "Fast" mode is ON. * and - * 2. Request size is less than or equal to MAX_IO_SIZE (128kB), + * 2. Request size is less than or equal to MAXPHYS, * which should always be true. * and * 3. Request size is bigger than stripesize * ndisks. If it isn't, * there will be no need to send more than one I/O request to * a provider, so there is nothing to optmize. */ - if (g_stripe_fast && bp->bio_length <= MAX_IO_SIZE && + if (g_stripe_fast && bp->bio_length <= MAXPHYS && bp->bio_length >= stripesize * sc->sc_ndisks) { fast = 1; } From owner-svn-src-stable-8@FreeBSD.ORG Tue Nov 17 21:43:42 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A86F81065694; Tue, 17 Nov 2009 21:43:42 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 97F8C8FC2F; Tue, 17 Nov 2009 21:43:42 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nAHLhgfZ041385; Tue, 17 Nov 2009 21:43:42 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nAHLhgC3041383; Tue, 17 Nov 2009 21:43:42 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <200911172143.nAHLhgC3041383@svn.freebsd.org> From: Alexander Motin Date: Tue, 17 Nov 2009 21:43:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r199455 - stable/8/sys/geom X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Nov 2009 21:43:42 -0000 Author: mav Date: Tue Nov 17 21:43:42 2009 New Revision: 199455 URL: http://svn.freebsd.org/changeset/base/199455 Log: MFC r196904: Remove msleep() timeout from g_io_schedule_up/down(). It works fine without it, saving few percents of CPU on high request rates without need to rearm callout twice per request. Modified: stable/8/sys/geom/geom_io.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) Modified: stable/8/sys/geom/geom_io.c ============================================================================== --- stable/8/sys/geom/geom_io.c Tue Nov 17 21:42:11 2009 (r199454) +++ stable/8/sys/geom/geom_io.c Tue Nov 17 21:43:42 2009 (r199455) @@ -567,7 +567,7 @@ g_io_schedule_down(struct thread *tp __u if (bp == NULL) { CTR0(KTR_GEOM, "g_down going to sleep"); msleep(&g_wait_down, &g_bio_run_down.bio_queue_lock, - PRIBIO | PDROP, "-", hz/10); + PRIBIO | PDROP, "-", 0); continue; } CTR0(KTR_GEOM, "g_down has work to do"); @@ -672,7 +672,7 @@ g_io_schedule_up(struct thread *tp __unu } CTR0(KTR_GEOM, "g_up going to sleep"); msleep(&g_wait_up, &g_bio_run_up.bio_queue_lock, - PRIBIO | PDROP, "-", hz/10); + PRIBIO | PDROP, "-", 0); } } From owner-svn-src-stable-8@FreeBSD.ORG Tue Nov 17 21:45:28 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D37A7106566C; Tue, 17 Nov 2009 21:45:28 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id C309A8FC08; Tue, 17 Nov 2009 21:45:28 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nAHLjSiA041515; Tue, 17 Nov 2009 21:45:28 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nAHLjSVZ041513; Tue, 17 Nov 2009 21:45:28 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <200911172145.nAHLjSVZ041513@svn.freebsd.org> From: Alexander Motin Date: Tue, 17 Nov 2009 21:45:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r199456 - stable/8/sys/geom X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Nov 2009 21:45:28 -0000 Author: mav Date: Tue Nov 17 21:45:28 2009 New Revision: 199456 URL: http://svn.freebsd.org/changeset/base/199456 Log: MFC r196964: Do not check proper request alignment here in geom_dev in production. It will be checked any way later by g_io_check() in g_io_schedule_down(). It is only needed here to not trigger panic from additional check, when INVARIANTS enabled. So cover it with #ifdef INVARIANTS. It saves two 64bit divisions per request. Modified: stable/8/sys/geom/geom_dev.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) Modified: stable/8/sys/geom/geom_dev.c ============================================================================== --- stable/8/sys/geom/geom_dev.c Tue Nov 17 21:43:42 2009 (r199455) +++ stable/8/sys/geom/geom_dev.c Tue Nov 17 21:45:28 2009 (r199456) @@ -371,14 +371,14 @@ g_dev_strategy(struct bio *bp) cp = dev->si_drv2; KASSERT(cp->acr || cp->acw, ("Consumer with zero access count in g_dev_strategy")); - +#ifdef INVARIANTS if ((bp->bio_offset % cp->provider->sectorsize) != 0 || (bp->bio_bcount % cp->provider->sectorsize) != 0) { bp->bio_resid = bp->bio_bcount; biofinish(bp, NULL, EINVAL); return; } - +#endif for (;;) { /* * XXX: This is not an ideal solution, but I belive it to From owner-svn-src-stable-8@FreeBSD.ORG Wed Nov 18 14:40:01 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 228141065672; Wed, 18 Nov 2009 14:40:01 +0000 (UTC) (envelope-from ume@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id EA6C48FC24; Wed, 18 Nov 2009 14:40:00 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nAIEe0q5074257; Wed, 18 Nov 2009 14:40:00 GMT (envelope-from ume@svn.freebsd.org) Received: (from ume@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nAIEe07c074255; Wed, 18 Nov 2009 14:40:00 GMT (envelope-from ume@svn.freebsd.org) Message-Id: <200911181440.nAIEe07c074255@svn.freebsd.org> From: Hajimu UMEMOTO Date: Wed, 18 Nov 2009 14:40:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r199478 - stable/8/lib/libc/net X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 18 Nov 2009 14:40:01 -0000 Author: ume Date: Wed Nov 18 14:40:00 2009 New Revision: 199478 URL: http://svn.freebsd.org/changeset/base/199478 Log: MFC r199188: ANSIfy. Modified: stable/8/lib/libc/net/ip6opt.c Directory Properties: stable/8/lib/libc/ (props changed) stable/8/lib/libc/stdtime/ (props changed) Modified: stable/8/lib/libc/net/ip6opt.c ============================================================================== --- stable/8/lib/libc/net/ip6opt.c Wed Nov 18 12:17:06 2009 (r199477) +++ stable/8/lib/libc/net/ip6opt.c Wed Nov 18 14:40:00 2009 (r199478) @@ -55,8 +55,7 @@ static void inet6_insert_padopt(u_char * * byte, the length byte, and the option data. */ int -inet6_option_space(nbytes) - int nbytes; +inet6_option_space(int nbytes) { nbytes += 2; /* we need space for nxt-hdr and length fields */ return(CMSG_SPACE((nbytes + 7) & ~7)); @@ -68,10 +67,7 @@ inet6_option_space(nbytes) * success or -1 on an error. */ int -inet6_option_init(bp, cmsgp, type) - void *bp; - struct cmsghdr **cmsgp; - int type; +inet6_option_init(void *bp, struct cmsghdr **cmsgp, int type) { struct cmsghdr *ch = (struct cmsghdr *)bp; @@ -98,11 +94,8 @@ inet6_option_init(bp, cmsgp, type) * earlier. It must have a value between 0 and 7, inclusive. */ int -inet6_option_append(cmsg, typep, multx, plusy) - struct cmsghdr *cmsg; - const u_int8_t *typep; - int multx; - int plusy; +inet6_option_append(struct cmsghdr *cmsg, const u_int8_t *typep, int multx, + int plusy) { int padlen, optlen, off; u_char *bp = (u_char *)cmsg + cmsg->cmsg_len; @@ -171,11 +164,7 @@ inet6_option_append(cmsg, typep, multx, * */ u_int8_t * -inet6_option_alloc(cmsg, datalen, multx, plusy) - struct cmsghdr *cmsg; - int datalen; - int multx; - int plusy; +inet6_option_alloc(struct cmsghdr *cmsg, int datalen, int multx, int plusy) { int padlen, off; u_int8_t *bp = (u_char *)cmsg + cmsg->cmsg_len; @@ -238,9 +227,7 @@ inet6_option_alloc(cmsg, datalen, multx, * (RFC 2292, 6.3.5) */ int -inet6_option_next(cmsg, tptrp) - const struct cmsghdr *cmsg; - u_int8_t **tptrp; +inet6_option_next(const struct cmsghdr *cmsg, u_int8_t **tptrp) { struct ip6_ext *ip6e; int hdrlen, optlen; @@ -296,10 +283,7 @@ inet6_option_next(cmsg, tptrp) * it's a typo. The variable should be type of u_int8_t **. */ int -inet6_option_find(cmsg, tptrp, type) - const struct cmsghdr *cmsg; - u_int8_t **tptrp; - int type; +inet6_option_find(const struct cmsghdr *cmsg, u_int8_t **tptrp, int type) { struct ip6_ext *ip6e; int hdrlen, optlen; @@ -352,8 +336,7 @@ inet6_option_find(cmsg, tptrp, type) * calculated length and the limitation of the buffer. */ static int -ip6optlen(opt, lim) - u_int8_t *opt, *lim; +ip6optlen(u_int8_t *opt, u_int8_t *lim) { int optlen; From owner-svn-src-stable-8@FreeBSD.ORG Wed Nov 18 15:35:03 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 91CCF106566B; Wed, 18 Nov 2009 15:35:03 +0000 (UTC) (envelope-from tuexen@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 801158FC21; Wed, 18 Nov 2009 15:35:03 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nAIFZ3Dv076261; Wed, 18 Nov 2009 15:35:03 GMT (envelope-from tuexen@svn.freebsd.org) Received: (from tuexen@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nAIFZ3kk076259; Wed, 18 Nov 2009 15:35:03 GMT (envelope-from tuexen@svn.freebsd.org) Message-Id: <200911181535.nAIFZ3kk076259@svn.freebsd.org> From: Michael Tuexen Date: Wed, 18 Nov 2009 15:35:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r199484 - stable/8/sys/netinet X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 18 Nov 2009 15:35:03 -0000 Author: tuexen Date: Wed Nov 18 15:35:03 2009 New Revision: 199484 URL: http://svn.freebsd.org/changeset/base/199484 Log: MFC 199477 Fix a bug where the system panics when a SHUTDOWN is received with an illegal TSN. This bug was reported by Irene Ruengeler. Approved by: re, rrs (mentor) Modified: stable/8/sys/netinet/sctp_input.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) Modified: stable/8/sys/netinet/sctp_input.c ============================================================================== --- stable/8/sys/netinet/sctp_input.c Wed Nov 18 15:14:47 2009 (r199483) +++ stable/8/sys/netinet/sctp_input.c Wed Nov 18 15:35:03 2009 (r199484) @@ -834,6 +834,9 @@ sctp_handle_shutdown(struct sctp_shutdow return; } else { sctp_update_acked(stcb, cp, net, abort_flag); + if (*abort_flag) { + return; + } } if (asoc->control_pdapi) { /* From owner-svn-src-stable-8@FreeBSD.ORG Thu Nov 19 12:07:00 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id AF4A21065679; Thu, 19 Nov 2009 12:07:00 +0000 (UTC) (envelope-from nyan@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 9DDEF8FC21; Thu, 19 Nov 2009 12:07:00 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nAJC704g005873; Thu, 19 Nov 2009 12:07:00 GMT (envelope-from nyan@svn.freebsd.org) Received: (from nyan@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nAJC70Rh005871; Thu, 19 Nov 2009 12:07:00 GMT (envelope-from nyan@svn.freebsd.org) Message-Id: <200911191207.nAJC70Rh005871@svn.freebsd.org> From: Takahashi Yoshihiro Date: Thu, 19 Nov 2009 12:07:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r199519 - stable/8/sys/i386/i386 X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 19 Nov 2009 12:07:00 -0000 Author: nyan Date: Thu Nov 19 12:07:00 2009 New Revision: 199519 URL: http://svn.freebsd.org/changeset/base/199519 Log: MFC: revision 199219 Fix cpu model for PODP5V83. It is P24T, not P54T. Also remove redundant 'Overdrive' word. Modified: stable/8/sys/i386/i386/identcpu.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) Modified: stable/8/sys/i386/i386/identcpu.c ============================================================================== --- stable/8/sys/i386/i386/identcpu.c Thu Nov 19 11:55:19 2009 (r199518) +++ stable/8/sys/i386/i386/identcpu.c Thu Nov 19 12:07:00 2009 (r199519) @@ -265,7 +265,7 @@ printcpuinfo(void) strcat(cpu_model, "/P54C"); break; case 0x30: - strcat(cpu_model, "/P54T Overdrive"); + strcat(cpu_model, "/P24T"); break; case 0x40: strcat(cpu_model, "/P55C"); From owner-svn-src-stable-8@FreeBSD.ORG Thu Nov 19 15:28:10 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B3808106568B; Thu, 19 Nov 2009 15:28:08 +0000 (UTC) (envelope-from rpaulo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id B8B7E8FC1E; Thu, 19 Nov 2009 15:28:08 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nAJFS8CX010419; Thu, 19 Nov 2009 15:28:08 GMT (envelope-from rpaulo@svn.freebsd.org) Received: (from rpaulo@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nAJFS8bD010417; Thu, 19 Nov 2009 15:28:08 GMT (envelope-from rpaulo@svn.freebsd.org) Message-Id: <200911191528.nAJFS8bD010417@svn.freebsd.org> From: Rui Paulo Date: Thu, 19 Nov 2009 15:28:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r199530 - stable/8/sys/geom/part X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 19 Nov 2009 15:28:10 -0000 Author: rpaulo Date: Thu Nov 19 15:28:08 2009 New Revision: 199530 URL: http://svn.freebsd.org/changeset/base/199530 Log: MFC 199232: Add a missing check for Apple HFS partitions. Modified: stable/8/sys/geom/part/g_part_gpt.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) Modified: stable/8/sys/geom/part/g_part_gpt.c ============================================================================== --- stable/8/sys/geom/part/g_part_gpt.c Thu Nov 19 14:33:03 2009 (r199529) +++ stable/8/sys/geom/part/g_part_gpt.c Thu Nov 19 15:28:08 2009 (r199530) @@ -708,6 +708,8 @@ g_part_gpt_type(struct g_part_table *bas return (g_part_alias_name(G_PART_ALIAS_FREEBSD_ZFS)); if (EQUUID(type, &gpt_uuid_mbr)) return (g_part_alias_name(G_PART_ALIAS_MBR)); + if (EQUUID(type, &gpt_uuid_apple_hfs)) + return (g_part_alias_name(G_PART_ALIAS_APPLE_HFS)); buf[0] = '!'; snprintf_uuid(buf + 1, bufsz - 1, type); return (buf); From owner-svn-src-stable-8@FreeBSD.ORG Thu Nov 19 20:40:11 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9B803106566C; Thu, 19 Nov 2009 20:40:11 +0000 (UTC) (envelope-from edwin@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 6EB878FC16; Thu, 19 Nov 2009 20:40:11 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nAJKeB94018451; Thu, 19 Nov 2009 20:40:11 GMT (envelope-from edwin@svn.freebsd.org) Received: (from edwin@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nAJKeBY9018448; Thu, 19 Nov 2009 20:40:11 GMT (envelope-from edwin@svn.freebsd.org) Message-Id: <200911192040.nAJKeBY9018448@svn.freebsd.org> From: Edwin Groothuis Date: Thu, 19 Nov 2009 20:40:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r199545 - stable/8/share/zoneinfo X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 19 Nov 2009 20:40:11 -0000 Author: edwin Date: Thu Nov 19 20:40:11 2009 New Revision: 199545 URL: http://svn.freebsd.org/changeset/base/199545 Log: MFC of r199336 MFV of tzdata2009s, r199334 - Fix (harmless) typo in the definitions of Antarctica/David - Fiji will go into DST from 29 November 2009 to 25 April 2010. Modified: stable/8/share/zoneinfo/antarctica stable/8/share/zoneinfo/australasia Directory Properties: stable/8/share/zoneinfo/ (props changed) Modified: stable/8/share/zoneinfo/antarctica ============================================================================== --- stable/8/share/zoneinfo/antarctica Thu Nov 19 20:30:18 2009 (r199544) +++ stable/8/share/zoneinfo/antarctica Thu Nov 19 20:40:11 2009 (r199545) @@ -1,5 +1,5 @@ #
-# @(#)antarctica	8.6
+# @(#)antarctica	8.7
 # This file is in the public domain, so clarified as of
 # 2009-05-17 by Arthur David Olson.
 
@@ -106,7 +106,7 @@ Zone Antarctica/Casey	0	-	zzz	1969
 Zone Antarctica/Davis	0	-	zzz	1957 Jan 13
 			7:00	-	DAVT	1964 Nov # Davis Time
 			0	-	zzz	1969 Feb
-			7:00	-	DAVT	2009 Oct 18 2:0
+			7:00	-	DAVT	2009 Oct 18 2:00
 			5:00	-	DAVT
 Zone Antarctica/Mawson	0	-	zzz	1954 Feb 13
 			6:00	-	MAWT	2009 Oct 18 2:00

Modified: stable/8/share/zoneinfo/australasia
==============================================================================
--- stable/8/share/zoneinfo/australasia	Thu Nov 19 20:30:18 2009	(r199544)
+++ stable/8/share/zoneinfo/australasia	Thu Nov 19 20:40:11 2009	(r199545)
@@ -1,5 +1,5 @@
 # 
-# @(#)australasia	8.14
+# @(#)australasia	8.15
 # This file is in the public domain, so clarified as of
 # 2009-05-17 by Arthur David Olson.
 
@@ -248,9 +248,30 @@ Zone	Indian/Cocos	6:27:40	-	LMT	1900
 			6:30	-	CCT	# Cocos Islands Time
 
 # Fiji
+# From Alexander Krivenyshev (2009-11-10):
+# According to Fiji Broadcasting Corporation,  Fiji plans to re-introduce DST
+# from November 29th 2009  to April 25th 2010.
+#
+# "Daylight savings to commence this month"
+# 
+# http://www.radiofiji.com.fj/fullstory.php?id=23719
+# 
+# or
+# 
+# http://www.worldtimezone.com/dst_news/dst_news_fiji01.html
+# 
+
+# From Steffen Thorsen (2009-11-10):
+# The Fiji Government has posted some more details about the approved
+# amendments:
+# 
+# http://www.fiji.gov.fj/publish/page_16198.shtml
+# 
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
 Rule	Fiji	1998	1999	-	Nov	Sun>=1	2:00	1:00	S
 Rule	Fiji	1999	2000	-	Feb	lastSun	3:00	0	-
+Rule	Fiji	2009	only	-	Nov	29	2:00	1:00	S
+Rule	Fiji	2010	only	-	Apr	25	3:00	0	-
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone	Pacific/Fiji	11:53:40 -	LMT	1915 Oct 26	# Suva
 			12:00	Fiji	FJ%sT	# Fiji Time

From owner-svn-src-stable-8@FreeBSD.ORG  Fri Nov 20 06:54:47 2009
Return-Path: 
Delivered-To: svn-src-stable-8@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 83B4C1065670;
	Fri, 20 Nov 2009 06:54:47 +0000 (UTC) (envelope-from ume@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 724108FC24;
	Fri, 20 Nov 2009 06:54:47 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nAK6slbe032074;
	Fri, 20 Nov 2009 06:54:47 GMT (envelope-from ume@svn.freebsd.org)
Received: (from ume@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nAK6slMl032072;
	Fri, 20 Nov 2009 06:54:47 GMT (envelope-from ume@svn.freebsd.org)
Message-Id: <200911200654.nAK6slMl032072@svn.freebsd.org>
From: Hajimu UMEMOTO 
Date: Fri, 20 Nov 2009 06:54:47 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org
X-SVN-Group: stable-8
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r199567 - stable/8/sys/netinet6
X-BeenThere: svn-src-stable-8@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for only the 8-stable src tree
	
List-Unsubscribe: , 
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: , 
	
X-List-Received-Date: Fri, 20 Nov 2009 06:54:47 -0000

Author: ume
Date: Fri Nov 20 06:54:47 2009
New Revision: 199567
URL: http://svn.freebsd.org/changeset/base/199567

Log:
  MFC r199225:
  - We are not guaranteed that we're not dropping a reference that
    we did not add.  Call LLE_REMREF() only when callout_stop()
    actually canceled a pending callout.
  - callout_reset() may cancel a pending callout.  When
    callout_reset() canceled a pending callout, call LLE_REMREF()
    to drop a reference for the canceled callout.

Modified:
  stable/8/sys/netinet6/nd6.c
Directory Properties:
  stable/8/sys/   (props changed)
  stable/8/sys/amd64/   (props changed)
  stable/8/sys/amd64/include/xen/   (props changed)
  stable/8/sys/arm/   (props changed)
  stable/8/sys/boot/   (props changed)
  stable/8/sys/bsm/   (props changed)
  stable/8/sys/cddl/   (props changed)
  stable/8/sys/cddl/contrib/opensolaris/   (props changed)
  stable/8/sys/compat/   (props changed)
  stable/8/sys/contrib/   (props changed)
  stable/8/sys/contrib/dev/acpica/   (props changed)
  stable/8/sys/contrib/pf/   (props changed)
  stable/8/sys/crypto/   (props changed)
  stable/8/sys/ddb/   (props changed)
  stable/8/sys/dev/xen/xenpci/   (props changed)
  stable/8/sys/fs/   (props changed)
  stable/8/sys/gdb/   (props changed)
  stable/8/sys/geom/   (props changed)
  stable/8/sys/gnu/   (props changed)
  stable/8/sys/i386/acpica/   (props changed)
  stable/8/sys/i386/bios/   (props changed)
  stable/8/sys/i386/compile/   (props changed)
  stable/8/sys/i386/cpufreq/   (props changed)
  stable/8/sys/i386/i386/   (props changed)
  stable/8/sys/i386/ibcs2/   (props changed)
  stable/8/sys/i386/include/   (props changed)
  stable/8/sys/i386/isa/   (props changed)
  stable/8/sys/i386/linux/   (props changed)
  stable/8/sys/i386/pci/   (props changed)
  stable/8/sys/i386/svr4/   (props changed)
  stable/8/sys/i386/xbox/   (props changed)
  stable/8/sys/i386/xen/   (props changed)
  stable/8/sys/ia64/   (props changed)
  stable/8/sys/isa/   (props changed)
  stable/8/sys/kern/   (props changed)
  stable/8/sys/kgssapi/   (props changed)
  stable/8/sys/libkern/   (props changed)
  stable/8/sys/mips/   (props changed)
  stable/8/sys/modules/   (props changed)
  stable/8/sys/net80211/   (props changed)
  stable/8/sys/netatalk/   (props changed)
  stable/8/sys/netgraph/   (props changed)
  stable/8/sys/netinet/   (props changed)
  stable/8/sys/netipsec/   (props changed)
  stable/8/sys/netipx/   (props changed)
  stable/8/sys/netnatm/   (props changed)
  stable/8/sys/netncp/   (props changed)
  stable/8/sys/netsmb/   (props changed)
  stable/8/sys/nfs/   (props changed)
  stable/8/sys/nfsclient/   (props changed)
  stable/8/sys/nfsserver/   (props changed)
  stable/8/sys/nlm/   (props changed)
  stable/8/sys/opencrypto/   (props changed)
  stable/8/sys/pc98/   (props changed)
  stable/8/sys/pci/   (props changed)
  stable/8/sys/powerpc/   (props changed)
  stable/8/sys/rpc/   (props changed)
  stable/8/sys/security/   (props changed)
  stable/8/sys/sparc64/   (props changed)
  stable/8/sys/sun4v/   (props changed)
  stable/8/sys/sys/   (props changed)
  stable/8/sys/tools/   (props changed)
  stable/8/sys/ufs/   (props changed)
  stable/8/sys/vm/   (props changed)
  stable/8/sys/xdr/   (props changed)
  stable/8/sys/xen/   (props changed)

Modified: stable/8/sys/netinet6/nd6.c
==============================================================================
--- stable/8/sys/netinet6/nd6.c	Fri Nov 20 03:14:54 2009	(r199566)
+++ stable/8/sys/netinet6/nd6.c	Fri Nov 20 06:54:47 2009	(r199567)
@@ -434,31 +434,27 @@ skip1:
 void
 nd6_llinfo_settimer_locked(struct llentry *ln, long tick)
 {
+	int canceled;
+
 	if (tick < 0) {
 		ln->la_expire = 0;
 		ln->ln_ntick = 0;
-		callout_stop(&ln->ln_timer_ch);
-		/*
-		 * XXX - do we know that there is
-		 * callout installed? i.e. are we 
-		 * guaranteed that we're not dropping
-		 * a reference that we did not add?
-		 * KMM 
-		 */
-		LLE_REMREF(ln);
+		canceled = callout_stop(&ln->ln_timer_ch);
 	} else {
 		ln->la_expire = time_second + tick / hz;
 		LLE_ADDREF(ln);
 		if (tick > INT_MAX) {
 			ln->ln_ntick = tick - INT_MAX;
-			callout_reset(&ln->ln_timer_ch, INT_MAX,
+			canceled = callout_reset(&ln->ln_timer_ch, INT_MAX,
 			    nd6_llinfo_timer, ln);
 		} else {
 			ln->ln_ntick = 0;
-			callout_reset(&ln->ln_timer_ch, tick,
+			canceled = callout_reset(&ln->ln_timer_ch, tick,
 			    nd6_llinfo_timer, ln);
 		}
 	}
+	if (canceled)
+		LLE_REMREF(ln);
 }
 
 void
@@ -1047,6 +1043,9 @@ nd6_free(struct llentry *ln, int gc)
 			else
 				nd6_llinfo_settimer(ln, (long)V_nd6_gctimer * hz);
 			splx(s);
+			LLE_WLOCK(ln);
+			LLE_REMREF(ln);
+			LLE_WUNLOCK(ln);
 			return (LIST_NEXT(ln, lle_next));
 		}
 

From owner-svn-src-stable-8@FreeBSD.ORG  Fri Nov 20 06:55:36 2009
Return-Path: 
Delivered-To: svn-src-stable-8@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 0F030106566C;
	Fri, 20 Nov 2009 06:55:36 +0000 (UTC)
	(envelope-from brueffer@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id F1CA58FC1B;
	Fri, 20 Nov 2009 06:55:35 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nAK6tZdl032150;
	Fri, 20 Nov 2009 06:55:35 GMT
	(envelope-from brueffer@svn.freebsd.org)
Received: (from brueffer@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nAK6tZjE032148;
	Fri, 20 Nov 2009 06:55:35 GMT
	(envelope-from brueffer@svn.freebsd.org)
Message-Id: <200911200655.nAK6tZjE032148@svn.freebsd.org>
From: Christian Brueffer 
Date: Fri, 20 Nov 2009 06:55:35 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org
X-SVN-Group: stable-8
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r199568 - stable/8/lib/libc/sys
X-BeenThere: svn-src-stable-8@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for only the 8-stable src tree
	
List-Unsubscribe: , 
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: , 
	
X-List-Received-Date: Fri, 20 Nov 2009 06:55:36 -0000

Author: brueffer
Date: Fri Nov 20 06:55:35 2009
New Revision: 199568
URL: http://svn.freebsd.org/changeset/base/199568

Log:
  MFC: r199255, r199257
  
  Improved the manpage description.  The committed wording
  was provided by jhb.
  
  Remove a note about vfork(4) going to be eliminated, it's here to stay.

Modified:
  stable/8/lib/libc/sys/vfork.2
Directory Properties:
  stable/8/lib/libc/   (props changed)
  stable/8/lib/libc/stdtime/   (props changed)

Modified: stable/8/lib/libc/sys/vfork.2
==============================================================================
--- stable/8/lib/libc/sys/vfork.2	Fri Nov 20 06:54:47 2009	(r199567)
+++ stable/8/lib/libc/sys/vfork.2	Fri Nov 20 06:55:35 2009	(r199568)
@@ -28,12 +28,12 @@
 .\"     @(#)vfork.2	8.1 (Berkeley) 6/4/93
 .\" $FreeBSD$
 .\"
-.Dd June 4, 1993
+.Dd November 13, 2009
 .Dt VFORK 2
 .Os
 .Sh NAME
 .Nm vfork
-.Nd spawn new process in a virtual memory efficient way
+.Nd create a new process without copying the address space
 .Sh LIBRARY
 .Lb libc
 .Sh SYNOPSIS
@@ -113,14 +113,6 @@ The
 system call appeared in
 .Bx 2.9 .
 .Sh BUGS
-This system call will be eliminated when proper system sharing
-mechanisms are implemented.
-Users should not depend on the memory
-sharing semantics of
-.Fn vfork
-as it will, in that case, be made synonymous to
-.Xr fork 2 .
-.Pp
 To avoid a possible deadlock situation,
 processes that are children in the middle
 of a

From owner-svn-src-stable-8@FreeBSD.ORG  Fri Nov 20 07:19:11 2009
Return-Path: 
Delivered-To: svn-src-stable-8@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 203EC1065694;
	Fri, 20 Nov 2009 07:19:11 +0000 (UTC)
	(envelope-from brueffer@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 0D3E38FC08;
	Fri, 20 Nov 2009 07:19:11 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nAK7JAoC032806;
	Fri, 20 Nov 2009 07:19:10 GMT
	(envelope-from brueffer@svn.freebsd.org)
Received: (from brueffer@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nAK7JALk032805;
	Fri, 20 Nov 2009 07:19:10 GMT
	(envelope-from brueffer@svn.freebsd.org)
Message-Id: <200911200719.nAK7JALk032805@svn.freebsd.org>
From: Christian Brueffer 
Date: Fri, 20 Nov 2009 07:19:10 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org
X-SVN-Group: stable-8
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r199571 - stable/8/share/man/man3
X-BeenThere: svn-src-stable-8@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for only the 8-stable src tree
	
List-Unsubscribe: , 
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: , 
	
X-List-Received-Date: Fri, 20 Nov 2009 07:19:11 -0000

Author: brueffer
Date: Fri Nov 20 07:19:09 2009
New Revision: 199571
URL: http://svn.freebsd.org/changeset/base/199571

Log:
  MFC: r199349
  
  Fix typo.

Modified:
  stable/8/share/man/man3/queue.3
Directory Properties:
  stable/8/share/man/man3/   (props changed)

Modified: stable/8/share/man/man3/queue.3
==============================================================================
--- stable/8/share/man/man3/queue.3	Fri Nov 20 07:05:38 2009	(r199570)
+++ stable/8/share/man/man3/queue.3	Fri Nov 20 07:19:09 2009	(r199571)
@@ -233,7 +233,7 @@ O(1) removal of any entry in the list.
 However:
 .Bl -enum -compact -offset indent
 .It
-Each elements requires two pointers rather than one.
+Each element requires two pointers rather than one.
 .It
 Code size and execution time of operations (except for removal) is about
 twice that of the singly-linked data-structures.

From owner-svn-src-stable-8@FreeBSD.ORG  Fri Nov 20 11:58:04 2009
Return-Path: 
Delivered-To: svn-src-stable-8@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id C4CA91065672;
	Fri, 20 Nov 2009 11:58:04 +0000 (UTC) (envelope-from bms@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id B297D8FC15;
	Fri, 20 Nov 2009 11:58:04 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nAKBw4Y6042907;
	Fri, 20 Nov 2009 11:58:04 GMT (envelope-from bms@svn.freebsd.org)
Received: (from bms@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nAKBw4cw042905;
	Fri, 20 Nov 2009 11:58:04 GMT (envelope-from bms@svn.freebsd.org)
Message-Id: <200911201158.nAKBw4cw042905@svn.freebsd.org>
From: Bruce M Simpson 
Date: Fri, 20 Nov 2009 11:58:04 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org
X-SVN-Group: stable-8
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r199577 - stable/8/sys/netinet6
X-BeenThere: svn-src-stable-8@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for only the 8-stable src tree
	
List-Unsubscribe: , 
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: , 
	
X-List-Received-Date: Fri, 20 Nov 2009 11:58:04 -0000

Author: bms
Date: Fri Nov 20 11:58:04 2009
New Revision: 199577
URL: http://svn.freebsd.org/changeset/base/199577

Log:
  MFC r199518:
    Adapt the fix for IGMPv2 in r199287 for the IPv6 stack.
    Only multicast routing is affected by the issue.

Modified:
  stable/8/sys/netinet6/raw_ip6.c
Directory Properties:
  stable/8/sys/   (props changed)
  stable/8/sys/amd64/   (props changed)
  stable/8/sys/amd64/include/xen/   (props changed)
  stable/8/sys/arm/   (props changed)
  stable/8/sys/boot/   (props changed)
  stable/8/sys/bsm/   (props changed)
  stable/8/sys/cddl/   (props changed)
  stable/8/sys/cddl/contrib/opensolaris/   (props changed)
  stable/8/sys/compat/   (props changed)
  stable/8/sys/contrib/   (props changed)
  stable/8/sys/contrib/dev/acpica/   (props changed)
  stable/8/sys/contrib/pf/   (props changed)
  stable/8/sys/crypto/   (props changed)
  stable/8/sys/ddb/   (props changed)
  stable/8/sys/dev/xen/xenpci/   (props changed)
  stable/8/sys/fs/   (props changed)
  stable/8/sys/gdb/   (props changed)
  stable/8/sys/geom/   (props changed)
  stable/8/sys/gnu/   (props changed)
  stable/8/sys/i386/acpica/   (props changed)
  stable/8/sys/i386/bios/   (props changed)
  stable/8/sys/i386/compile/   (props changed)
  stable/8/sys/i386/cpufreq/   (props changed)
  stable/8/sys/i386/i386/   (props changed)
  stable/8/sys/i386/ibcs2/   (props changed)
  stable/8/sys/i386/include/   (props changed)
  stable/8/sys/i386/isa/   (props changed)
  stable/8/sys/i386/linux/   (props changed)
  stable/8/sys/i386/pci/   (props changed)
  stable/8/sys/i386/svr4/   (props changed)
  stable/8/sys/i386/xbox/   (props changed)
  stable/8/sys/i386/xen/   (props changed)
  stable/8/sys/ia64/   (props changed)
  stable/8/sys/isa/   (props changed)
  stable/8/sys/kern/   (props changed)
  stable/8/sys/kgssapi/   (props changed)
  stable/8/sys/libkern/   (props changed)
  stable/8/sys/mips/   (props changed)
  stable/8/sys/modules/   (props changed)
  stable/8/sys/net80211/   (props changed)
  stable/8/sys/netatalk/   (props changed)
  stable/8/sys/netgraph/   (props changed)
  stable/8/sys/netinet/   (props changed)
  stable/8/sys/netipsec/   (props changed)
  stable/8/sys/netipx/   (props changed)
  stable/8/sys/netnatm/   (props changed)
  stable/8/sys/netncp/   (props changed)
  stable/8/sys/netsmb/   (props changed)
  stable/8/sys/nfs/   (props changed)
  stable/8/sys/nfsclient/   (props changed)
  stable/8/sys/nfsserver/   (props changed)
  stable/8/sys/nlm/   (props changed)
  stable/8/sys/opencrypto/   (props changed)
  stable/8/sys/pc98/   (props changed)
  stable/8/sys/pci/   (props changed)
  stable/8/sys/powerpc/   (props changed)
  stable/8/sys/rpc/   (props changed)
  stable/8/sys/security/   (props changed)
  stable/8/sys/sparc64/   (props changed)
  stable/8/sys/sun4v/   (props changed)
  stable/8/sys/sys/   (props changed)
  stable/8/sys/tools/   (props changed)
  stable/8/sys/ufs/   (props changed)
  stable/8/sys/vm/   (props changed)
  stable/8/sys/xdr/   (props changed)
  stable/8/sys/xen/   (props changed)

Modified: stable/8/sys/netinet6/raw_ip6.c
==============================================================================
--- stable/8/sys/netinet6/raw_ip6.c	Fri Nov 20 09:00:38 2009	(r199576)
+++ stable/8/sys/netinet6/raw_ip6.c	Fri Nov 20 11:58:04 2009	(r199577)
@@ -213,17 +213,39 @@ rip6_input(struct mbuf **mp, int *offp, 
 		 */
 		if (in6p->in6p_moptions &&
 		    IN6_IS_ADDR_MULTICAST(&ip6->ip6_dst)) {
-			struct sockaddr_in6 mcaddr;
+			/*
+			 * If the incoming datagram is for MLD, allow it
+			 * through unconditionally to the raw socket.
+			 *
+			 * Use the M_RTALERT_MLD flag to check for MLD
+			 * traffic without having to inspect the mbuf chain
+			 * more deeply, as all MLDv1/v2 host messages MUST
+			 * contain the Router Alert option.
+			 *
+			 * In the case of MLDv1, we may not have explicitly
+			 * joined the group, and may have set IFF_ALLMULTI
+			 * on the interface. im6o_mc_filter() may discard
+			 * control traffic we actually need to see.
+			 *
+			 * Userland multicast routing daemons should continue
+			 * filter the control traffic appropriately.
+			 */
 			int blocked;
 
-			bzero(&mcaddr, sizeof(struct sockaddr_in6));
-			mcaddr.sin6_len = sizeof(struct sockaddr_in6);
-			mcaddr.sin6_family = AF_INET6;
-			mcaddr.sin6_addr = ip6->ip6_dst;
-
-			blocked = im6o_mc_filter(in6p->in6p_moptions, ifp,
-			    (struct sockaddr *)&mcaddr,
-			    (struct sockaddr *)&fromsa);
+			blocked = MCAST_PASS;
+			if ((m->m_flags & M_RTALERT_MLD) == 0) {
+				struct sockaddr_in6 mcaddr;
+
+				bzero(&mcaddr, sizeof(struct sockaddr_in6));
+				mcaddr.sin6_len = sizeof(struct sockaddr_in6);
+				mcaddr.sin6_family = AF_INET6;
+				mcaddr.sin6_addr = ip6->ip6_dst;
+
+				blocked = im6o_mc_filter(in6p->in6p_moptions,
+				    ifp,
+				    (struct sockaddr *)&mcaddr,
+				    (struct sockaddr *)&fromsa);
+			}
 			if (blocked != MCAST_PASS) {
 				IP6STAT_INC(ip6s_notmember);
 				continue;

From owner-svn-src-stable-8@FreeBSD.ORG  Fri Nov 20 12:30:42 2009
Return-Path: 
Delivered-To: svn-src-stable-8@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id AD7741065670;
	Fri, 20 Nov 2009 12:30:42 +0000 (UTC) (envelope-from bms@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 9759A8FC0A;
	Fri, 20 Nov 2009 12:30:42 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nAKCUgQb043656;
	Fri, 20 Nov 2009 12:30:42 GMT (envelope-from bms@svn.freebsd.org)
Received: (from bms@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nAKCUg40043653;
	Fri, 20 Nov 2009 12:30:42 GMT (envelope-from bms@svn.freebsd.org)
Message-Id: <200911201230.nAKCUg40043653@svn.freebsd.org>
From: Bruce M Simpson 
Date: Fri, 20 Nov 2009 12:30:42 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org
X-SVN-Group: stable-8
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r199578 - in stable/8/sys: amd64 boot bsm crypto ddb
	gdb geom i386/acpica i386/bios i386/compile i386/cpufreq
	i386/i386 i386/ibcs2 i386/include i386/isa i386/linux
	i386/pci i386/svr4 i3...
X-BeenThere: svn-src-stable-8@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for only the 8-stable src tree
	
List-Unsubscribe: , 
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: , 
	
X-List-Received-Date: Fri, 20 Nov 2009 12:30:42 -0000

Author: bms
Date: Fri Nov 20 12:30:40 2009
New Revision: 199578
URL: http://svn.freebsd.org/changeset/base/199578

Log:
  MFC r199522..199528:
    Pullup IPv6 mcast SSM KPI fixes from HEAD, including fix for
    filter deallocation from Stef Walter.

Modified:
  stable/8/sys/netinet/in_mcast.c   (contents, props changed)
  stable/8/sys/netinet6/in6_mcast.c
Directory Properties:
  stable/8/sys/   (props changed)
  stable/8/sys/amd64/   (props changed)
  stable/8/sys/amd64/Makefile   (props changed)
  stable/8/sys/amd64/acpica/   (props changed)
  stable/8/sys/amd64/amd64/   (props changed)
  stable/8/sys/amd64/compile/   (props changed)
  stable/8/sys/amd64/conf/   (props changed)
  stable/8/sys/amd64/ia32/   (props changed)
  stable/8/sys/amd64/include/   (props changed)
  stable/8/sys/amd64/include/xen/   (props changed)
  stable/8/sys/amd64/isa/   (props changed)
  stable/8/sys/amd64/linux32/   (props changed)
  stable/8/sys/amd64/pci/   (props changed)
  stable/8/sys/arm/   (props changed)
  stable/8/sys/arm/arm/   (props changed)
  stable/8/sys/arm/at91/   (props changed)
  stable/8/sys/arm/compile/   (props changed)
  stable/8/sys/arm/conf/   (props changed)
  stable/8/sys/arm/include/   (props changed)
  stable/8/sys/arm/mv/   (props changed)
  stable/8/sys/arm/sa11x0/   (props changed)
  stable/8/sys/arm/xscale/   (props changed)
  stable/8/sys/boot/   (props changed)
  stable/8/sys/boot/Makefile   (props changed)
  stable/8/sys/boot/Makefile.inc   (props changed)
  stable/8/sys/boot/README   (props changed)
  stable/8/sys/boot/arm/   (props changed)
  stable/8/sys/boot/common/   (props changed)
  stable/8/sys/boot/efi/   (props changed)
  stable/8/sys/boot/ficl/   (props changed)
  stable/8/sys/boot/forth/   (props changed)
  stable/8/sys/boot/i386/   (props changed)
  stable/8/sys/boot/ia64/   (props changed)
  stable/8/sys/boot/ofw/   (props changed)
  stable/8/sys/boot/pc98/   (props changed)
  stable/8/sys/boot/powerpc/   (props changed)
  stable/8/sys/boot/sparc64/   (props changed)
  stable/8/sys/boot/uboot/   (props changed)
  stable/8/sys/boot/zfs/   (props changed)
  stable/8/sys/bsm/   (props changed)
  stable/8/sys/bsm/audit.h   (props changed)
  stable/8/sys/bsm/audit_domain.h   (props changed)
  stable/8/sys/bsm/audit_errno.h   (props changed)
  stable/8/sys/bsm/audit_fcntl.h   (props changed)
  stable/8/sys/bsm/audit_internal.h   (props changed)
  stable/8/sys/bsm/audit_kevents.h   (props changed)
  stable/8/sys/bsm/audit_record.h   (props changed)
  stable/8/sys/bsm/audit_socket_type.h   (props changed)
  stable/8/sys/cddl/   (props changed)
  stable/8/sys/cddl/boot/   (props changed)
  stable/8/sys/cddl/compat/   (props changed)
  stable/8/sys/cddl/contrib/   (props changed)
  stable/8/sys/cddl/contrib/opensolaris/   (props changed)
  stable/8/sys/cddl/dev/   (props changed)
  stable/8/sys/compat/   (props changed)
  stable/8/sys/compat/freebsd32/   (props changed)
  stable/8/sys/compat/ia32/   (props changed)
  stable/8/sys/compat/linprocfs/   (props changed)
  stable/8/sys/compat/linsysfs/   (props changed)
  stable/8/sys/compat/linux/   (props changed)
  stable/8/sys/compat/ndis/   (props changed)
  stable/8/sys/compat/netbsd/   (props changed)
  stable/8/sys/compat/svr4/   (props changed)
  stable/8/sys/contrib/   (props changed)
  stable/8/sys/contrib/altq/   (props changed)
  stable/8/sys/contrib/dev/   (props changed)
  stable/8/sys/contrib/dev/acpica/   (props changed)
  stable/8/sys/contrib/ia64/   (props changed)
  stable/8/sys/contrib/ipfilter/   (props changed)
  stable/8/sys/contrib/ngatm/   (props changed)
  stable/8/sys/contrib/pf/   (props changed)
  stable/8/sys/contrib/rdma/   (props changed)
  stable/8/sys/crypto/   (props changed)
  stable/8/sys/crypto/blowfish/   (props changed)
  stable/8/sys/crypto/camellia/   (props changed)
  stable/8/sys/crypto/des/   (props changed)
  stable/8/sys/crypto/rc4/   (props changed)
  stable/8/sys/crypto/rijndael/   (props changed)
  stable/8/sys/crypto/sha1.c   (props changed)
  stable/8/sys/crypto/sha1.h   (props changed)
  stable/8/sys/crypto/sha2/   (props changed)
  stable/8/sys/crypto/via/   (props changed)
  stable/8/sys/ddb/   (props changed)
  stable/8/sys/ddb/db_access.c   (props changed)
  stable/8/sys/ddb/db_access.h   (props changed)
  stable/8/sys/ddb/db_break.c   (props changed)
  stable/8/sys/ddb/db_break.h   (props changed)
  stable/8/sys/ddb/db_capture.c   (props changed)
  stable/8/sys/ddb/db_command.c   (props changed)
  stable/8/sys/ddb/db_command.h   (props changed)
  stable/8/sys/ddb/db_examine.c   (props changed)
  stable/8/sys/ddb/db_expr.c   (props changed)
  stable/8/sys/ddb/db_input.c   (props changed)
  stable/8/sys/ddb/db_lex.c   (props changed)
  stable/8/sys/ddb/db_lex.h   (props changed)
  stable/8/sys/ddb/db_main.c   (props changed)
  stable/8/sys/ddb/db_output.c   (props changed)
  stable/8/sys/ddb/db_output.h   (props changed)
  stable/8/sys/ddb/db_print.c   (props changed)
  stable/8/sys/ddb/db_ps.c   (props changed)
  stable/8/sys/ddb/db_run.c   (props changed)
  stable/8/sys/ddb/db_script.c   (props changed)
  stable/8/sys/ddb/db_sym.c   (props changed)
  stable/8/sys/ddb/db_sym.h   (props changed)
  stable/8/sys/ddb/db_textdump.c   (props changed)
  stable/8/sys/ddb/db_thread.c   (props changed)
  stable/8/sys/ddb/db_variables.c   (props changed)
  stable/8/sys/ddb/db_variables.h   (props changed)
  stable/8/sys/ddb/db_watch.c   (props changed)
  stable/8/sys/ddb/db_watch.h   (props changed)
  stable/8/sys/ddb/db_write_cmd.c   (props changed)
  stable/8/sys/ddb/ddb.h   (props changed)
  stable/8/sys/dev/xen/xenpci/   (props changed)
  stable/8/sys/fs/   (props changed)
  stable/8/sys/fs/cd9660/   (props changed)
  stable/8/sys/fs/coda/   (props changed)
  stable/8/sys/fs/deadfs/   (props changed)
  stable/8/sys/fs/devfs/   (props changed)
  stable/8/sys/fs/fdescfs/   (props changed)
  stable/8/sys/fs/fifofs/   (props changed)
  stable/8/sys/fs/hpfs/   (props changed)
  stable/8/sys/fs/msdosfs/   (props changed)
  stable/8/sys/fs/nfs/   (props changed)
  stable/8/sys/fs/nfsclient/   (props changed)
  stable/8/sys/fs/nfsserver/   (props changed)
  stable/8/sys/fs/ntfs/   (props changed)
  stable/8/sys/fs/nullfs/   (props changed)
  stable/8/sys/fs/nwfs/   (props changed)
  stable/8/sys/fs/portalfs/   (props changed)
  stable/8/sys/fs/procfs/   (props changed)
  stable/8/sys/fs/pseudofs/   (props changed)
  stable/8/sys/fs/smbfs/   (props changed)
  stable/8/sys/fs/tmpfs/   (props changed)
  stable/8/sys/fs/udf/   (props changed)
  stable/8/sys/fs/unionfs/   (props changed)
  stable/8/sys/gdb/   (props changed)
  stable/8/sys/gdb/gdb.h   (props changed)
  stable/8/sys/gdb/gdb_cons.c   (props changed)
  stable/8/sys/gdb/gdb_int.h   (props changed)
  stable/8/sys/gdb/gdb_main.c   (props changed)
  stable/8/sys/gdb/gdb_packet.c   (props changed)
  stable/8/sys/geom/   (props changed)
  stable/8/sys/geom/bde/   (props changed)
  stable/8/sys/geom/cache/   (props changed)
  stable/8/sys/geom/concat/   (props changed)
  stable/8/sys/geom/eli/   (props changed)
  stable/8/sys/geom/gate/   (props changed)
  stable/8/sys/geom/geom.h   (props changed)
  stable/8/sys/geom/geom_aes.c   (props changed)
  stable/8/sys/geom/geom_bsd.c   (props changed)
  stable/8/sys/geom/geom_bsd_enc.c   (props changed)
  stable/8/sys/geom/geom_ccd.c   (props changed)
  stable/8/sys/geom/geom_ctl.c   (props changed)
  stable/8/sys/geom/geom_ctl.h   (props changed)
  stable/8/sys/geom/geom_dev.c   (props changed)
  stable/8/sys/geom/geom_disk.c   (props changed)
  stable/8/sys/geom/geom_disk.h   (props changed)
  stable/8/sys/geom/geom_dump.c   (props changed)
  stable/8/sys/geom/geom_event.c   (props changed)
  stable/8/sys/geom/geom_fox.c   (props changed)
  stable/8/sys/geom/geom_int.h   (props changed)
  stable/8/sys/geom/geom_io.c   (props changed)
  stable/8/sys/geom/geom_kern.c   (props changed)
  stable/8/sys/geom/geom_mbr.c   (props changed)
  stable/8/sys/geom/geom_mbr_enc.c   (props changed)
  stable/8/sys/geom/geom_pc98.c   (props changed)
  stable/8/sys/geom/geom_pc98_enc.c   (props changed)
  stable/8/sys/geom/geom_redboot.c   (props changed)
  stable/8/sys/geom/geom_slice.c   (props changed)
  stable/8/sys/geom/geom_slice.h   (props changed)
  stable/8/sys/geom/geom_subr.c   (props changed)
  stable/8/sys/geom/geom_sunlabel.c   (props changed)
  stable/8/sys/geom/geom_sunlabel_enc.c   (props changed)
  stable/8/sys/geom/geom_vfs.c   (props changed)
  stable/8/sys/geom/geom_vfs.h   (props changed)
  stable/8/sys/geom/geom_vol_ffs.c   (props changed)
  stable/8/sys/geom/journal/   (props changed)
  stable/8/sys/geom/label/   (props changed)
  stable/8/sys/geom/linux_lvm/   (props changed)
  stable/8/sys/geom/mirror/   (props changed)
  stable/8/sys/geom/multipath/   (props changed)
  stable/8/sys/geom/nop/   (props changed)
  stable/8/sys/geom/notes   (props changed)
  stable/8/sys/geom/part/   (props changed)
  stable/8/sys/geom/raid3/   (props changed)
  stable/8/sys/geom/shsec/   (props changed)
  stable/8/sys/geom/stripe/   (props changed)
  stable/8/sys/geom/uzip/   (props changed)
  stable/8/sys/geom/vinum/   (props changed)
  stable/8/sys/geom/virstor/   (props changed)
  stable/8/sys/geom/zero/   (props changed)
  stable/8/sys/gnu/   (props changed)
  stable/8/sys/gnu/dev/   (props changed)
  stable/8/sys/gnu/fs/   (props changed)
  stable/8/sys/i386/acpica/   (props changed)
  stable/8/sys/i386/acpica/Makefile   (props changed)
  stable/8/sys/i386/acpica/OsdEnvironment.c   (props changed)
  stable/8/sys/i386/acpica/acpi_machdep.c   (props changed)
  stable/8/sys/i386/acpica/acpi_wakecode.S   (props changed)
  stable/8/sys/i386/acpica/acpi_wakeup.c   (props changed)
  stable/8/sys/i386/acpica/genwakecode.sh   (props changed)
  stable/8/sys/i386/acpica/madt.c   (props changed)
  stable/8/sys/i386/bios/   (props changed)
  stable/8/sys/i386/bios/apm.c   (props changed)
  stable/8/sys/i386/bios/apm.h   (props changed)
  stable/8/sys/i386/bios/mca_machdep.c   (props changed)
  stable/8/sys/i386/bios/mca_machdep.h   (props changed)
  stable/8/sys/i386/bios/smapi.c   (props changed)
  stable/8/sys/i386/bios/smapi_bios.S   (props changed)
  stable/8/sys/i386/bios/smbios.c   (props changed)
  stable/8/sys/i386/bios/vpd.c   (props changed)
  stable/8/sys/i386/compile/   (props changed)
  stable/8/sys/i386/compile/.cvsignore   (props changed)
  stable/8/sys/i386/cpufreq/   (props changed)
  stable/8/sys/i386/cpufreq/est.c   (props changed)
  stable/8/sys/i386/cpufreq/hwpstate.c   (props changed)
  stable/8/sys/i386/cpufreq/p4tcc.c   (props changed)
  stable/8/sys/i386/cpufreq/powernow.c   (props changed)
  stable/8/sys/i386/cpufreq/smist.c   (props changed)
  stable/8/sys/i386/i386/   (props changed)
  stable/8/sys/i386/i386/apic_vector.s   (props changed)
  stable/8/sys/i386/i386/atomic.c   (props changed)
  stable/8/sys/i386/i386/autoconf.c   (props changed)
  stable/8/sys/i386/i386/bios.c   (props changed)
  stable/8/sys/i386/i386/bioscall.s   (props changed)
  stable/8/sys/i386/i386/bpf_jit_machdep.c   (props changed)
  stable/8/sys/i386/i386/bpf_jit_machdep.h   (props changed)
  stable/8/sys/i386/i386/busdma_machdep.c   (props changed)
  stable/8/sys/i386/i386/db_disasm.c   (props changed)
  stable/8/sys/i386/i386/db_interface.c   (props changed)
  stable/8/sys/i386/i386/db_trace.c   (props changed)
  stable/8/sys/i386/i386/dump_machdep.c   (props changed)
  stable/8/sys/i386/i386/elan-mmcr.c   (props changed)
  stable/8/sys/i386/i386/elf_machdep.c   (props changed)
  stable/8/sys/i386/i386/exception.s   (props changed)
  stable/8/sys/i386/i386/gdb_machdep.c   (props changed)
  stable/8/sys/i386/i386/genassym.c   (props changed)
  stable/8/sys/i386/i386/geode.c   (props changed)
  stable/8/sys/i386/i386/i686_mem.c   (props changed)
  stable/8/sys/i386/i386/identcpu.c   (props changed)
  stable/8/sys/i386/i386/in_cksum.c   (props changed)
  stable/8/sys/i386/i386/initcpu.c   (props changed)
  stable/8/sys/i386/i386/intr_machdep.c   (props changed)
  stable/8/sys/i386/i386/io.c   (props changed)
  stable/8/sys/i386/i386/io_apic.c   (props changed)
  stable/8/sys/i386/i386/k6_mem.c   (props changed)
  stable/8/sys/i386/i386/legacy.c   (props changed)
  stable/8/sys/i386/i386/local_apic.c   (props changed)
  stable/8/sys/i386/i386/locore.s   (props changed)
  stable/8/sys/i386/i386/longrun.c   (props changed)
  stable/8/sys/i386/i386/machdep.c   (props changed)
  stable/8/sys/i386/i386/mca.c   (props changed)
  stable/8/sys/i386/i386/mem.c   (props changed)
  stable/8/sys/i386/i386/minidump_machdep.c   (props changed)
  stable/8/sys/i386/i386/mp_clock.c   (props changed)
  stable/8/sys/i386/i386/mp_machdep.c   (props changed)
  stable/8/sys/i386/i386/mp_watchdog.c   (props changed)
  stable/8/sys/i386/i386/mpboot.s   (props changed)
  stable/8/sys/i386/i386/mptable.c   (props changed)
  stable/8/sys/i386/i386/mptable_pci.c   (props changed)
  stable/8/sys/i386/i386/msi.c   (props changed)
  stable/8/sys/i386/i386/nexus.c   (props changed)
  stable/8/sys/i386/i386/perfmon.c   (props changed)
  stable/8/sys/i386/i386/pmap.c   (props changed)
  stable/8/sys/i386/i386/ptrace_machdep.c   (props changed)
  stable/8/sys/i386/i386/stack_machdep.c   (props changed)
  stable/8/sys/i386/i386/support.s   (props changed)
  stable/8/sys/i386/i386/swtch.s   (props changed)
  stable/8/sys/i386/i386/symbols.raw   (props changed)
  stable/8/sys/i386/i386/sys_machdep.c   (props changed)
  stable/8/sys/i386/i386/trap.c   (props changed)
  stable/8/sys/i386/i386/tsc.c   (props changed)
  stable/8/sys/i386/i386/uio_machdep.c   (props changed)
  stable/8/sys/i386/i386/vm86.c   (props changed)
  stable/8/sys/i386/i386/vm86bios.s   (props changed)
  stable/8/sys/i386/i386/vm_machdep.c   (props changed)
  stable/8/sys/i386/ibcs2/   (props changed)
  stable/8/sys/i386/ibcs2/Makefile   (props changed)
  stable/8/sys/i386/ibcs2/coff.h   (props changed)
  stable/8/sys/i386/ibcs2/ibcs2_dirent.h   (props changed)
  stable/8/sys/i386/ibcs2/ibcs2_errno.c   (props changed)
  stable/8/sys/i386/ibcs2/ibcs2_errno.h   (props changed)
  stable/8/sys/i386/ibcs2/ibcs2_fcntl.c   (props changed)
  stable/8/sys/i386/ibcs2/ibcs2_fcntl.h   (props changed)
  stable/8/sys/i386/ibcs2/ibcs2_ioctl.c   (props changed)
  stable/8/sys/i386/ibcs2/ibcs2_ioctl.h   (props changed)
  stable/8/sys/i386/ibcs2/ibcs2_ipc.c   (props changed)
  stable/8/sys/i386/ibcs2/ibcs2_ipc.h   (props changed)
  stable/8/sys/i386/ibcs2/ibcs2_isc.c   (props changed)
  stable/8/sys/i386/ibcs2/ibcs2_isc_syscall.h   (props changed)
  stable/8/sys/i386/ibcs2/ibcs2_isc_sysent.c   (props changed)
  stable/8/sys/i386/ibcs2/ibcs2_misc.c   (props changed)
  stable/8/sys/i386/ibcs2/ibcs2_mount.h   (props changed)
  stable/8/sys/i386/ibcs2/ibcs2_msg.c   (props changed)
  stable/8/sys/i386/ibcs2/ibcs2_other.c   (props changed)
  stable/8/sys/i386/ibcs2/ibcs2_proto.h   (props changed)
  stable/8/sys/i386/ibcs2/ibcs2_signal.c   (props changed)
  stable/8/sys/i386/ibcs2/ibcs2_signal.h   (props changed)
  stable/8/sys/i386/ibcs2/ibcs2_socksys.c   (props changed)
  stable/8/sys/i386/ibcs2/ibcs2_socksys.h   (props changed)
  stable/8/sys/i386/ibcs2/ibcs2_stat.c   (props changed)
  stable/8/sys/i386/ibcs2/ibcs2_stat.h   (props changed)
  stable/8/sys/i386/ibcs2/ibcs2_statfs.h   (props changed)
  stable/8/sys/i386/ibcs2/ibcs2_stropts.h   (props changed)
  stable/8/sys/i386/ibcs2/ibcs2_syscall.h   (props changed)
  stable/8/sys/i386/ibcs2/ibcs2_sysent.c   (props changed)
  stable/8/sys/i386/ibcs2/ibcs2_sysi86.c   (props changed)
  stable/8/sys/i386/ibcs2/ibcs2_sysvec.c   (props changed)
  stable/8/sys/i386/ibcs2/ibcs2_termios.h   (props changed)
  stable/8/sys/i386/ibcs2/ibcs2_time.h   (props changed)
  stable/8/sys/i386/ibcs2/ibcs2_types.h   (props changed)
  stable/8/sys/i386/ibcs2/ibcs2_unistd.h   (props changed)
  stable/8/sys/i386/ibcs2/ibcs2_ustat.h   (props changed)
  stable/8/sys/i386/ibcs2/ibcs2_util.c   (props changed)
  stable/8/sys/i386/ibcs2/ibcs2_util.h   (props changed)
  stable/8/sys/i386/ibcs2/ibcs2_utime.h   (props changed)
  stable/8/sys/i386/ibcs2/ibcs2_utsname.h   (props changed)
  stable/8/sys/i386/ibcs2/ibcs2_xenix.c   (props changed)
  stable/8/sys/i386/ibcs2/ibcs2_xenix.h   (props changed)
  stable/8/sys/i386/ibcs2/ibcs2_xenix_syscall.h   (props changed)
  stable/8/sys/i386/ibcs2/ibcs2_xenix_sysent.c   (props changed)
  stable/8/sys/i386/ibcs2/imgact_coff.c   (props changed)
  stable/8/sys/i386/ibcs2/syscalls.conf   (props changed)
  stable/8/sys/i386/ibcs2/syscalls.isc   (props changed)
  stable/8/sys/i386/ibcs2/syscalls.isc.conf   (props changed)
  stable/8/sys/i386/ibcs2/syscalls.master   (props changed)
  stable/8/sys/i386/ibcs2/syscalls.xenix   (props changed)
  stable/8/sys/i386/ibcs2/syscalls.xenix.conf   (props changed)
  stable/8/sys/i386/include/   (props changed)
  stable/8/sys/i386/include/_bus.h   (props changed)
  stable/8/sys/i386/include/_inttypes.h   (props changed)
  stable/8/sys/i386/include/_limits.h   (props changed)
  stable/8/sys/i386/include/_stdint.h   (props changed)
  stable/8/sys/i386/include/_types.h   (props changed)
  stable/8/sys/i386/include/acpica_machdep.h   (props changed)
  stable/8/sys/i386/include/apicreg.h   (props changed)
  stable/8/sys/i386/include/apicvar.h   (props changed)
  stable/8/sys/i386/include/apm_bios.h   (props changed)
  stable/8/sys/i386/include/apm_segments.h   (props changed)
  stable/8/sys/i386/include/asm.h   (props changed)
  stable/8/sys/i386/include/asmacros.h   (props changed)
  stable/8/sys/i386/include/atomic.h   (props changed)
  stable/8/sys/i386/include/bootinfo.h   (props changed)
  stable/8/sys/i386/include/bus.h   (props changed)
  stable/8/sys/i386/include/bus_dma.h   (props changed)
  stable/8/sys/i386/include/clock.h   (props changed)
  stable/8/sys/i386/include/cpu.h   (props changed)
  stable/8/sys/i386/include/cpufunc.h   (props changed)
  stable/8/sys/i386/include/cputypes.h   (props changed)
  stable/8/sys/i386/include/cserial.h   (props changed)
  stable/8/sys/i386/include/db_machdep.h   (props changed)
  stable/8/sys/i386/include/elan_mmcr.h   (props changed)
  stable/8/sys/i386/include/elf.h   (props changed)
  stable/8/sys/i386/include/endian.h   (props changed)
  stable/8/sys/i386/include/exec.h   (props changed)
  stable/8/sys/i386/include/float.h   (props changed)
  stable/8/sys/i386/include/floatingpoint.h   (props changed)
  stable/8/sys/i386/include/frame.h   (props changed)
  stable/8/sys/i386/include/gdb_machdep.h   (props changed)
  stable/8/sys/i386/include/ieeefp.h   (props changed)
  stable/8/sys/i386/include/if_wl_wavelan.h   (props changed)
  stable/8/sys/i386/include/in_cksum.h   (props changed)
  stable/8/sys/i386/include/intr_machdep.h   (props changed)
  stable/8/sys/i386/include/ioctl_bt848.h   (props changed)
  stable/8/sys/i386/include/ioctl_meteor.h   (props changed)
  stable/8/sys/i386/include/iodev.h   (props changed)
  stable/8/sys/i386/include/kdb.h   (props changed)
  stable/8/sys/i386/include/legacyvar.h   (props changed)
  stable/8/sys/i386/include/limits.h   (props changed)
  stable/8/sys/i386/include/mca.h   (props changed)
  stable/8/sys/i386/include/md_var.h   (props changed)
  stable/8/sys/i386/include/memdev.h   (props changed)
  stable/8/sys/i386/include/metadata.h   (props changed)
  stable/8/sys/i386/include/minidump.h   (props changed)
  stable/8/sys/i386/include/mp_watchdog.h   (props changed)
  stable/8/sys/i386/include/mptable.h   (props changed)
  stable/8/sys/i386/include/mutex.h   (props changed)
  stable/8/sys/i386/include/nexusvar.h   (props changed)
  stable/8/sys/i386/include/npx.h   (props changed)
  stable/8/sys/i386/include/param.h   (props changed)
  stable/8/sys/i386/include/pc/   (props changed)
  stable/8/sys/i386/include/pcaudioio.h   (props changed)
  stable/8/sys/i386/include/pcb.h   (props changed)
  stable/8/sys/i386/include/pcb_ext.h   (props changed)
  stable/8/sys/i386/include/pci_cfgreg.h   (props changed)
  stable/8/sys/i386/include/pcpu.h   (props changed)
  stable/8/sys/i386/include/perfmon.h   (props changed)
  stable/8/sys/i386/include/pmap.h   (props changed)
  stable/8/sys/i386/include/pmc_mdep.h   (props changed)
  stable/8/sys/i386/include/ppireg.h   (props changed)
  stable/8/sys/i386/include/privatespace.h   (props changed)
  stable/8/sys/i386/include/proc.h   (props changed)
  stable/8/sys/i386/include/profile.h   (props changed)
  stable/8/sys/i386/include/psl.h   (props changed)
  stable/8/sys/i386/include/ptrace.h   (props changed)
  stable/8/sys/i386/include/reg.h   (props changed)
  stable/8/sys/i386/include/reloc.h   (props changed)
  stable/8/sys/i386/include/resource.h   (props changed)
  stable/8/sys/i386/include/runq.h   (props changed)
  stable/8/sys/i386/include/segments.h   (props changed)
  stable/8/sys/i386/include/setjmp.h   (props changed)
  stable/8/sys/i386/include/sf_buf.h   (props changed)
  stable/8/sys/i386/include/sigframe.h   (props changed)
  stable/8/sys/i386/include/signal.h   (props changed)
  stable/8/sys/i386/include/smapi.h   (props changed)
  stable/8/sys/i386/include/smp.h   (props changed)
  stable/8/sys/i386/include/speaker.h   (props changed)
  stable/8/sys/i386/include/specialreg.h   (props changed)
  stable/8/sys/i386/include/stack.h   (props changed)
  stable/8/sys/i386/include/stdarg.h   (props changed)
  stable/8/sys/i386/include/sysarch.h   (props changed)
  stable/8/sys/i386/include/timerreg.h   (props changed)
  stable/8/sys/i386/include/trap.h   (props changed)
  stable/8/sys/i386/include/tss.h   (props changed)
  stable/8/sys/i386/include/ucontext.h   (props changed)
  stable/8/sys/i386/include/varargs.h   (props changed)
  stable/8/sys/i386/include/vm.h   (props changed)
  stable/8/sys/i386/include/vm86.h   (props changed)
  stable/8/sys/i386/include/vmparam.h   (props changed)
  stable/8/sys/i386/include/xbox.h   (props changed)
  stable/8/sys/i386/include/xen/   (props changed)
  stable/8/sys/i386/isa/   (props changed)
  stable/8/sys/i386/isa/atpic.c   (props changed)
  stable/8/sys/i386/isa/atpic_vector.s   (props changed)
  stable/8/sys/i386/isa/ccbque.h   (props changed)
  stable/8/sys/i386/isa/clock.c   (props changed)
  stable/8/sys/i386/isa/dpms.c   (props changed)
  stable/8/sys/i386/isa/elcr.c   (props changed)
  stable/8/sys/i386/isa/elink.c   (props changed)
  stable/8/sys/i386/isa/elink.h   (props changed)
  stable/8/sys/i386/isa/icu.h   (props changed)
  stable/8/sys/i386/isa/isa.c   (props changed)
  stable/8/sys/i386/isa/isa.h   (props changed)
  stable/8/sys/i386/isa/isa_dma.c   (props changed)
  stable/8/sys/i386/isa/nmi.c   (props changed)
  stable/8/sys/i386/isa/npx.c   (props changed)
  stable/8/sys/i386/isa/pmtimer.c   (props changed)
  stable/8/sys/i386/isa/prof_machdep.c   (props changed)
  stable/8/sys/i386/isa/spic.c   (props changed)
  stable/8/sys/i386/isa/spicreg.h   (props changed)
  stable/8/sys/i386/isa/vesa.c   (props changed)
  stable/8/sys/i386/linux/   (props changed)
  stable/8/sys/i386/linux/Makefile   (props changed)
  stable/8/sys/i386/linux/imgact_linux.c   (props changed)
  stable/8/sys/i386/linux/linux.h   (props changed)
  stable/8/sys/i386/linux/linux_dummy.c   (props changed)
  stable/8/sys/i386/linux/linux_genassym.c   (props changed)
  stable/8/sys/i386/linux/linux_ipc64.h   (props changed)
  stable/8/sys/i386/linux/linux_locore.s   (props changed)
  stable/8/sys/i386/linux/linux_machdep.c   (props changed)
  stable/8/sys/i386/linux/linux_proto.h   (props changed)
  stable/8/sys/i386/linux/linux_ptrace.c   (props changed)
  stable/8/sys/i386/linux/linux_support.s   (props changed)
  stable/8/sys/i386/linux/linux_syscall.h   (props changed)
  stable/8/sys/i386/linux/linux_sysent.c   (props changed)
  stable/8/sys/i386/linux/linux_sysvec.c   (props changed)
  stable/8/sys/i386/linux/syscalls.conf   (props changed)
  stable/8/sys/i386/linux/syscalls.master   (props changed)
  stable/8/sys/i386/pci/   (props changed)
  stable/8/sys/i386/pci/pci_bus.c   (props changed)
  stable/8/sys/i386/pci/pci_cfgreg.c   (props changed)
  stable/8/sys/i386/pci/pci_pir.c   (props changed)
  stable/8/sys/i386/svr4/   (props changed)
  stable/8/sys/i386/svr4/svr4_genassym.c   (props changed)
  stable/8/sys/i386/svr4/svr4_locore.s   (props changed)
  stable/8/sys/i386/svr4/svr4_machdep.c   (props changed)
  stable/8/sys/i386/svr4/svr4_machdep.h   (props changed)
  stable/8/sys/i386/xbox/   (props changed)
  stable/8/sys/i386/xbox/pic16l.s   (props changed)
  stable/8/sys/i386/xbox/xbox.c   (props changed)
  stable/8/sys/i386/xbox/xboxfb.c   (props changed)
  stable/8/sys/i386/xen/   (props changed)
  stable/8/sys/i386/xen/clock.c   (props changed)
  stable/8/sys/i386/xen/exception.s   (props changed)
  stable/8/sys/i386/xen/locore.s   (props changed)
  stable/8/sys/i386/xen/mp_machdep.c   (props changed)
  stable/8/sys/i386/xen/mptable.c   (props changed)
  stable/8/sys/i386/xen/pmap.c   (props changed)
  stable/8/sys/i386/xen/xen_clock_util.c   (props changed)
  stable/8/sys/i386/xen/xen_machdep.c   (props changed)
  stable/8/sys/i386/xen/xen_rtc.c   (props changed)
  stable/8/sys/ia64/   (props changed)
  stable/8/sys/ia64/acpica/   (props changed)
  stable/8/sys/ia64/compile/   (props changed)
  stable/8/sys/ia64/conf/   (props changed)
  stable/8/sys/ia64/disasm/   (props changed)
  stable/8/sys/ia64/ia32/   (props changed)
  stable/8/sys/ia64/ia64/   (props changed)
  stable/8/sys/ia64/include/   (props changed)
  stable/8/sys/ia64/isa/   (props changed)
  stable/8/sys/ia64/pci/   (props changed)
  stable/8/sys/isa/   (props changed)
  stable/8/sys/isa/atrtc.c   (props changed)
  stable/8/sys/isa/isa_common.c   (props changed)
  stable/8/sys/isa/isa_common.h   (props changed)
  stable/8/sys/isa/isa_dmareg.h   (props changed)
  stable/8/sys/isa/isa_if.m   (props changed)
  stable/8/sys/isa/isahint.c   (props changed)
  stable/8/sys/isa/isareg.h   (props changed)
  stable/8/sys/isa/isavar.h   (props changed)
  stable/8/sys/isa/orm.c   (props changed)
  stable/8/sys/isa/pnp.c   (props changed)
  stable/8/sys/isa/pnpparse.c   (props changed)
  stable/8/sys/isa/pnpreg.h   (props changed)
  stable/8/sys/isa/pnpvar.h   (props changed)
  stable/8/sys/isa/rtc.h   (props changed)
  stable/8/sys/isa/syscons_isa.c   (props changed)
  stable/8/sys/isa/vga_isa.c   (props changed)
  stable/8/sys/kern/   (props changed)
  stable/8/sys/kern/Make.tags.inc   (props changed)
  stable/8/sys/kern/Makefile   (props changed)
  stable/8/sys/kern/bus_if.m   (props changed)
  stable/8/sys/kern/clock_if.m   (props changed)
  stable/8/sys/kern/cpufreq_if.m   (props changed)
  stable/8/sys/kern/device_if.m   (props changed)
  stable/8/sys/kern/genassym.sh   (props changed)
  stable/8/sys/kern/imgact_aout.c   (props changed)
  stable/8/sys/kern/imgact_elf.c   (props changed)
  stable/8/sys/kern/imgact_elf32.c   (props changed)
  stable/8/sys/kern/imgact_elf64.c   (props changed)
  stable/8/sys/kern/imgact_gzip.c   (props changed)
  stable/8/sys/kern/imgact_shell.c   (props changed)
  stable/8/sys/kern/inflate.c   (props changed)
  stable/8/sys/kern/init_main.c   (props changed)
  stable/8/sys/kern/init_sysent.c   (props changed)
  stable/8/sys/kern/kern_acct.c   (props changed)
  stable/8/sys/kern/kern_alq.c   (props changed)
  stable/8/sys/kern/kern_clock.c   (props changed)
  stable/8/sys/kern/kern_condvar.c   (props changed)
  stable/8/sys/kern/kern_conf.c   (props changed)
  stable/8/sys/kern/kern_cons.c   (props changed)
  stable/8/sys/kern/kern_context.c   (props changed)
  stable/8/sys/kern/kern_cpu.c   (props changed)
  stable/8/sys/kern/kern_cpuset.c   (props changed)
  stable/8/sys/kern/kern_ctf.c   (props changed)
  stable/8/sys/kern/kern_descrip.c   (props changed)
  stable/8/sys/kern/kern_dtrace.c   (props changed)
  stable/8/sys/kern/kern_environment.c   (props changed)
  stable/8/sys/kern/kern_event.c   (props changed)
  stable/8/sys/kern/kern_exec.c   (props changed)
  stable/8/sys/kern/kern_exit.c   (props changed)
  stable/8/sys/kern/kern_fail.c   (props changed)
  stable/8/sys/kern/kern_fork.c   (props changed)
  stable/8/sys/kern/kern_idle.c   (props changed)
  stable/8/sys/kern/kern_intr.c   (props changed)
  stable/8/sys/kern/kern_jail.c   (props changed)
  stable/8/sys/kern/kern_kthread.c   (props changed)
  stable/8/sys/kern/kern_ktr.c   (props changed)
  stable/8/sys/kern/kern_ktrace.c   (props changed)
  stable/8/sys/kern/kern_linker.c   (props changed)
  stable/8/sys/kern/kern_lock.c   (props changed)
  stable/8/sys/kern/kern_lockf.c   (props changed)
  stable/8/sys/kern/kern_lockstat.c   (props changed)
  stable/8/sys/kern/kern_malloc.c   (props changed)
  stable/8/sys/kern/kern_mbuf.c   (props changed)
  stable/8/sys/kern/kern_mib.c   (props changed)
  stable/8/sys/kern/kern_module.c   (props changed)
  stable/8/sys/kern/kern_mtxpool.c   (props changed)
  stable/8/sys/kern/kern_mutex.c   (props changed)
  stable/8/sys/kern/kern_ntptime.c   (props changed)
  stable/8/sys/kern/kern_osd.c   (props changed)
  stable/8/sys/kern/kern_physio.c   (props changed)
  stable/8/sys/kern/kern_pmc.c   (props changed)
  stable/8/sys/kern/kern_poll.c   (props changed)
  stable/8/sys/kern/kern_priv.c   (props changed)
  stable/8/sys/kern/kern_proc.c   (props changed)
  stable/8/sys/kern/kern_prot.c   (props changed)
  stable/8/sys/kern/kern_resource.c   (props changed)
  stable/8/sys/kern/kern_rmlock.c   (props changed)
  stable/8/sys/kern/kern_rwlock.c   (props changed)
  stable/8/sys/kern/kern_sdt.c   (props changed)
  stable/8/sys/kern/kern_sema.c   (props changed)
  stable/8/sys/kern/kern_shutdown.c   (props changed)
  stable/8/sys/kern/kern_sig.c   (props changed)
  stable/8/sys/kern/kern_subr.c   (props changed)
  stable/8/sys/kern/kern_switch.c   (props changed)
  stable/8/sys/kern/kern_sx.c   (props changed)
  stable/8/sys/kern/kern_synch.c   (props changed)
  stable/8/sys/kern/kern_syscalls.c   (props changed)
  stable/8/sys/kern/kern_sysctl.c   (props changed)
  stable/8/sys/kern/kern_tc.c   (props changed)
  stable/8/sys/kern/kern_thr.c   (props changed)
  stable/8/sys/kern/kern_thread.c   (props changed)
  stable/8/sys/kern/kern_time.c   (props changed)
  stable/8/sys/kern/kern_timeout.c   (props changed)
  stable/8/sys/kern/kern_umtx.c   (props changed)
  stable/8/sys/kern/kern_uuid.c   (props changed)
  stable/8/sys/kern/kern_xxx.c   (props changed)
  stable/8/sys/kern/ksched.c   (props changed)
  stable/8/sys/kern/link_elf.c   (props changed)
  stable/8/sys/kern/link_elf_obj.c   (props changed)
  stable/8/sys/kern/linker_if.m   (props changed)
  stable/8/sys/kern/makesyscalls.sh   (props changed)
  stable/8/sys/kern/md4c.c   (props changed)
  stable/8/sys/kern/md5c.c   (props changed)
  stable/8/sys/kern/p1003_1b.c   (props changed)
  stable/8/sys/kern/posix4_mib.c   (props changed)
  stable/8/sys/kern/sched_4bsd.c   (props changed)
  stable/8/sys/kern/sched_ule.c   (props changed)
  stable/8/sys/kern/serdev_if.m   (props changed)
  stable/8/sys/kern/stack_protector.c   (props changed)
  stable/8/sys/kern/subr_acl_nfs4.c   (props changed)
  stable/8/sys/kern/subr_acl_posix1e.c   (props changed)
  stable/8/sys/kern/subr_autoconf.c   (props changed)
  stable/8/sys/kern/subr_blist.c   (props changed)
  stable/8/sys/kern/subr_bufring.c   (props changed)
  stable/8/sys/kern/subr_bus.c   (props changed)
  stable/8/sys/kern/subr_clock.c   (props changed)
  stable/8/sys/kern/subr_devstat.c   (props changed)
  stable/8/sys/kern/subr_disk.c   (props changed)
  stable/8/sys/kern/subr_eventhandler.c   (props changed)
  stable/8/sys/kern/subr_fattime.c   (props changed)
  stable/8/sys/kern/subr_firmware.c   (props changed)
  stable/8/sys/kern/subr_hints.c   (props changed)
  stable/8/sys/kern/subr_kdb.c   (props changed)
  stable/8/sys/kern/subr_kobj.c   (props changed)
  stable/8/sys/kern/subr_lock.c   (props changed)
  stable/8/sys/kern/subr_log.c   (props changed)
  stable/8/sys/kern/subr_mbpool.c   (props changed)
  stable/8/sys/kern/subr_mchain.c   (props changed)
  stable/8/sys/kern/subr_module.c   (props changed)
  stable/8/sys/kern/subr_msgbuf.c   (props changed)
  stable/8/sys/kern/subr_param.c   (props changed)
  stable/8/sys/kern/subr_pcpu.c   (props changed)
  stable/8/sys/kern/subr_power.c   (props changed)
  stable/8/sys/kern/subr_prf.c   (props changed)
  stable/8/sys/kern/subr_prof.c   (props changed)
  stable/8/sys/kern/subr_rman.c   (props changed)
  stable/8/sys/kern/subr_rtc.c   (props changed)
  stable/8/sys/kern/subr_sbuf.c   (props changed)
  stable/8/sys/kern/subr_scanf.c   (props changed)
  stable/8/sys/kern/subr_sglist.c   (props changed)
  stable/8/sys/kern/subr_sleepqueue.c   (props changed)
  stable/8/sys/kern/subr_smp.c   (props changed)
  stable/8/sys/kern/subr_stack.c   (props changed)
  stable/8/sys/kern/subr_taskqueue.c   (props changed)
  stable/8/sys/kern/subr_trap.c   (props changed)
  stable/8/sys/kern/subr_turnstile.c   (props changed)
  stable/8/sys/kern/subr_unit.c   (props changed)
  stable/8/sys/kern/subr_witness.c   (props changed)
  stable/8/sys/kern/sys_generic.c   (props changed)
  stable/8/sys/kern/sys_pipe.c   (props changed)
  stable/8/sys/kern/sys_process.c   (props changed)
  stable/8/sys/kern/sys_socket.c   (props changed)
  stable/8/sys/kern/syscalls.c   (props changed)
  stable/8/sys/kern/syscalls.master   (props changed)
  stable/8/sys/kern/systrace_args.c   (props changed)
  stable/8/sys/kern/sysv_ipc.c   (props changed)
  stable/8/sys/kern/sysv_msg.c   (props changed)
  stable/8/sys/kern/sysv_sem.c   (props changed)
  stable/8/sys/kern/sysv_shm.c   (props changed)
  stable/8/sys/kern/tty.c   (props changed)
  stable/8/sys/kern/tty_compat.c   (props changed)
  stable/8/sys/kern/tty_info.c   (props changed)
  stable/8/sys/kern/tty_inq.c   (props changed)
  stable/8/sys/kern/tty_outq.c   (props changed)
  stable/8/sys/kern/tty_pts.c   (props changed)
  stable/8/sys/kern/tty_pty.c   (props changed)
  stable/8/sys/kern/tty_tty.c   (props changed)
  stable/8/sys/kern/tty_ttydisc.c   (props changed)
  stable/8/sys/kern/uipc_accf.c   (props changed)
  stable/8/sys/kern/uipc_cow.c   (props changed)
  stable/8/sys/kern/uipc_debug.c   (props changed)
  stable/8/sys/kern/uipc_domain.c   (props changed)
  stable/8/sys/kern/uipc_mbuf.c   (props changed)
  stable/8/sys/kern/uipc_mbuf2.c   (props changed)
  stable/8/sys/kern/uipc_mqueue.c   (props changed)
  stable/8/sys/kern/uipc_sem.c   (props changed)
  stable/8/sys/kern/uipc_shm.c   (props changed)
  stable/8/sys/kern/uipc_sockbuf.c   (props changed)
  stable/8/sys/kern/uipc_socket.c   (props changed)
  stable/8/sys/kern/uipc_syscalls.c   (props changed)
  stable/8/sys/kern/uipc_usrreq.c   (props changed)
  stable/8/sys/kern/vfs_acl.c   (props changed)
  stable/8/sys/kern/vfs_aio.c   (props changed)
  stable/8/sys/kern/vfs_bio.c   (props changed)
  stable/8/sys/kern/vfs_cache.c   (props changed)
  stable/8/sys/kern/vfs_cluster.c   (props changed)
  stable/8/sys/kern/vfs_default.c   (props changed)
  stable/8/sys/kern/vfs_export.c   (props changed)
  stable/8/sys/kern/vfs_extattr.c   (props changed)
  stable/8/sys/kern/vfs_hash.c   (props changed)
  stable/8/sys/kern/vfs_init.c   (props changed)
  stable/8/sys/kern/vfs_lookup.c   (props changed)
  stable/8/sys/kern/vfs_mount.c   (props changed)
  stable/8/sys/kern/vfs_subr.c   (props changed)
  stable/8/sys/kern/vfs_syscalls.c   (props changed)
  stable/8/sys/kern/vfs_vnops.c   (props changed)
  stable/8/sys/kern/vnode_if.src   (props changed)
  stable/8/sys/kgssapi/   (props changed)
  stable/8/sys/kgssapi/gss_accept_sec_context.c   (props changed)
  stable/8/sys/kgssapi/gss_acquire_cred.c   (props changed)
  stable/8/sys/kgssapi/gss_add_oid_set_member.c   (props changed)
  stable/8/sys/kgssapi/gss_canonicalize_name.c   (props changed)
  stable/8/sys/kgssapi/gss_create_empty_oid_set.c   (props changed)
  stable/8/sys/kgssapi/gss_delete_sec_context.c   (props changed)
  stable/8/sys/kgssapi/gss_display_status.c   (props changed)
  stable/8/sys/kgssapi/gss_export_name.c   (props changed)
  stable/8/sys/kgssapi/gss_get_mic.c   (props changed)
  stable/8/sys/kgssapi/gss_impl.c   (props changed)
  stable/8/sys/kgssapi/gss_import_name.c   (props changed)
  stable/8/sys/kgssapi/gss_init_sec_context.c   (props changed)
  stable/8/sys/kgssapi/gss_names.c   (props changed)
  stable/8/sys/kgssapi/gss_pname_to_uid.c   (props changed)
  stable/8/sys/kgssapi/gss_release_buffer.c   (props changed)
  stable/8/sys/kgssapi/gss_release_cred.c   (props changed)
  stable/8/sys/kgssapi/gss_release_name.c   (props changed)
  stable/8/sys/kgssapi/gss_release_oid_set.c   (props changed)
  stable/8/sys/kgssapi/gss_set_cred_option.c   (props changed)
  stable/8/sys/kgssapi/gss_test_oid_set_member.c   (props changed)
  stable/8/sys/kgssapi/gss_unwrap.c   (props changed)
  stable/8/sys/kgssapi/gss_verify_mic.c   (props changed)
  stable/8/sys/kgssapi/gss_wrap.c   (props changed)
  stable/8/sys/kgssapi/gss_wrap_size_limit.c   (props changed)
  stable/8/sys/kgssapi/gssapi.h   (props changed)
  stable/8/sys/kgssapi/gssapi_impl.h   (props changed)
  stable/8/sys/kgssapi/gssd.x   (props changed)
  stable/8/sys/kgssapi/gssd_prot.c   (props changed)
  stable/8/sys/kgssapi/gsstest.c   (props changed)
  stable/8/sys/kgssapi/kgss_if.m   (props changed)
  stable/8/sys/kgssapi/krb5/   (props changed)
  stable/8/sys/libkern/   (props changed)
  stable/8/sys/libkern/arc4random.c   (props changed)
  stable/8/sys/libkern/arm/   (props changed)
  stable/8/sys/libkern/ashldi3.c   (props changed)
  stable/8/sys/libkern/ashrdi3.c   (props changed)
  stable/8/sys/libkern/bcd.c   (props changed)
  stable/8/sys/libkern/bcmp.c   (props changed)
  stable/8/sys/libkern/bsearch.c   (props changed)
  stable/8/sys/libkern/cmpdi2.c   (props changed)
  stable/8/sys/libkern/crc32.c   (props changed)
  stable/8/sys/libkern/divdi3.c   (props changed)
  stable/8/sys/libkern/ffs.c   (props changed)
  stable/8/sys/libkern/ffsl.c   (props changed)
  stable/8/sys/libkern/fls.c   (props changed)
  stable/8/sys/libkern/flsl.c   (props changed)
  stable/8/sys/libkern/fnmatch.c   (props changed)
  stable/8/sys/libkern/gets.c   (props changed)
  stable/8/sys/libkern/ia64/   (props changed)
  stable/8/sys/libkern/iconv.c   (props changed)
  stable/8/sys/libkern/iconv_converter_if.m   (props changed)
  stable/8/sys/libkern/iconv_xlat.c   (props changed)
  stable/8/sys/libkern/iconv_xlat16.c   (props changed)
  stable/8/sys/libkern/index.c   (props changed)
  stable/8/sys/libkern/inet_ntoa.c   (props changed)
  stable/8/sys/libkern/jenkins.h   (props changed)
  stable/8/sys/libkern/lshrdi3.c   (props changed)
  stable/8/sys/libkern/mcount.c   (props changed)
  stable/8/sys/libkern/memcmp.c   (props changed)
  stable/8/sys/libkern/memmove.c   (props changed)
  stable/8/sys/libkern/memset.c   (props changed)
  stable/8/sys/libkern/moddi3.c   (props changed)
  stable/8/sys/libkern/qdivrem.c   (props changed)
  stable/8/sys/libkern/qsort.c   (props changed)
  stable/8/sys/libkern/qsort_r.c   (props changed)
  stable/8/sys/libkern/quad.h   (props changed)
  stable/8/sys/libkern/random.c   (props changed)
  stable/8/sys/libkern/rindex.c   (props changed)
  stable/8/sys/libkern/scanc.c   (props changed)
  stable/8/sys/libkern/skpc.c   (props changed)
  stable/8/sys/libkern/strcasecmp.c   (props changed)
  stable/8/sys/libkern/strcat.c   (props changed)
  stable/8/sys/libkern/strcmp.c   (props changed)
  stable/8/sys/libkern/strcpy.c   (props changed)
  stable/8/sys/libkern/strcspn.c   (props changed)
  stable/8/sys/libkern/strdup.c   (props changed)
  stable/8/sys/libkern/strlcat.c   (props changed)
  stable/8/sys/libkern/strlcpy.c   (props changed)
  stable/8/sys/libkern/strlen.c   (props changed)
  stable/8/sys/libkern/strncmp.c   (props changed)
  stable/8/sys/libkern/strncpy.c   (props changed)
  stable/8/sys/libkern/strsep.c   (props changed)
  stable/8/sys/libkern/strspn.c   (props changed)
  stable/8/sys/libkern/strstr.c   (props changed)
  stable/8/sys/libkern/strtol.c   (props changed)
  stable/8/sys/libkern/strtoq.c   (props changed)
  stable/8/sys/libkern/strtoul.c   (props changed)
  stable/8/sys/libkern/strtouq.c   (props changed)
  stable/8/sys/libkern/strvalid.c   (props changed)
  stable/8/sys/libkern/ucmpdi2.c   (props changed)
  stable/8/sys/libkern/udivdi3.c   (props changed)
  stable/8/sys/libkern/umoddi3.c   (props changed)
  stable/8/sys/mips/   (props changed)
  stable/8/sys/mips/adm5120/   (props changed)
  stable/8/sys/mips/compile/   (props changed)
  stable/8/sys/mips/conf/   (props changed)
  stable/8/sys/mips/idt/   (props changed)
  stable/8/sys/mips/include/   (props changed)
  stable/8/sys/mips/malta/   (props changed)
  stable/8/sys/mips/mips/   (props changed)
  stable/8/sys/mips/sentry5/   (props changed)
  stable/8/sys/modules/   (props changed)
  stable/8/sys/modules/3dfx/   (props changed)
  stable/8/sys/modules/3dfx_linux/   (props changed)
  stable/8/sys/modules/Makefile   (props changed)
  stable/8/sys/modules/Makefile.inc   (props changed)
  stable/8/sys/modules/aac/   (props changed)
  stable/8/sys/modules/accf_data/   (props changed)
  stable/8/sys/modules/accf_dns/   (props changed)
  stable/8/sys/modules/accf_http/   (props changed)
  stable/8/sys/modules/acpi/   (props changed)
  stable/8/sys/modules/ae/   (props changed)
  stable/8/sys/modules/age/   (props changed)
  stable/8/sys/modules/agp/   (props changed)
  stable/8/sys/modules/aha/   (props changed)
  stable/8/sys/modules/ahb/   (props changed)
  stable/8/sys/modules/ahci/   (props changed)
  stable/8/sys/modules/aic/   (props changed)
  stable/8/sys/modules/aic7xxx/   (props changed)
  stable/8/sys/modules/aio/   (props changed)
  stable/8/sys/modules/alc/   (props changed)
  stable/8/sys/modules/ale/   (props changed)
  stable/8/sys/modules/amd/   (props changed)
  stable/8/sys/modules/amdtemp/   (props changed)
  stable/8/sys/modules/amr/   (props changed)
  stable/8/sys/modules/an/   (props changed)
  stable/8/sys/modules/aout/   (props changed)
  stable/8/sys/modules/apm/   (props changed)
  stable/8/sys/modules/arcmsr/   (props changed)
  stable/8/sys/modules/arcnet/   (props changed)
  stable/8/sys/modules/asmc/   (props changed)
  stable/8/sys/modules/asr/   (props changed)
  stable/8/sys/modules/ata/   (props changed)
  stable/8/sys/modules/ath/   (props changed)
  stable/8/sys/modules/auxio/   (props changed)
  stable/8/sys/modules/bce/   (props changed)
  stable/8/sys/modules/bfe/   (props changed)
  stable/8/sys/modules/bge/   (props changed)
  stable/8/sys/modules/bios/   (props changed)
  stable/8/sys/modules/bktr/   (props changed)
  stable/8/sys/modules/bm/   (props changed)
  stable/8/sys/modules/bridgestp/   (props changed)
  stable/8/sys/modules/bwi/   (props changed)
  stable/8/sys/modules/cam/   (props changed)
  stable/8/sys/modules/canbepm/   (props changed)
  stable/8/sys/modules/canbus/   (props changed)
  stable/8/sys/modules/cardbus/   (props changed)
  stable/8/sys/modules/cas/   (props changed)
  stable/8/sys/modules/cbb/   (props changed)
  stable/8/sys/modules/cd9660/   (props changed)
  stable/8/sys/modules/cd9660_iconv/   (props changed)
  stable/8/sys/modules/ce/   (props changed)
  stable/8/sys/modules/ciss/   (props changed)
  stable/8/sys/modules/cm/   (props changed)
  stable/8/sys/modules/cmx/   (props changed)
  stable/8/sys/modules/coda/   (props changed)
  stable/8/sys/modules/coda5/   (props changed)
  stable/8/sys/modules/coff/   (props changed)
  stable/8/sys/modules/coretemp/   (props changed)
  stable/8/sys/modules/cp/   (props changed)
  stable/8/sys/modules/cpuctl/   (props changed)
  stable/8/sys/modules/cpufreq/   (props changed)
  stable/8/sys/modules/crypto/   (props changed)
  stable/8/sys/modules/cryptodev/   (props changed)
  stable/8/sys/modules/cs/   (props changed)
  stable/8/sys/modules/ctau/   (props changed)
  stable/8/sys/modules/cx/   (props changed)
  stable/8/sys/modules/cxgb/   (props changed)
  stable/8/sys/modules/cyclic/   (props changed)
  stable/8/sys/modules/dc/   (props changed)
  stable/8/sys/modules/dcons/   (props changed)
  stable/8/sys/modules/dcons_crom/   (props changed)
  stable/8/sys/modules/de/   (props changed)
  stable/8/sys/modules/digi/   (props changed)
  stable/8/sys/modules/dpms/   (props changed)
  stable/8/sys/modules/dpt/   (props changed)
  stable/8/sys/modules/drm/   (props changed)
  stable/8/sys/modules/dtrace/   (props changed)
  stable/8/sys/modules/dummynet/   (props changed)
  stable/8/sys/modules/ed/   (props changed)
  stable/8/sys/modules/elink/   (props changed)
  stable/8/sys/modules/em/   (props changed)
  stable/8/sys/modules/en/   (props changed)
  stable/8/sys/modules/ep/   (props changed)
  stable/8/sys/modules/esp/   (props changed)
  stable/8/sys/modules/et/   (props changed)
  stable/8/sys/modules/ex/   (props changed)
  stable/8/sys/modules/exca/   (props changed)
  stable/8/sys/modules/ext2fs/   (props changed)
  stable/8/sys/modules/fatm/   (props changed)
  stable/8/sys/modules/fdc/   (props changed)
  stable/8/sys/modules/fdescfs/   (props changed)
  stable/8/sys/modules/fe/   (props changed)
  stable/8/sys/modules/firewire/   (props changed)
  stable/8/sys/modules/firmware/   (props changed)
  stable/8/sys/modules/fxp/   (props changed)
  stable/8/sys/modules/gem/   (props changed)
  stable/8/sys/modules/geom/   (props changed)
  stable/8/sys/modules/glxsb/   (props changed)
  stable/8/sys/modules/hatm/   (props changed)
  stable/8/sys/modules/hifn/   (props changed)
  stable/8/sys/modules/hme/   (props changed)
  stable/8/sys/modules/hpfs/   (props changed)
  stable/8/sys/modules/hptiop/   (props changed)
  stable/8/sys/modules/hptmv/   (props changed)
  stable/8/sys/modules/hptrr/   (props changed)
  stable/8/sys/modules/hwpmc/   (props changed)
  stable/8/sys/modules/i2c/   (props changed)
  stable/8/sys/modules/ibcs2/   (props changed)
  stable/8/sys/modules/ichwd/   (props changed)
  stable/8/sys/modules/ida/   (props changed)
  stable/8/sys/modules/ie/   (props changed)
  stable/8/sys/modules/if_bridge/   (props changed)
  stable/8/sys/modules/if_disc/   (props changed)
  stable/8/sys/modules/if_edsc/   (props changed)
  stable/8/sys/modules/if_ef/   (props changed)
  stable/8/sys/modules/if_epair/   (props changed)
  stable/8/sys/modules/if_faith/   (props changed)
  stable/8/sys/modules/if_gif/   (props changed)
  stable/8/sys/modules/if_gre/   (props changed)
  stable/8/sys/modules/if_lagg/   (props changed)
  stable/8/sys/modules/if_ndis/   (props changed)
  stable/8/sys/modules/if_stf/   (props changed)
  stable/8/sys/modules/if_tap/   (props changed)
  stable/8/sys/modules/if_tun/   (props changed)
  stable/8/sys/modules/if_vlan/   (props changed)
  stable/8/sys/modules/igb/   (props changed)
  stable/8/sys/modules/iir/   (props changed)
  stable/8/sys/modules/io/   (props changed)
  stable/8/sys/modules/ip6_mroute_mod/   (props changed)
  stable/8/sys/modules/ip_mroute_mod/   (props changed)
  stable/8/sys/modules/ipdivert/   (props changed)
  stable/8/sys/modules/ipfilter/   (props changed)
  stable/8/sys/modules/ipfw/   (props changed)
  stable/8/sys/modules/ipfw_nat/   (props changed)
  stable/8/sys/modules/ipmi/   (props changed)
  stable/8/sys/modules/ips/   (props changed)
  stable/8/sys/modules/ipw/   (props changed)
  stable/8/sys/modules/ipwfw/   (props changed)
  stable/8/sys/modules/iscsi/   (props changed)
  stable/8/sys/modules/isp/   (props changed)
  stable/8/sys/modules/ispfw/   (props changed)
  stable/8/sys/modules/iwi/   (props changed)
  stable/8/sys/modules/iwifw/   (props changed)
  stable/8/sys/modules/iwn/   (props changed)
  stable/8/sys/modules/iwnfw/   (props changed)
  stable/8/sys/modules/ixgb/   (props changed)
  stable/8/sys/modules/ixgbe/   (props changed)
  stable/8/sys/modules/jme/   (props changed)
  stable/8/sys/modules/joy/   (props changed)
  stable/8/sys/modules/kbdmux/   (props changed)
  stable/8/sys/modules/kgssapi/   (props changed)
  stable/8/sys/modules/kgssapi_krb5/   (props changed)
  stable/8/sys/modules/krpc/   (props changed)
  stable/8/sys/modules/ksyms/   (props changed)
  stable/8/sys/modules/le/   (props changed)
  stable/8/sys/modules/lge/   (props changed)
  stable/8/sys/modules/libalias/   (props changed)
  stable/8/sys/modules/libiconv/   (props changed)
  stable/8/sys/modules/libmbpool/   (props changed)
  stable/8/sys/modules/libmchain/   (props changed)
  stable/8/sys/modules/linprocfs/   (props changed)
  stable/8/sys/modules/linsysfs/   (props changed)
  stable/8/sys/modules/linux/   (props changed)
  stable/8/sys/modules/lmc/   (props changed)
  stable/8/sys/modules/lpt/   (props changed)
  stable/8/sys/modules/mac_biba/   (props changed)
  stable/8/sys/modules/mac_bsdextended/   (props changed)
  stable/8/sys/modules/mac_ifoff/   (props changed)
  stable/8/sys/modules/mac_lomac/   (props changed)
  stable/8/sys/modules/mac_mls/   (props changed)
  stable/8/sys/modules/mac_none/   (props changed)
  stable/8/sys/modules/mac_partition/   (props changed)
  stable/8/sys/modules/mac_portacl/   (props changed)
  stable/8/sys/modules/mac_seeotheruids/   (props changed)
  stable/8/sys/modules/mac_stub/   (props changed)
  stable/8/sys/modules/mac_test/   (props changed)
  stable/8/sys/modules/malo/   (props changed)
  stable/8/sys/modules/mcd/   (props changed)
  stable/8/sys/modules/md/   (props changed)
  stable/8/sys/modules/mem/   (props changed)
  stable/8/sys/modules/mfi/   (props changed)
  stable/8/sys/modules/mii/   (props changed)
  stable/8/sys/modules/mlx/   (props changed)
  stable/8/sys/modules/mly/   (props changed)
  stable/8/sys/modules/mmc/   (props changed)
  stable/8/sys/modules/mmcsd/   (props changed)
  stable/8/sys/modules/mpt/   (props changed)
  stable/8/sys/modules/mqueue/   (props changed)
  stable/8/sys/modules/msdosfs/   (props changed)
  stable/8/sys/modules/msdosfs_iconv/   (props changed)
  stable/8/sys/modules/mse/   (props changed)
  stable/8/sys/modules/msk/   (props changed)
  stable/8/sys/modules/mwl/   (props changed)
  stable/8/sys/modules/mwlfw/   (props changed)
  stable/8/sys/modules/mxge/   (props changed)
  stable/8/sys/modules/my/   (props changed)
  stable/8/sys/modules/ncp/   (props changed)
  stable/8/sys/modules/ncv/   (props changed)
  stable/8/sys/modules/ndis/   (props changed)
  stable/8/sys/modules/netgraph/   (props changed)
  stable/8/sys/modules/nfe/   (props changed)
  stable/8/sys/modules/nfscl/   (props changed)
  stable/8/sys/modules/nfsclient/   (props changed)
  stable/8/sys/modules/nfscommon/   (props changed)
  stable/8/sys/modules/nfsd/   (props changed)
  stable/8/sys/modules/nfslockd/   (props changed)
  stable/8/sys/modules/nfsserver/   (props changed)
  stable/8/sys/modules/nfssvc/   (props changed)
  stable/8/sys/modules/nge/   (props changed)
  stable/8/sys/modules/nmdm/   (props changed)
  stable/8/sys/modules/nsp/   (props changed)
  stable/8/sys/modules/ntfs/   (props changed)
  stable/8/sys/modules/ntfs_iconv/   (props changed)
  stable/8/sys/modules/nullfs/   (props changed)
  stable/8/sys/modules/nve/   (props changed)
  stable/8/sys/modules/nvram/   (props changed)
  stable/8/sys/modules/nwfs/   (props changed)
  stable/8/sys/modules/nxge/   (props changed)
  stable/8/sys/modules/opensolaris/   (props changed)
  stable/8/sys/modules/padlock/   (props changed)
  stable/8/sys/modules/patm/   (props changed)
  stable/8/sys/modules/pccard/   (props changed)
  stable/8/sys/modules/pcfclock/   (props changed)
  stable/8/sys/modules/pcn/   (props changed)
  stable/8/sys/modules/pf/   (props changed)
  stable/8/sys/modules/pflog/   (props changed)
  stable/8/sys/modules/plip/   (props changed)
  stable/8/sys/modules/pmc/   (props changed)
  stable/8/sys/modules/portalfs/   (props changed)
  stable/8/sys/modules/powermac_nvram/   (props changed)
  stable/8/sys/modules/ppbus/   (props changed)
  stable/8/sys/modules/ppc/   (props changed)
  stable/8/sys/modules/ppi/   (props changed)
  stable/8/sys/modules/pps/   (props changed)
  stable/8/sys/modules/procfs/   (props changed)
  stable/8/sys/modules/pseudofs/   (props changed)
  stable/8/sys/modules/pst/   (props changed)
  stable/8/sys/modules/puc/   (props changed)
  stable/8/sys/modules/ral/   (props changed)
  stable/8/sys/modules/ralfw/   (props changed)
  stable/8/sys/modules/random/   (props changed)
  stable/8/sys/modules/rc/   (props changed)
  stable/8/sys/modules/rc4/   (props changed)
  stable/8/sys/modules/rdma/   (props changed)
  stable/8/sys/modules/re/   (props changed)
  stable/8/sys/modules/reiserfs/   (props changed)
  stable/8/sys/modules/rl/   (props changed)
  stable/8/sys/modules/rndtest/   (props changed)
  stable/8/sys/modules/rp/   (props changed)
  stable/8/sys/modules/s3/   (props changed)
  stable/8/sys/modules/safe/   (props changed)
  stable/8/sys/modules/sbni/   (props changed)
  stable/8/sys/modules/scc/   (props changed)
  stable/8/sys/modules/scd/   (props changed)
  stable/8/sys/modules/scsi_low/   (props changed)
  stable/8/sys/modules/sdhci/   (props changed)
  stable/8/sys/modules/sem/   (props changed)
  stable/8/sys/modules/sf/   (props changed)
  stable/8/sys/modules/siis/   (props changed)
  stable/8/sys/modules/sio/   (props changed)
  stable/8/sys/modules/sis/   (props changed)
  stable/8/sys/modules/sk/   (props changed)
  stable/8/sys/modules/smbfs/   (props changed)
  stable/8/sys/modules/sn/   (props changed)
  stable/8/sys/modules/snc/   (props changed)
  stable/8/sys/modules/snp/   (props changed)
  stable/8/sys/modules/sound/   (props changed)
  stable/8/sys/modules/speaker/   (props changed)
  stable/8/sys/modules/splash/   (props changed)
  stable/8/sys/modules/sppp/   (props changed)
  stable/8/sys/modules/ste/   (props changed)
  stable/8/sys/modules/stg/   (props changed)
  stable/8/sys/modules/stge/   (props changed)
  stable/8/sys/modules/streams/   (props changed)
  stable/8/sys/modules/svr4/   (props changed)
  stable/8/sys/modules/sym/   (props changed)
  stable/8/sys/modules/syscons/   (props changed)
  stable/8/sys/modules/sysvipc/   (props changed)
  stable/8/sys/modules/ti/   (props changed)
  stable/8/sys/modules/tl/   (props changed)
  stable/8/sys/modules/tmpfs/   (props changed)
  stable/8/sys/modules/trm/   (props changed)
  stable/8/sys/modules/twa/   (props changed)
  stable/8/sys/modules/twe/   (props changed)
  stable/8/sys/modules/tx/   (props changed)
  stable/8/sys/modules/txp/   (props changed)
  stable/8/sys/modules/uart/   (props changed)
  stable/8/sys/modules/ubsec/   (props changed)
  stable/8/sys/modules/ubser/   (props changed)
  stable/8/sys/modules/uchcom/   (props changed)
  stable/8/sys/modules/ucycom/   (props changed)
  stable/8/sys/modules/udf/   (props changed)
  stable/8/sys/modules/udf_iconv/   (props changed)
  stable/8/sys/modules/ufs/   (props changed)
  stable/8/sys/modules/unionfs/   (props changed)
  stable/8/sys/modules/usb/   (props changed)
  stable/8/sys/modules/utopia/   (props changed)
  stable/8/sys/modules/vesa/   (props changed)
  stable/8/sys/modules/vge/   (props changed)
  stable/8/sys/modules/vkbd/   (props changed)
  stable/8/sys/modules/vpo/   (props changed)
  stable/8/sys/modules/vr/   (props changed)
  stable/8/sys/modules/vx/   (props changed)
  stable/8/sys/modules/wb/   (props changed)
  stable/8/sys/modules/wi/   (props changed)
  stable/8/sys/modules/wlan/   (props changed)
  stable/8/sys/modules/wlan_acl/   (props changed)
  stable/8/sys/modules/wlan_amrr/   (props changed)
  stable/8/sys/modules/wlan_ccmp/   (props changed)
  stable/8/sys/modules/wlan_rssadapt/   (props changed)
  stable/8/sys/modules/wlan_tkip/   (props changed)
  stable/8/sys/modules/wlan_wep/   (props changed)
  stable/8/sys/modules/wlan_xauth/   (props changed)
  stable/8/sys/modules/wpi/   (props changed)
  stable/8/sys/modules/wpifw/   (props changed)
  stable/8/sys/modules/xe/   (props changed)
  stable/8/sys/modules/xfs/   (props changed)
  stable/8/sys/modules/xl/   (props changed)
  stable/8/sys/modules/zfs/   (props changed)
  stable/8/sys/modules/zlib/   (props changed)
  stable/8/sys/net80211/   (props changed)
  stable/8/sys/net80211/_ieee80211.h   (props changed)
  stable/8/sys/net80211/ieee80211.c   (props changed)
  stable/8/sys/net80211/ieee80211.h   (props changed)
  stable/8/sys/net80211/ieee80211_acl.c   (props changed)
  stable/8/sys/net80211/ieee80211_action.c   (props changed)
  stable/8/sys/net80211/ieee80211_action.h   (props changed)
  stable/8/sys/net80211/ieee80211_adhoc.c   (props changed)
  stable/8/sys/net80211/ieee80211_adhoc.h   (props changed)
  stable/8/sys/net80211/ieee80211_ageq.c   (props changed)
  stable/8/sys/net80211/ieee80211_ageq.h   (props changed)
  stable/8/sys/net80211/ieee80211_amrr.c   (props changed)
  stable/8/sys/net80211/ieee80211_amrr.h   (props changed)
  stable/8/sys/net80211/ieee80211_crypto.c   (props changed)
  stable/8/sys/net80211/ieee80211_crypto.h   (props changed)
  stable/8/sys/net80211/ieee80211_crypto_ccmp.c   (props changed)
  stable/8/sys/net80211/ieee80211_crypto_none.c   (props changed)
  stable/8/sys/net80211/ieee80211_crypto_tkip.c   (props changed)
  stable/8/sys/net80211/ieee80211_crypto_wep.c   (props changed)
  stable/8/sys/net80211/ieee80211_ddb.c   (props changed)
  stable/8/sys/net80211/ieee80211_dfs.c   (props changed)
  stable/8/sys/net80211/ieee80211_dfs.h   (props changed)
  stable/8/sys/net80211/ieee80211_freebsd.c   (props changed)
  stable/8/sys/net80211/ieee80211_freebsd.h   (props changed)
  stable/8/sys/net80211/ieee80211_hostap.c   (props changed)
  stable/8/sys/net80211/ieee80211_hostap.h   (props changed)
  stable/8/sys/net80211/ieee80211_ht.c   (props changed)
  stable/8/sys/net80211/ieee80211_ht.h   (props changed)
  stable/8/sys/net80211/ieee80211_hwmp.c   (props changed)
  stable/8/sys/net80211/ieee80211_input.c   (props changed)
  stable/8/sys/net80211/ieee80211_input.h   (props changed)
  stable/8/sys/net80211/ieee80211_ioctl.c   (props changed)
  stable/8/sys/net80211/ieee80211_ioctl.h   (props changed)
  stable/8/sys/net80211/ieee80211_mesh.c   (props changed)
  stable/8/sys/net80211/ieee80211_mesh.h   (props changed)
  stable/8/sys/net80211/ieee80211_monitor.c   (props changed)
  stable/8/sys/net80211/ieee80211_monitor.h   (props changed)
  stable/8/sys/net80211/ieee80211_node.c   (props changed)
  stable/8/sys/net80211/ieee80211_node.h   (props changed)
  stable/8/sys/net80211/ieee80211_output.c   (props changed)
  stable/8/sys/net80211/ieee80211_phy.c   (props changed)
  stable/8/sys/net80211/ieee80211_phy.h   (props changed)
  stable/8/sys/net80211/ieee80211_power.c   (props changed)
  stable/8/sys/net80211/ieee80211_power.h   (props changed)
  stable/8/sys/net80211/ieee80211_proto.c   (props changed)
  stable/8/sys/net80211/ieee80211_proto.h   (props changed)
  stable/8/sys/net80211/ieee80211_radiotap.c   (props changed)
  stable/8/sys/net80211/ieee80211_radiotap.h   (props changed)
  stable/8/sys/net80211/ieee80211_regdomain.c   (props changed)
  stable/8/sys/net80211/ieee80211_regdomain.h   (props changed)
  stable/8/sys/net80211/ieee80211_rssadapt.c   (props changed)
  stable/8/sys/net80211/ieee80211_rssadapt.h   (props changed)
  stable/8/sys/net80211/ieee80211_scan.c   (props changed)
  stable/8/sys/net80211/ieee80211_scan.h   (props changed)
  stable/8/sys/net80211/ieee80211_scan_sta.c   (props changed)
  stable/8/sys/net80211/ieee80211_sta.c   (props changed)
  stable/8/sys/net80211/ieee80211_sta.h   (props changed)
  stable/8/sys/net80211/ieee80211_superg.c   (props changed)
  stable/8/sys/net80211/ieee80211_superg.h   (props changed)
  stable/8/sys/net80211/ieee80211_tdma.c   (props changed)
  stable/8/sys/net80211/ieee80211_tdma.h   (props changed)
  stable/8/sys/net80211/ieee80211_var.h   (props changed)
  stable/8/sys/net80211/ieee80211_wds.c   (props changed)
  stable/8/sys/net80211/ieee80211_wds.h   (props changed)
  stable/8/sys/net80211/ieee80211_xauth.c   (props changed)
  stable/8/sys/netatalk/   (props changed)
  stable/8/sys/netatalk/COPYRIGHT   (props changed)
  stable/8/sys/netatalk/aarp.c   (props changed)
  stable/8/sys/netatalk/aarp.h   (props changed)
  stable/8/sys/netatalk/at.h   (props changed)
  stable/8/sys/netatalk/at_control.c   (props changed)
  stable/8/sys/netatalk/at_extern.h   (props changed)
  stable/8/sys/netatalk/at_proto.c   (props changed)
  stable/8/sys/netatalk/at_rmx.c   (props changed)
  stable/8/sys/netatalk/at_var.h   (props changed)
  stable/8/sys/netatalk/ddp.h   (props changed)
  stable/8/sys/netatalk/ddp_input.c   (props changed)
  stable/8/sys/netatalk/ddp_output.c   (props changed)
  stable/8/sys/netatalk/ddp_pcb.c   (props changed)
  stable/8/sys/netatalk/ddp_pcb.h   (props changed)
  stable/8/sys/netatalk/ddp_usrreq.c   (props changed)
  stable/8/sys/netatalk/ddp_var.h   (props changed)
  stable/8/sys/netatalk/endian.h   (props changed)
  stable/8/sys/netatalk/phase2.h   (props changed)
  stable/8/sys/netgraph/   (props changed)
  stable/8/sys/netgraph/NOTES   (props changed)
  stable/8/sys/netgraph/atm/   (props changed)
  stable/8/sys/netgraph/bluetooth/   (props changed)
  stable/8/sys/netgraph/netflow/   (props changed)
  stable/8/sys/netgraph/netgraph.h   (props changed)
  stable/8/sys/netgraph/ng_UI.c   (props changed)
  stable/8/sys/netgraph/ng_UI.h   (props changed)
  stable/8/sys/netgraph/ng_async.c   (props changed)
  stable/8/sys/netgraph/ng_async.h   (props changed)
  stable/8/sys/netgraph/ng_atmllc.c   (props changed)
  stable/8/sys/netgraph/ng_atmllc.h   (props changed)
  stable/8/sys/netgraph/ng_base.c   (props changed)
  stable/8/sys/netgraph/ng_bpf.c   (props changed)
  stable/8/sys/netgraph/ng_bpf.h   (props changed)
  stable/8/sys/netgraph/ng_bridge.c   (props changed)
  stable/8/sys/netgraph/ng_bridge.h   (props changed)
  stable/8/sys/netgraph/ng_car.c   (props changed)
  stable/8/sys/netgraph/ng_car.h   (props changed)
  stable/8/sys/netgraph/ng_cisco.c   (props changed)
  stable/8/sys/netgraph/ng_cisco.h   (props changed)
  stable/8/sys/netgraph/ng_deflate.c   (props changed)
  stable/8/sys/netgraph/ng_deflate.h   (props changed)
  stable/8/sys/netgraph/ng_device.c   (props changed)
  stable/8/sys/netgraph/ng_device.h   (props changed)
  stable/8/sys/netgraph/ng_echo.c   (props changed)
  stable/8/sys/netgraph/ng_echo.h   (props changed)
  stable/8/sys/netgraph/ng_eiface.c   (props changed)
  stable/8/sys/netgraph/ng_eiface.h   (props changed)
  stable/8/sys/netgraph/ng_etf.c   (props changed)
  stable/8/sys/netgraph/ng_etf.h   (props changed)
  stable/8/sys/netgraph/ng_ether.c   (props changed)
  stable/8/sys/netgraph/ng_ether.h   (props changed)
  stable/8/sys/netgraph/ng_ether_echo.c   (props changed)
  stable/8/sys/netgraph/ng_ether_echo.h   (props changed)
  stable/8/sys/netgraph/ng_fec.c   (props changed)
  stable/8/sys/netgraph/ng_fec.h   (props changed)
  stable/8/sys/netgraph/ng_frame_relay.c   (props changed)
  stable/8/sys/netgraph/ng_frame_relay.h   (props changed)
  stable/8/sys/netgraph/ng_gif.c   (props changed)
  stable/8/sys/netgraph/ng_gif.h   (props changed)
  stable/8/sys/netgraph/ng_gif_demux.c   (props changed)
  stable/8/sys/netgraph/ng_gif_demux.h   (props changed)
  stable/8/sys/netgraph/ng_hole.c   (props changed)
  stable/8/sys/netgraph/ng_hole.h   (props changed)
  stable/8/sys/netgraph/ng_hub.c   (props changed)
  stable/8/sys/netgraph/ng_hub.h   (props changed)
  stable/8/sys/netgraph/ng_iface.c   (props changed)
  stable/8/sys/netgraph/ng_iface.h   (props changed)
  stable/8/sys/netgraph/ng_ip_input.c   (props changed)
  stable/8/sys/netgraph/ng_ip_input.h   (props changed)
  stable/8/sys/netgraph/ng_ipfw.c   (props changed)
  stable/8/sys/netgraph/ng_ipfw.h   (props changed)
  stable/8/sys/netgraph/ng_ksocket.c   (props changed)
  stable/8/sys/netgraph/ng_ksocket.h   (props changed)
  stable/8/sys/netgraph/ng_l2tp.c   (props changed)
  stable/8/sys/netgraph/ng_l2tp.h   (props changed)
  stable/8/sys/netgraph/ng_lmi.c   (props changed)
  stable/8/sys/netgraph/ng_lmi.h   (props changed)
  stable/8/sys/netgraph/ng_message.h   (props changed)
  stable/8/sys/netgraph/ng_mppc.c   (props changed)
  stable/8/sys/netgraph/ng_mppc.h   (props changed)
  stable/8/sys/netgraph/ng_nat.c   (props changed)
  stable/8/sys/netgraph/ng_nat.h   (props changed)
  stable/8/sys/netgraph/ng_one2many.c   (props changed)
  stable/8/sys/netgraph/ng_one2many.h   (props changed)
  stable/8/sys/netgraph/ng_parse.c   (props changed)
  stable/8/sys/netgraph/ng_parse.h   (props changed)
  stable/8/sys/netgraph/ng_pipe.c   (props changed)
  stable/8/sys/netgraph/ng_pipe.h   (props changed)
  stable/8/sys/netgraph/ng_ppp.c   (props changed)
  stable/8/sys/netgraph/ng_ppp.h   (props changed)
  stable/8/sys/netgraph/ng_pppoe.c   (props changed)
  stable/8/sys/netgraph/ng_pppoe.h   (props changed)
  stable/8/sys/netgraph/ng_pptpgre.c   (props changed)
  stable/8/sys/netgraph/ng_pptpgre.h   (props changed)
  stable/8/sys/netgraph/ng_pred1.c   (props changed)
  stable/8/sys/netgraph/ng_pred1.h   (props changed)
  stable/8/sys/netgraph/ng_rfc1490.c   (props changed)
  stable/8/sys/netgraph/ng_rfc1490.h   (props changed)
  stable/8/sys/netgraph/ng_sample.c   (props changed)
  stable/8/sys/netgraph/ng_sample.h   (props changed)
  stable/8/sys/netgraph/ng_socket.c   (props changed)
  stable/8/sys/netgraph/ng_socket.h   (props changed)
  stable/8/sys/netgraph/ng_socketvar.h   (props changed)
  stable/8/sys/netgraph/ng_source.c   (props changed)
  stable/8/sys/netgraph/ng_source.h   (props changed)
  stable/8/sys/netgraph/ng_split.c   (props changed)
  stable/8/sys/netgraph/ng_split.h   (props changed)
  stable/8/sys/netgraph/ng_sppp.c   (props changed)
  stable/8/sys/netgraph/ng_sppp.h   (props changed)
  stable/8/sys/netgraph/ng_tag.c   (props changed)
  stable/8/sys/netgraph/ng_tag.h   (props changed)
  stable/8/sys/netgraph/ng_tcpmss.c   (props changed)
  stable/8/sys/netgraph/ng_tcpmss.h   (props changed)
  stable/8/sys/netgraph/ng_tee.c   (props changed)
  stable/8/sys/netgraph/ng_tee.h   (props changed)
  stable/8/sys/netgraph/ng_tty.c   (props changed)
  stable/8/sys/netgraph/ng_tty.h   (props changed)
  stable/8/sys/netgraph/ng_vjc.c   (props changed)
  stable/8/sys/netgraph/ng_vjc.h   (props changed)
  stable/8/sys/netgraph/ng_vlan.c   (props changed)
  stable/8/sys/netgraph/ng_vlan.h   (props changed)
  stable/8/sys/netinet/   (props changed)
  stable/8/sys/netinet/accf_data.c   (props changed)
  stable/8/sys/netinet/accf_dns.c   (props changed)
  stable/8/sys/netinet/accf_http.c   (props changed)
  stable/8/sys/netinet/icmp6.h   (props changed)
  stable/8/sys/netinet/icmp_var.h   (props changed)
  stable/8/sys/netinet/if_atm.c   (props changed)
  stable/8/sys/netinet/if_atm.h   (props changed)
  stable/8/sys/netinet/if_ether.c   (props changed)
  stable/8/sys/netinet/if_ether.h   (props changed)
  stable/8/sys/netinet/igmp.c   (props changed)
  stable/8/sys/netinet/igmp.h   (props changed)
  stable/8/sys/netinet/igmp_var.h   (props changed)
  stable/8/sys/netinet/in.c   (props changed)
  stable/8/sys/netinet/in.h   (props changed)
  stable/8/sys/netinet/in_cksum.c   (props changed)
  stable/8/sys/netinet/in_gif.c   (props changed)
  stable/8/sys/netinet/in_gif.h   (props changed)
  stable/8/sys/netinet/in_pcb.c   (props changed)
  stable/8/sys/netinet/in_pcb.h   (props changed)
  stable/8/sys/netinet/in_proto.c   (props changed)
  stable/8/sys/netinet/in_rmx.c   (props changed)
  stable/8/sys/netinet/in_systm.h   (props changed)
  stable/8/sys/netinet/in_var.h   (props changed)
  stable/8/sys/netinet/ip.h   (props changed)
  stable/8/sys/netinet/ip6.h   (props changed)
  stable/8/sys/netinet/ip_carp.c   (props changed)
  stable/8/sys/netinet/ip_carp.h   (props changed)
  stable/8/sys/netinet/ip_divert.c   (props changed)
  stable/8/sys/netinet/ip_divert.h   (props changed)
  stable/8/sys/netinet/ip_dummynet.h   (props changed)
  stable/8/sys/netinet/ip_ecn.c   (props changed)
  stable/8/sys/netinet/ip_ecn.h   (props changed)
  stable/8/sys/netinet/ip_encap.c   (props changed)
  stable/8/sys/netinet/ip_encap.h   (props changed)
  stable/8/sys/netinet/ip_fastfwd.c   (props changed)
  stable/8/sys/netinet/ip_fw.h   (props changed)
  stable/8/sys/netinet/ip_gre.c   (props changed)
  stable/8/sys/netinet/ip_gre.h   (props changed)
  stable/8/sys/netinet/ip_icmp.c   (props changed)
  stable/8/sys/netinet/ip_icmp.h   (props changed)
  stable/8/sys/netinet/ip_id.c   (props changed)
  stable/8/sys/netinet/ip_input.c   (props changed)
  stable/8/sys/netinet/ip_ipsec.c   (props changed)
  stable/8/sys/netinet/ip_ipsec.h   (props changed)
  stable/8/sys/netinet/ip_mroute.c   (props changed)
  stable/8/sys/netinet/ip_mroute.h   (props changed)
  stable/8/sys/netinet/ip_options.c   (props changed)
  stable/8/sys/netinet/ip_options.h   (props changed)
  stable/8/sys/netinet/ip_output.c   (props changed)
  stable/8/sys/netinet/ip_var.h   (props changed)
  stable/8/sys/netinet/ipfw/   (props changed)
  stable/8/sys/netinet/libalias/   (props changed)
  stable/8/sys/netinet/pim.h   (props changed)
  stable/8/sys/netinet/pim_var.h   (props changed)
  stable/8/sys/netinet/raw_ip.c   (props changed)
  stable/8/sys/netinet/sctp.h   (props changed)
  stable/8/sys/netinet/sctp_asconf.c   (props changed)
  stable/8/sys/netinet/sctp_asconf.h   (props changed)
  stable/8/sys/netinet/sctp_auth.c   (props changed)
  stable/8/sys/netinet/sctp_auth.h   (props changed)
  stable/8/sys/netinet/sctp_bsd_addr.c   (props changed)
  stable/8/sys/netinet/sctp_bsd_addr.h   (props changed)
  stable/8/sys/netinet/sctp_cc_functions.c   (props changed)
  stable/8/sys/netinet/sctp_cc_functions.h   (props changed)
  stable/8/sys/netinet/sctp_constants.h   (props changed)
  stable/8/sys/netinet/sctp_crc32.c   (props changed)
  stable/8/sys/netinet/sctp_crc32.h   (props changed)
  stable/8/sys/netinet/sctp_header.h   (props changed)
  stable/8/sys/netinet/sctp_indata.c   (props changed)
  stable/8/sys/netinet/sctp_indata.h   (props changed)
  stable/8/sys/netinet/sctp_input.c   (props changed)
  stable/8/sys/netinet/sctp_input.h   (props changed)
  stable/8/sys/netinet/sctp_lock_bsd.h   (props changed)
  stable/8/sys/netinet/sctp_os.h   (props changed)
  stable/8/sys/netinet/sctp_os_bsd.h   (props changed)
  stable/8/sys/netinet/sctp_output.c   (props changed)
  stable/8/sys/netinet/sctp_output.h   (props changed)
  stable/8/sys/netinet/sctp_pcb.c   (props changed)
  stable/8/sys/netinet/sctp_pcb.h   (props changed)
  stable/8/sys/netinet/sctp_peeloff.c   (props changed)
  stable/8/sys/netinet/sctp_peeloff.h   (props changed)
  stable/8/sys/netinet/sctp_structs.h   (props changed)
  stable/8/sys/netinet/sctp_sysctl.c   (props changed)
  stable/8/sys/netinet/sctp_sysctl.h   (props changed)
  stable/8/sys/netinet/sctp_timer.c   (props changed)
  stable/8/sys/netinet/sctp_timer.h   (props changed)
  stable/8/sys/netinet/sctp_uio.h   (props changed)
  stable/8/sys/netinet/sctp_usrreq.c   (props changed)
  stable/8/sys/netinet/sctp_var.h   (props changed)
  stable/8/sys/netinet/sctputil.c   (props changed)
  stable/8/sys/netinet/sctputil.h   (props changed)
  stable/8/sys/netinet/tcp.h   (props changed)
  stable/8/sys/netinet/tcp_debug.c   (props changed)
  stable/8/sys/netinet/tcp_debug.h   (props changed)
  stable/8/sys/netinet/tcp_fsm.h   (props changed)
  stable/8/sys/netinet/tcp_hostcache.c   (props changed)
  stable/8/sys/netinet/tcp_hostcache.h   (props changed)
  stable/8/sys/netinet/tcp_input.c   (props changed)
  stable/8/sys/netinet/tcp_lro.c   (props changed)
  stable/8/sys/netinet/tcp_lro.h   (props changed)
  stable/8/sys/netinet/tcp_offload.c   (props changed)
  stable/8/sys/netinet/tcp_offload.h   (props changed)
  stable/8/sys/netinet/tcp_output.c   (props changed)
  stable/8/sys/netinet/tcp_reass.c   (props changed)
  stable/8/sys/netinet/tcp_sack.c   (props changed)
  stable/8/sys/netinet/tcp_seq.h   (props changed)
  stable/8/sys/netinet/tcp_subr.c   (props changed)
  stable/8/sys/netinet/tcp_syncache.c   (props changed)
  stable/8/sys/netinet/tcp_syncache.h   (props changed)
  stable/8/sys/netinet/tcp_timer.c   (props changed)
  stable/8/sys/netinet/tcp_timer.h   (props changed)
  stable/8/sys/netinet/tcp_timewait.c   (props changed)
  stable/8/sys/netinet/tcp_usrreq.c   (props changed)
  stable/8/sys/netinet/tcp_var.h   (props changed)
  stable/8/sys/netinet/tcpip.h   (props changed)
  stable/8/sys/netinet/toedev.h   (props changed)
  stable/8/sys/netinet/udp.h   (props changed)
  stable/8/sys/netinet/udp_usrreq.c   (props changed)
  stable/8/sys/netinet/udp_var.h   (props changed)
  stable/8/sys/netipsec/   (props changed)
  stable/8/sys/netipsec/ah.h   (props changed)
  stable/8/sys/netipsec/ah_var.h   (props changed)
  stable/8/sys/netipsec/esp.h   (props changed)
  stable/8/sys/netipsec/esp_var.h   (props changed)
  stable/8/sys/netipsec/ipcomp.h   (props changed)
  stable/8/sys/netipsec/ipcomp_var.h   (props changed)
  stable/8/sys/netipsec/ipip_var.h   (props changed)
  stable/8/sys/netipsec/ipsec.c   (props changed)
  stable/8/sys/netipsec/ipsec.h   (props changed)
  stable/8/sys/netipsec/ipsec6.h   (props changed)
  stable/8/sys/netipsec/ipsec_input.c   (props changed)
  stable/8/sys/netipsec/ipsec_mbuf.c   (props changed)
  stable/8/sys/netipsec/ipsec_output.c   (props changed)
  stable/8/sys/netipsec/key.c   (props changed)
  stable/8/sys/netipsec/key.h   (props changed)
  stable/8/sys/netipsec/key_debug.c   (props changed)
  stable/8/sys/netipsec/key_debug.h   (props changed)
  stable/8/sys/netipsec/key_var.h   (props changed)
  stable/8/sys/netipsec/keydb.h   (props changed)
  stable/8/sys/netipsec/keysock.c   (props changed)
  stable/8/sys/netipsec/keysock.h   (props changed)
  stable/8/sys/netipsec/xform.h   (props changed)
  stable/8/sys/netipsec/xform_ah.c   (props changed)
  stable/8/sys/netipsec/xform_esp.c   (props changed)
  stable/8/sys/netipsec/xform_ipcomp.c   (props changed)
  stable/8/sys/netipsec/xform_ipip.c   (props changed)
  stable/8/sys/netipsec/xform_tcp.c   (props changed)
  stable/8/sys/netipx/   (props changed)
  stable/8/sys/netipx/README   (props changed)
  stable/8/sys/netipx/ipx.c   (props changed)
  stable/8/sys/netipx/ipx.h   (props changed)
  stable/8/sys/netipx/ipx_cksum.c   (props changed)
  stable/8/sys/netipx/ipx_if.h   (props changed)
  stable/8/sys/netipx/ipx_input.c   (props changed)
  stable/8/sys/netipx/ipx_outputfl.c   (props changed)
  stable/8/sys/netipx/ipx_pcb.c   (props changed)
  stable/8/sys/netipx/ipx_pcb.h   (props changed)
  stable/8/sys/netipx/ipx_proto.c   (props changed)
  stable/8/sys/netipx/ipx_usrreq.c   (props changed)
  stable/8/sys/netipx/ipx_var.h   (props changed)
  stable/8/sys/netipx/spx.h   (props changed)
  stable/8/sys/netipx/spx_debug.c   (props changed)
  stable/8/sys/netipx/spx_debug.h   (props changed)
  stable/8/sys/netipx/spx_reass.c   (props changed)
  stable/8/sys/netipx/spx_timer.h   (props changed)
  stable/8/sys/netipx/spx_usrreq.c   (props changed)
  stable/8/sys/netipx/spx_var.h   (props changed)
  stable/8/sys/netnatm/   (props changed)
  stable/8/sys/netnatm/natm.c   (props changed)
  stable/8/sys/netnatm/natm.h   (props changed)
  stable/8/sys/netnatm/natm_pcb.c   (props changed)
  stable/8/sys/netnatm/natm_proto.c   (props changed)
  stable/8/sys/netncp/   (props changed)
  stable/8/sys/netncp/ncp.h   (props changed)
  stable/8/sys/netncp/ncp_cfg.h   (props changed)
  stable/8/sys/netncp/ncp_conn.c   (props changed)
  stable/8/sys/netncp/ncp_conn.h   (props changed)
  stable/8/sys/netncp/ncp_crypt.c   (props changed)
  stable/8/sys/netncp/ncp_file.h   (props changed)
  stable/8/sys/netncp/ncp_lib.h   (props changed)
  stable/8/sys/netncp/ncp_login.c   (props changed)
  stable/8/sys/netncp/ncp_mod.c   (props changed)
  stable/8/sys/netncp/ncp_ncp.c   (props changed)
  stable/8/sys/netncp/ncp_ncp.h   (props changed)
  stable/8/sys/netncp/ncp_nls.c   (props changed)
  stable/8/sys/netncp/ncp_nls.h   (props changed)
  stable/8/sys/netncp/ncp_rcfile.h   (props changed)
  stable/8/sys/netncp/ncp_rq.c   (props changed)
  stable/8/sys/netncp/ncp_rq.h   (props changed)
  stable/8/sys/netncp/ncp_sock.c   (props changed)
  stable/8/sys/netncp/ncp_sock.h   (props changed)
  stable/8/sys/netncp/ncp_subr.c   (props changed)
  stable/8/sys/netncp/ncp_subr.h   (props changed)
  stable/8/sys/netncp/ncp_user.h   (props changed)
  stable/8/sys/netncp/ncpio.h   (props changed)
  stable/8/sys/netncp/nwerror.h   (props changed)
  stable/8/sys/netsmb/   (props changed)
  stable/8/sys/netsmb/netbios.h   (props changed)
  stable/8/sys/netsmb/smb.h   (props changed)
  stable/8/sys/netsmb/smb_conn.c   (props changed)
  stable/8/sys/netsmb/smb_conn.h   (props changed)
  stable/8/sys/netsmb/smb_crypt.c   (props changed)
  stable/8/sys/netsmb/smb_dev.c   (props changed)
  stable/8/sys/netsmb/smb_dev.h   (props changed)
  stable/8/sys/netsmb/smb_iod.c   (props changed)
  stable/8/sys/netsmb/smb_rq.c   (props changed)
  stable/8/sys/netsmb/smb_rq.h   (props changed)
  stable/8/sys/netsmb/smb_smb.c   (props changed)
  stable/8/sys/netsmb/smb_subr.c   (props changed)
  stable/8/sys/netsmb/smb_subr.h   (props changed)
  stable/8/sys/netsmb/smb_tran.h   (props changed)
  stable/8/sys/netsmb/smb_trantcp.c   (props changed)
  stable/8/sys/netsmb/smb_trantcp.h   (props changed)
  stable/8/sys/netsmb/smb_usr.c   (props changed)
  stable/8/sys/nfs/   (props changed)
  stable/8/sys/nfs/nfs_common.c   (props changed)
  stable/8/sys/nfs/nfs_common.h   (props changed)
  stable/8/sys/nfs/nfs_nfssvc.c   (props changed)
  stable/8/sys/nfs/nfsproto.h   (props changed)
  stable/8/sys/nfs/nfssvc.h   (props changed)
  stable/8/sys/nfs/xdr_subs.h   (props changed)
  stable/8/sys/nfsclient/   (props changed)
  stable/8/sys/nfsclient/bootp_subr.c   (props changed)
  stable/8/sys/nfsclient/krpc.h   (props changed)
  stable/8/sys/nfsclient/krpc_subr.c   (props changed)
  stable/8/sys/nfsclient/nfs.h   (props changed)
  stable/8/sys/nfsclient/nfs_bio.c   (props changed)
  stable/8/sys/nfsclient/nfs_diskless.c   (props changed)
  stable/8/sys/nfsclient/nfs_kdtrace.c   (props changed)
  stable/8/sys/nfsclient/nfs_kdtrace.h   (props changed)
  stable/8/sys/nfsclient/nfs_krpc.c   (props changed)
  stable/8/sys/nfsclient/nfs_lock.c   (props changed)
  stable/8/sys/nfsclient/nfs_lock.h   (props changed)
  stable/8/sys/nfsclient/nfs_nfsiod.c   (props changed)
  stable/8/sys/nfsclient/nfs_node.c   (props changed)
  stable/8/sys/nfsclient/nfs_subs.c   (props changed)
  stable/8/sys/nfsclient/nfs_vfsops.c   (props changed)
  stable/8/sys/nfsclient/nfs_vnops.c   (props changed)
  stable/8/sys/nfsclient/nfsargs.h   (props changed)
  stable/8/sys/nfsclient/nfsdiskless.h   (props changed)
  stable/8/sys/nfsclient/nfsm_subs.h   (props changed)
  stable/8/sys/nfsclient/nfsmount.h   (props changed)
  stable/8/sys/nfsclient/nfsnode.h   (props changed)
  stable/8/sys/nfsclient/nfsstats.h   (props changed)
  stable/8/sys/nfsclient/nlminfo.h   (props changed)
  stable/8/sys/nfsserver/   (props changed)
  stable/8/sys/nfsserver/nfs.h   (props changed)
  stable/8/sys/nfsserver/nfs_fha.c   (props changed)
  stable/8/sys/nfsserver/nfs_fha.h   (props changed)
  stable/8/sys/nfsserver/nfs_serv.c   (props changed)
  stable/8/sys/nfsserver/nfs_srvkrpc.c   (props changed)
  stable/8/sys/nfsserver/nfs_srvsubs.c   (props changed)
  stable/8/sys/nfsserver/nfsm_subs.h   (props changed)
  stable/8/sys/nfsserver/nfsrvcache.h   (props changed)
  stable/8/sys/nfsserver/nfsrvstats.h   (props changed)
  stable/8/sys/nlm/   (props changed)
  stable/8/sys/nlm/nlm.h   (props changed)
  stable/8/sys/nlm/nlm_advlock.c   (props changed)
  stable/8/sys/nlm/nlm_prot.h   (props changed)
  stable/8/sys/nlm/nlm_prot_clnt.c   (props changed)
  stable/8/sys/nlm/nlm_prot_impl.c   (props changed)
  stable/8/sys/nlm/nlm_prot_server.c   (props changed)
  stable/8/sys/nlm/nlm_prot_svc.c   (props changed)
  stable/8/sys/nlm/nlm_prot_xdr.c   (props changed)
  stable/8/sys/nlm/sm_inter.h   (props changed)
  stable/8/sys/nlm/sm_inter_xdr.c   (props changed)
  stable/8/sys/opencrypto/   (props changed)
  stable/8/sys/opencrypto/cast.c   (props changed)
  stable/8/sys/opencrypto/cast.h   (props changed)
  stable/8/sys/opencrypto/castsb.h   (props changed)
  stable/8/sys/opencrypto/criov.c   (props changed)
  stable/8/sys/opencrypto/crypto.c   (props changed)
  stable/8/sys/opencrypto/cryptodev.c   (props changed)
  stable/8/sys/opencrypto/cryptodev.h   (props changed)
  stable/8/sys/opencrypto/cryptodev_if.m   (props changed)
  stable/8/sys/opencrypto/cryptosoft.c   (props changed)
  stable/8/sys/opencrypto/cryptosoft.h   (props changed)
  stable/8/sys/opencrypto/deflate.c   (props changed)
  stable/8/sys/opencrypto/deflate.h   (props changed)
  stable/8/sys/opencrypto/rmd160.c   (props changed)
  stable/8/sys/opencrypto/rmd160.h   (props changed)
  stable/8/sys/opencrypto/skipjack.c   (props changed)
  stable/8/sys/opencrypto/skipjack.h   (props changed)
  stable/8/sys/opencrypto/xform.c   (props changed)
  stable/8/sys/opencrypto/xform.h   (props changed)
  stable/8/sys/pc98/   (props changed)
  stable/8/sys/pc98/apm/   (props changed)
  stable/8/sys/pc98/cbus/   (props changed)
  stable/8/sys/pc98/compile/   (props changed)
  stable/8/sys/pc98/conf/   (props changed)
  stable/8/sys/pc98/include/   (props changed)
  stable/8/sys/pc98/linux/   (props changed)
  stable/8/sys/pc98/pc98/   (props changed)
  stable/8/sys/pci/   (props changed)
  stable/8/sys/pci/alpm.c   (props changed)
  stable/8/sys/pci/amdpm.c   (props changed)
  stable/8/sys/pci/amdsmb.c   (props changed)
  stable/8/sys/pci/if_rl.c   (props changed)
  stable/8/sys/pci/if_rlreg.h   (props changed)
  stable/8/sys/pci/intpm.c   (props changed)
  stable/8/sys/pci/intpmreg.h   (props changed)
  stable/8/sys/pci/locate.pl   (props changed)
  stable/8/sys/pci/ncr.c   (props changed)
  stable/8/sys/pci/ncrreg.h   (props changed)
  stable/8/sys/pci/nfsmb.c   (props changed)
  stable/8/sys/pci/viapm.c   (props changed)
  stable/8/sys/powerpc/   (props changed)
  stable/8/sys/powerpc/aim/   (props changed)
  stable/8/sys/powerpc/booke/   (props changed)
  stable/8/sys/powerpc/compile/   (props changed)
  stable/8/sys/powerpc/conf/   (props changed)
  stable/8/sys/powerpc/cpufreq/   (props changed)
  stable/8/sys/powerpc/fpu/   (props changed)
  stable/8/sys/powerpc/include/   (props changed)
  stable/8/sys/powerpc/mpc85xx/   (props changed)
  stable/8/sys/powerpc/ofw/   (props changed)
  stable/8/sys/powerpc/powermac/   (props changed)
  stable/8/sys/powerpc/powerpc/   (props changed)
  stable/8/sys/powerpc/psim/   (props changed)
  stable/8/sys/rpc/   (props changed)
  stable/8/sys/rpc/auth.h   (props changed)
  stable/8/sys/rpc/auth_none.c   (props changed)
  stable/8/sys/rpc/auth_unix.c   (props changed)
  stable/8/sys/rpc/authunix_prot.c   (props changed)
  stable/8/sys/rpc/clnt.h   (props changed)
  stable/8/sys/rpc/clnt_dg.c   (props changed)
  stable/8/sys/rpc/clnt_rc.c   (props changed)
  stable/8/sys/rpc/clnt_stat.h   (props changed)
  stable/8/sys/rpc/clnt_vc.c   (props changed)
  stable/8/sys/rpc/getnetconfig.c   (props changed)
  stable/8/sys/rpc/inet_ntop.c   (props changed)
  stable/8/sys/rpc/inet_pton.c   (props changed)
  stable/8/sys/rpc/netconfig.h   (props changed)
  stable/8/sys/rpc/nettype.h   (props changed)
  stable/8/sys/rpc/pmap_prot.h   (props changed)
  stable/8/sys/rpc/replay.c   (props changed)
  stable/8/sys/rpc/replay.h   (props changed)
  stable/8/sys/rpc/rpc.h   (props changed)
  stable/8/sys/rpc/rpc_callmsg.c   (props changed)
  stable/8/sys/rpc/rpc_com.h   (props changed)
  stable/8/sys/rpc/rpc_generic.c   (props changed)
  stable/8/sys/rpc/rpc_msg.h   (props changed)
  stable/8/sys/rpc/rpc_prot.c   (props changed)
  stable/8/sys/rpc/rpcb_clnt.c   (props changed)
  stable/8/sys/rpc/rpcb_clnt.h   (props changed)
  stable/8/sys/rpc/rpcb_prot.c   (props changed)
  stable/8/sys/rpc/rpcb_prot.h   (props changed)
  stable/8/sys/rpc/rpcm_subs.h   (props changed)
  stable/8/sys/rpc/rpcsec_gss/   (props changed)
  stable/8/sys/rpc/rpcsec_gss.h   (props changed)
  stable/8/sys/rpc/svc.c   (props changed)
  stable/8/sys/rpc/svc.h   (props changed)
  stable/8/sys/rpc/svc_auth.c   (props changed)
  stable/8/sys/rpc/svc_auth.h   (props changed)
  stable/8/sys/rpc/svc_auth_unix.c   (props changed)
  stable/8/sys/rpc/svc_dg.c   (props changed)
  stable/8/sys/rpc/svc_generic.c   (props changed)
  stable/8/sys/rpc/svc_vc.c   (props changed)
  stable/8/sys/rpc/types.h   (props changed)
  stable/8/sys/rpc/xdr.h   (props changed)
  stable/8/sys/security/   (props changed)
  stable/8/sys/security/audit/   (props changed)
  stable/8/sys/security/mac/   (props changed)
  stable/8/sys/security/mac_biba/   (props changed)
  stable/8/sys/security/mac_bsdextended/   (props changed)
  stable/8/sys/security/mac_ifoff/   (props changed)
  stable/8/sys/security/mac_lomac/   (props changed)
  stable/8/sys/security/mac_mls/   (props changed)
  stable/8/sys/security/mac_none/   (props changed)
  stable/8/sys/security/mac_partition/   (props changed)
  stable/8/sys/security/mac_portacl/   (props changed)
  stable/8/sys/security/mac_seeotheruids/   (props changed)
  stable/8/sys/security/mac_stub/   (props changed)
  stable/8/sys/security/mac_test/   (props changed)
  stable/8/sys/sparc64/   (props changed)
  stable/8/sys/sparc64/central/   (props changed)
  stable/8/sys/sparc64/compile/   (props changed)
  stable/8/sys/sparc64/conf/   (props changed)
  stable/8/sys/sparc64/ebus/   (props changed)
  stable/8/sys/sparc64/fhc/   (props changed)
  stable/8/sys/sparc64/include/   (props changed)
  stable/8/sys/sparc64/isa/   (props changed)
  stable/8/sys/sparc64/pci/   (props changed)
  stable/8/sys/sparc64/sbus/   (props changed)
  stable/8/sys/sparc64/sparc64/   (props changed)
  stable/8/sys/sun4v/   (props changed)
  stable/8/sys/sun4v/cddl/   (props changed)
  stable/8/sys/sun4v/compile/   (props changed)
  stable/8/sys/sun4v/conf/   (props changed)
  stable/8/sys/sun4v/include/   (props changed)
  stable/8/sys/sun4v/mdesc/   (props changed)
  stable/8/sys/sun4v/sun4v/   (props changed)
  stable/8/sys/sys/   (props changed)
  stable/8/sys/sys/_bus_dma.h   (props changed)
  stable/8/sys/sys/_iovec.h   (props changed)
  stable/8/sys/sys/_lock.h   (props changed)
  stable/8/sys/sys/_lockmgr.h   (props changed)
  stable/8/sys/sys/_mutex.h   (props changed)
  stable/8/sys/sys/_null.h   (props changed)
  stable/8/sys/sys/_pthreadtypes.h   (props changed)
  stable/8/sys/sys/_rmlock.h   (props changed)
  stable/8/sys/sys/_rwlock.h   (props changed)
  stable/8/sys/sys/_semaphore.h   (props changed)
  stable/8/sys/sys/_sigset.h   (props changed)
  stable/8/sys/sys/_stack.h   (props changed)
  stable/8/sys/sys/_sx.h   (props changed)
  stable/8/sys/sys/_task.h   (props changed)
  stable/8/sys/sys/_timespec.h   (props changed)
  stable/8/sys/sys/_timeval.h   (props changed)
  stable/8/sys/sys/_types.h   (props changed)
  stable/8/sys/sys/aac_ioctl.h   (props changed)
  stable/8/sys/sys/acct.h   (props changed)
  stable/8/sys/sys/acl.h   (props changed)
  stable/8/sys/sys/agpio.h   (props changed)
  stable/8/sys/sys/aio.h   (props changed)
  stable/8/sys/sys/alq.h   (props changed)
  stable/8/sys/sys/apm.h   (props changed)
  stable/8/sys/sys/assym.h   (props changed)
  stable/8/sys/sys/ata.h   (props changed)
  stable/8/sys/sys/bio.h   (props changed)
  stable/8/sys/sys/bitstring.h   (props changed)
  stable/8/sys/sys/blist.h   (props changed)
  stable/8/sys/sys/buf.h   (props changed)
  stable/8/sys/sys/buf_ring.h   (props changed)
  stable/8/sys/sys/bufobj.h   (props changed)
  stable/8/sys/sys/bus.h   (props changed)
  stable/8/sys/sys/bus_dma.h   (props changed)
  stable/8/sys/sys/callout.h   (props changed)
  stable/8/sys/sys/cdefs.h   (props changed)
  stable/8/sys/sys/cdio.h   (props changed)
  stable/8/sys/sys/cdrio.h   (props changed)
  stable/8/sys/sys/cfictl.h   (props changed)
  stable/8/sys/sys/chio.h   (props changed)
  stable/8/sys/sys/clock.h   (props changed)
  stable/8/sys/sys/condvar.h   (props changed)
  stable/8/sys/sys/conf.h   (props changed)
  stable/8/sys/sys/cons.h   (props changed)
  stable/8/sys/sys/consio.h   (props changed)
  stable/8/sys/sys/copyright.h   (props changed)
  stable/8/sys/sys/cpu.h   (props changed)
  stable/8/sys/sys/cpuctl.h   (props changed)
  stable/8/sys/sys/cpuset.h   (props changed)
  stable/8/sys/sys/ctype.h   (props changed)
  stable/8/sys/sys/dataacq.h   (props changed)
  stable/8/sys/sys/device_port.h   (props changed)
  stable/8/sys/sys/devicestat.h   (props changed)
  stable/8/sys/sys/digiio.h   (props changed)
  stable/8/sys/sys/dir.h   (props changed)
  stable/8/sys/sys/dirent.h   (props changed)
  stable/8/sys/sys/disk.h   (props changed)
  stable/8/sys/sys/disklabel.h   (props changed)
  stable/8/sys/sys/diskmbr.h   (props changed)
  stable/8/sys/sys/diskpc98.h   (props changed)
  stable/8/sys/sys/dkstat.h   (props changed)
  stable/8/sys/sys/domain.h   (props changed)
  stable/8/sys/sys/dtrace_bsd.h   (props changed)
  stable/8/sys/sys/dvdio.h   (props changed)
  stable/8/sys/sys/elf.h   (props changed)
  stable/8/sys/sys/elf32.h   (props changed)
  stable/8/sys/sys/elf64.h   (props changed)
  stable/8/sys/sys/elf_common.h   (props changed)
  stable/8/sys/sys/elf_generic.h   (props changed)
  stable/8/sys/sys/endian.h   (props changed)
  stable/8/sys/sys/errno.h   (props changed)
  stable/8/sys/sys/eui64.h   (props changed)
  stable/8/sys/sys/event.h   (props changed)
  stable/8/sys/sys/eventhandler.h   (props changed)
  stable/8/sys/sys/eventvar.h   (props changed)
  stable/8/sys/sys/exec.h   (props changed)
  stable/8/sys/sys/extattr.h   (props changed)
  stable/8/sys/sys/fail.h   (props changed)
  stable/8/sys/sys/fbio.h   (props changed)
  stable/8/sys/sys/fcntl.h   (props changed)
  stable/8/sys/sys/fdcio.h   (props changed)
  stable/8/sys/sys/file.h   (props changed)
  stable/8/sys/sys/filedesc.h   (props changed)
  stable/8/sys/sys/filio.h   (props changed)
  stable/8/sys/sys/firmware.h   (props changed)
  stable/8/sys/sys/fnv_hash.h   (props changed)
  stable/8/sys/sys/gmon.h   (props changed)
  stable/8/sys/sys/gpt.h   (props changed)
  stable/8/sys/sys/hash.h   (props changed)
  stable/8/sys/sys/iconv.h   (props changed)
  stable/8/sys/sys/imgact.h   (props changed)
  stable/8/sys/sys/imgact_aout.h   (props changed)
  stable/8/sys/sys/imgact_elf.h   (props changed)
  stable/8/sys/sys/inflate.h   (props changed)
  stable/8/sys/sys/interrupt.h   (props changed)
  stable/8/sys/sys/ioccom.h   (props changed)
  stable/8/sys/sys/ioctl.h   (props changed)
  stable/8/sys/sys/ioctl_compat.h   (props changed)
  stable/8/sys/sys/ipc.h   (props changed)
  stable/8/sys/sys/ipmi.h   (props changed)
  stable/8/sys/sys/jail.h   (props changed)
  stable/8/sys/sys/joystick.h   (props changed)
  stable/8/sys/sys/kbio.h   (props changed)
  stable/8/sys/sys/kdb.h   (props changed)
  stable/8/sys/sys/kenv.h   (props changed)
  stable/8/sys/sys/kernel.h   (props changed)
  stable/8/sys/sys/kerneldump.h   (props changed)
  stable/8/sys/sys/kobj.h   (props changed)
  stable/8/sys/sys/ksem.h   (props changed)
  stable/8/sys/sys/ksyms.h   (props changed)
  stable/8/sys/sys/kthread.h   (props changed)
  stable/8/sys/sys/ktr.h   (props changed)
  stable/8/sys/sys/ktrace.h   (props changed)
  stable/8/sys/sys/libkern.h   (props changed)
  stable/8/sys/sys/limits.h   (props changed)
  stable/8/sys/sys/link_aout.h   (props changed)
  stable/8/sys/sys/link_elf.h   (props changed)
  stable/8/sys/sys/linker.h   (props changed)
  stable/8/sys/sys/linker_set.h   (props changed)
  stable/8/sys/sys/lock.h   (props changed)
  stable/8/sys/sys/lock_profile.h   (props changed)
  stable/8/sys/sys/lockf.h   (props changed)
  stable/8/sys/sys/lockmgr.h   (props changed)
  stable/8/sys/sys/lockstat.h   (props changed)
  stable/8/sys/sys/mac.h   (props changed)
  stable/8/sys/sys/malloc.h   (props changed)
  stable/8/sys/sys/mbpool.h   (props changed)
  stable/8/sys/sys/mbuf.h   (props changed)
  stable/8/sys/sys/mchain.h   (props changed)
  stable/8/sys/sys/md4.h   (props changed)
  stable/8/sys/sys/md5.h   (props changed)
  stable/8/sys/sys/mdioctl.h   (props changed)
  stable/8/sys/sys/memrange.h   (props changed)
  stable/8/sys/sys/mman.h   (props changed)
  stable/8/sys/sys/module.h   (props changed)
  stable/8/sys/sys/mount.h   (props changed)
  stable/8/sys/sys/mouse.h   (props changed)
  stable/8/sys/sys/mpt_ioctl.h   (props changed)
  stable/8/sys/sys/mqueue.h   (props changed)
  stable/8/sys/sys/msg.h   (props changed)
  stable/8/sys/sys/msgbuf.h   (props changed)
  stable/8/sys/sys/mtio.h   (props changed)
  stable/8/sys/sys/mutex.h   (props changed)
  stable/8/sys/sys/namei.h   (props changed)
  stable/8/sys/sys/nlist_aout.h   (props changed)
  stable/8/sys/sys/osd.h   (props changed)
  stable/8/sys/sys/param.h   (props changed)
  stable/8/sys/sys/pciio.h   (props changed)
  stable/8/sys/sys/pcpu.h   (props changed)
  stable/8/sys/sys/pioctl.h   (props changed)
  stable/8/sys/sys/pipe.h   (props changed)
  stable/8/sys/sys/pmc.h   (props changed)
  stable/8/sys/sys/pmckern.h   (props changed)
  stable/8/sys/sys/pmclog.h   (props changed)
  stable/8/sys/sys/poll.h   (props changed)
  stable/8/sys/sys/posix4.h   (props changed)
  stable/8/sys/sys/power.h   (props changed)
  stable/8/sys/sys/priority.h   (props changed)
  stable/8/sys/sys/priv.h   (props changed)
  stable/8/sys/sys/proc.h   (props changed)
  stable/8/sys/sys/procfs.h   (props changed)
  stable/8/sys/sys/protosw.h   (props changed)
  stable/8/sys/sys/ptio.h   (props changed)
  stable/8/sys/sys/ptrace.h   (props changed)
  stable/8/sys/sys/queue.h   (props changed)
  stable/8/sys/sys/random.h   (props changed)
  stable/8/sys/sys/reboot.h   (props changed)
  stable/8/sys/sys/refcount.h   (props changed)
  stable/8/sys/sys/regression.h   (props changed)
  stable/8/sys/sys/resource.h   (props changed)
  stable/8/sys/sys/resourcevar.h   (props changed)
  stable/8/sys/sys/rman.h   (props changed)
  stable/8/sys/sys/rmlock.h   (props changed)
  stable/8/sys/sys/rtprio.h   (props changed)
  stable/8/sys/sys/runq.h   (props changed)
  stable/8/sys/sys/rwlock.h   (props changed)
  stable/8/sys/sys/sbuf.h   (props changed)
  stable/8/sys/sys/sched.h   (props changed)
  stable/8/sys/sys/sdt.h   (props changed)
  stable/8/sys/sys/select.h   (props changed)
  stable/8/sys/sys/selinfo.h   (props changed)
  stable/8/sys/sys/sem.h   (props changed)
  stable/8/sys/sys/sema.h   (props changed)
  stable/8/sys/sys/semaphore.h   (props changed)
  stable/8/sys/sys/serial.h   (props changed)
  stable/8/sys/sys/sf_buf.h   (props changed)
  stable/8/sys/sys/sglist.h   (props changed)
  stable/8/sys/sys/shm.h   (props changed)
  stable/8/sys/sys/sigio.h   (props changed)
  stable/8/sys/sys/signal.h   (props changed)
  stable/8/sys/sys/signalvar.h   (props changed)
  stable/8/sys/sys/sleepqueue.h   (props changed)
  stable/8/sys/sys/smp.h   (props changed)
  stable/8/sys/sys/snoop.h   (props changed)
  stable/8/sys/sys/sockbuf.h   (props changed)
  stable/8/sys/sys/socket.h   (props changed)
  stable/8/sys/sys/socketvar.h   (props changed)
  stable/8/sys/sys/sockio.h   (props changed)
  stable/8/sys/sys/sockopt.h   (props changed)
  stable/8/sys/sys/sockstate.h   (props changed)
  stable/8/sys/sys/soundcard.h   (props changed)
  stable/8/sys/sys/stack.h   (props changed)
  stable/8/sys/sys/stat.h   (props changed)
  stable/8/sys/sys/statvfs.h   (props changed)
  stable/8/sys/sys/stddef.h   (props changed)
  stable/8/sys/sys/stdint.h   (props changed)
  stable/8/sys/sys/sun_disklabel.h   (props changed)
  stable/8/sys/sys/sx.h   (props changed)
  stable/8/sys/sys/syscall.h   (props changed)
  stable/8/sys/sys/syscall.mk   (props changed)
  stable/8/sys/sys/syscallsubr.h   (props changed)
  stable/8/sys/sys/sysctl.h   (props changed)
  stable/8/sys/sys/sysent.h   (props changed)
  stable/8/sys/sys/syslimits.h   (props changed)
  stable/8/sys/sys/syslog.h   (props changed)
  stable/8/sys/sys/sysproto.h   (props changed)
  stable/8/sys/sys/systm.h   (props changed)
  stable/8/sys/sys/taskqueue.h   (props changed)
  stable/8/sys/sys/termios.h   (props changed)
  stable/8/sys/sys/thr.h   (props changed)
  stable/8/sys/sys/tiio.h   (props changed)
  stable/8/sys/sys/time.h   (props changed)
  stable/8/sys/sys/timeb.h   (props changed)
  stable/8/sys/sys/timepps.h   (props changed)
  stable/8/sys/sys/timers.h   (props changed)
  stable/8/sys/sys/times.h   (props changed)
  stable/8/sys/sys/timespec.h   (props changed)
  stable/8/sys/sys/timetc.h   (props changed)
  stable/8/sys/sys/timex.h   (props changed)
  stable/8/sys/sys/tree.h   (props changed)
  stable/8/sys/sys/tty.h   (props changed)
  stable/8/sys/sys/ttycom.h   (props changed)
  stable/8/sys/sys/ttydefaults.h   (props changed)
  stable/8/sys/sys/ttydevsw.h   (props changed)
  stable/8/sys/sys/ttydisc.h   (props changed)
  stable/8/sys/sys/ttyhook.h   (props changed)
  stable/8/sys/sys/ttyqueue.h   (props changed)
  stable/8/sys/sys/turnstile.h   (props changed)
  stable/8/sys/sys/types.h   (props changed)
  stable/8/sys/sys/ucontext.h   (props changed)
  stable/8/sys/sys/ucred.h   (props changed)
  stable/8/sys/sys/uio.h   (props changed)
  stable/8/sys/sys/umtx.h   (props changed)
  stable/8/sys/sys/un.h   (props changed)
  stable/8/sys/sys/unistd.h   (props changed)
  stable/8/sys/sys/unpcb.h   (props changed)
  stable/8/sys/sys/user.h   (props changed)
  stable/8/sys/sys/utsname.h   (props changed)
  stable/8/sys/sys/uuid.h   (props changed)
  stable/8/sys/sys/vmmeter.h   (props changed)
  stable/8/sys/sys/vnode.h   (props changed)
  stable/8/sys/sys/vtoc.h   (props changed)
  stable/8/sys/sys/wait.h   (props changed)
  stable/8/sys/sys/watchdog.h   (props changed)
  stable/8/sys/tools/   (props changed)
  stable/8/sys/tools/acpi_quirks2h.awk   (props changed)
  stable/8/sys/tools/bus_macro.sh   (props changed)
  stable/8/sys/tools/embed_mfs.sh   (props changed)
  stable/8/sys/tools/fw_stub.awk   (props changed)
  stable/8/sys/tools/makeobjops.awk   (props changed)
  stable/8/sys/tools/miidevs2h.awk   (props changed)
  stable/8/sys/tools/pccarddevs2h.awk   (props changed)
  stable/8/sys/tools/sound/   (props changed)
  stable/8/sys/tools/usbdevs2h.awk   (props changed)
  stable/8/sys/tools/vnode_if.awk   (props changed)
  stable/8/sys/ufs/   (props changed)
  stable/8/sys/ufs/ffs/   (props changed)
  stable/8/sys/ufs/ufs/   (props changed)
  stable/8/sys/vm/   (props changed)
  stable/8/sys/vm/default_pager.c   (props changed)
  stable/8/sys/vm/device_pager.c   (props changed)
  stable/8/sys/vm/memguard.c   (props changed)
  stable/8/sys/vm/memguard.h   (props changed)
  stable/8/sys/vm/phys_pager.c   (props changed)
  stable/8/sys/vm/pmap.h   (props changed)
  stable/8/sys/vm/redzone.c   (props changed)
  stable/8/sys/vm/redzone.h   (props changed)
  stable/8/sys/vm/sg_pager.c   (props changed)
  stable/8/sys/vm/swap_pager.c   (props changed)
  stable/8/sys/vm/swap_pager.h   (props changed)
  stable/8/sys/vm/uma.h   (props changed)
  stable/8/sys/vm/uma_core.c   (props changed)
  stable/8/sys/vm/uma_dbg.c   (props changed)
  stable/8/sys/vm/uma_dbg.h   (props changed)
  stable/8/sys/vm/uma_int.h   (props changed)
  stable/8/sys/vm/vm.h   (props changed)
  stable/8/sys/vm/vm_contig.c   (props changed)
  stable/8/sys/vm/vm_extern.h   (props changed)
  stable/8/sys/vm/vm_fault.c   (props changed)
  stable/8/sys/vm/vm_glue.c   (props changed)
  stable/8/sys/vm/vm_init.c   (props changed)
  stable/8/sys/vm/vm_kern.c   (props changed)
  stable/8/sys/vm/vm_kern.h   (props changed)
  stable/8/sys/vm/vm_map.c   (props changed)
  stable/8/sys/vm/vm_map.h   (props changed)
  stable/8/sys/vm/vm_meter.c   (props changed)
  stable/8/sys/vm/vm_mmap.c   (props changed)
  stable/8/sys/vm/vm_object.c   (props changed)
  stable/8/sys/vm/vm_object.h   (props changed)
  stable/8/sys/vm/vm_page.c   (props changed)
  stable/8/sys/vm/vm_page.h   (props changed)
  stable/8/sys/vm/vm_pageout.c   (props changed)
  stable/8/sys/vm/vm_pageout.h   (props changed)
  stable/8/sys/vm/vm_pager.c   (props changed)
  stable/8/sys/vm/vm_pager.h   (props changed)
  stable/8/sys/vm/vm_param.h   (props changed)
  stable/8/sys/vm/vm_phys.c   (props changed)
  stable/8/sys/vm/vm_phys.h   (props changed)
  stable/8/sys/vm/vm_reserv.c   (props changed)
  stable/8/sys/vm/vm_reserv.h   (props changed)
  stable/8/sys/vm/vm_unix.c   (props changed)
  stable/8/sys/vm/vm_zeroidle.c   (props changed)
  stable/8/sys/vm/vnode_pager.c   (props changed)
  stable/8/sys/vm/vnode_pager.h   (props changed)
  stable/8/sys/xdr/   (props changed)
  stable/8/sys/xdr/xdr.c   (props changed)
  stable/8/sys/xdr/xdr_array.c   (props changed)
  stable/8/sys/xdr/xdr_mbuf.c   (props changed)
  stable/8/sys/xdr/xdr_mem.c   (props changed)
  stable/8/sys/xdr/xdr_reference.c   (props changed)
  stable/8/sys/xdr/xdr_sizeof.c   (props changed)
  stable/8/sys/xen/   (props changed)
  stable/8/sys/xen/evtchn/   (props changed)
  stable/8/sys/xen/evtchn.h   (props changed)
  stable/8/sys/xen/features.c   (props changed)
  stable/8/sys/xen/features.h   (props changed)
  stable/8/sys/xen/gnttab.c   (props changed)
  stable/8/sys/xen/gnttab.h   (props changed)
  stable/8/sys/xen/hypervisor.h   (props changed)
  stable/8/sys/xen/interface/   (props changed)
  stable/8/sys/xen/reboot.c   (props changed)
  stable/8/sys/xen/xen_intr.h   (props changed)
  stable/8/sys/xen/xenbus/   (props changed)

Modified: stable/8/sys/netinet/in_mcast.c
==============================================================================
--- stable/8/sys/netinet/in_mcast.c	Fri Nov 20 11:58:04 2009	(r199577)
+++ stable/8/sys/netinet/in_mcast.c	Fri Nov 20 12:30:40 2009	(r199578)
@@ -1966,7 +1966,7 @@ inp_join_group(struct inpcb *inp, struct
 		imf = &imo->imo_mfilters[idx];
 		if (ssa->ss.ss_family != AF_UNSPEC) {
 			/*
-			 * MCAST_JOIN_SOURCE on an exclusive membership
+			 * MCAST_JOIN_SOURCE_GROUP on an exclusive membership
 			 * is an error. On an existing inclusive membership,
 			 * it just adds the source to the filter list.
 			 */

Modified: stable/8/sys/netinet6/in6_mcast.c
==============================================================================
--- stable/8/sys/netinet6/in6_mcast.c	Fri Nov 20 11:58:04 2009	(r199577)
+++ stable/8/sys/netinet6/in6_mcast.c	Fri Nov 20 12:30:40 2009	(r199578)
@@ -1814,6 +1814,7 @@ in6p_join_group(struct inpcb *inp, struc
 
 	ifp = NULL;
 	imf = NULL;
+	lims = NULL;
 	error = 0;
 	is_new = 0;
 
@@ -1917,11 +1918,6 @@ in6p_join_group(struct inpcb *inp, struc
 	 */
 	(void)in6_setscope(&gsa->sin6.sin6_addr, ifp, NULL);
 
-	/*
-	 * MCAST_JOIN_SOURCE on an exclusive membership is an error.
-	 * On an existing inclusive membership, it just adds the
-	 * source to the filter list.
-	 */
 	imo = in6p_findmoptions(inp);
 	idx = im6o_match_group(imo, ifp, &gsa->sa);
 	if (idx == -1) {
@@ -1929,16 +1925,53 @@ in6p_join_group(struct inpcb *inp, struc
 	} else {
 		inm = imo->im6o_membership[idx];
 		imf = &imo->im6o_mfilters[idx];
-		if (ssa->ss.ss_family != AF_UNSPEC &&
-		    imf->im6f_st[1] != MCAST_INCLUDE) {
+		if (ssa->ss.ss_family != AF_UNSPEC) {
+			/*
+			 * MCAST_JOIN_SOURCE_GROUP on an exclusive membership
+			 * is an error. On an existing inclusive membership,
+			 * it just adds the source to the filter list.
+			 */
+			if (imf->im6f_st[1] != MCAST_INCLUDE) {
+				error = EINVAL;
+				goto out_in6p_locked;
+			}
+			/*
+			 * Throw out duplicates.
+			 *
+			 * XXX FIXME: This makes a naive assumption that
+			 * even if entries exist for *ssa in this imf,
+			 * they will be rejected as dupes, even if they
+			 * are not valid in the current mode (in-mode).
+			 *
+			 * in6_msource is transactioned just as for anything
+			 * else in SSM -- but note naive use of in6m_graft()
+			 * below for allocating new filter entries.
+			 *
+			 * This is only an issue if someone mixes the
+			 * full-state SSM API with the delta-based API,
+			 * which is discouraged in the relevant RFCs.
+			 */
+			lims = im6o_match_source(imo, idx, &ssa->sa);
+			if (lims != NULL /*&&
+			    lims->im6sl_st[1] == MCAST_INCLUDE*/) {
+				error = EADDRNOTAVAIL;
+				goto out_in6p_locked;
+			}
+		} else {
+			/*
+			 * MCAST_JOIN_GROUP alone, on any existing membership,
+			 * is rejected, to stop the same inpcb tying up
+			 * multiple refs to the in_multi.
+			 * On an existing inclusive membership, this is also
+			 * an error; if you want to change filter mode,
+			 * you must use the userland API setsourcefilter().
+			 * XXX We don't reject this for imf in UNDEFINED
+			 * state at t1, because allocation of a filter
+			 * is atomic with allocation of a membership.
+			 */
 			error = EINVAL;
 			goto out_in6p_locked;
 		}
-		lims = im6o_match_source(imo, idx, &ssa->sa);
-		if (lims != NULL) {
-			error = EADDRNOTAVAIL;
-			goto out_in6p_locked;
-		}
 	}
 
 	/*
@@ -1970,7 +2003,13 @@ in6p_join_group(struct inpcb *inp, struc
 	/*
 	 * Graft new source into filter list for this inpcb's
 	 * membership of the group. The in6_multi may not have
-	 * been allocated yet if this is a new membership.
+	 * been allocated yet if this is a new membership, however,
+	 * the in_mfilter slot will be allocated and must be initialized.
+	 *
+	 * Note: Grafting of exclusive mode filters doesn't happen
+	 * in this path.
+	 * XXX: Should check for non-NULL lims (node exists but may
+	 * not be in-mode) for interop with full-state API.
 	 */
 	if (ssa->ss.ss_family != AF_UNSPEC) {
 		/* Membership starts in IN mode */
@@ -1987,6 +2026,12 @@ in6p_join_group(struct inpcb *inp, struc
 			error = ENOMEM;
 			goto out_im6o_free;
 		}
+	} else {
+		/* No address specified; Membership starts in EX mode */
+		if (is_new) {
+			CTR1(KTR_MLD, "%s: new join w/o source", __func__);
+			im6f_init(imf, MCAST_UNDEFINED, MCAST_EXCLUDE);
+		}
 	}
 
 	/*
@@ -2272,8 +2317,10 @@ out_im6f_rollback:
 
 	if (is_final) {
 		/* Remove the gap in the membership array. */
-		for (++idx; idx < imo->im6o_num_memberships; ++idx)
+		for (++idx; idx < imo->im6o_num_memberships; ++idx) {
 			imo->im6o_membership[idx-1] = imo->im6o_membership[idx];
+			imo->im6o_mfilters[idx-1] = imo->im6o_mfilters[idx];
+		}
 		imo->im6o_num_memberships--;
 	}
 
@@ -2340,9 +2387,11 @@ in6p_set_source_filters(struct inpcb *in
 	if (error)
 		return (error);
 
-	if (msfr.msfr_nsrcs > in6_mcast_maxsocksrc ||
-	    (msfr.msfr_fmode != MCAST_EXCLUDE &&
-	     msfr.msfr_fmode != MCAST_INCLUDE))
+	if (msfr.msfr_nsrcs > in6_mcast_maxsocksrc)
+		return (ENOBUFS);
+
+	if (msfr.msfr_fmode != MCAST_EXCLUDE &&
+	    msfr.msfr_fmode != MCAST_INCLUDE)
 		return (EINVAL);
 
 	if (msfr.msfr_group.ss_family != AF_INET6 ||

From owner-svn-src-stable-8@FreeBSD.ORG  Fri Nov 20 15:27:53 2009
Return-Path: 
Delivered-To: svn-src-stable-8@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id CC680106568F;
	Fri, 20 Nov 2009 15:27:53 +0000 (UTC) (envelope-from jhb@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id B61828FC12;
	Fri, 20 Nov 2009 15:27:53 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nAKFRrin047855;
	Fri, 20 Nov 2009 15:27:53 GMT (envelope-from jhb@svn.freebsd.org)
Received: (from jhb@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nAKFRrAo047854;
	Fri, 20 Nov 2009 15:27:53 GMT (envelope-from jhb@svn.freebsd.org)
Message-Id: <200911201527.nAKFRrAo047854@svn.freebsd.org>
From: John Baldwin 
Date: Fri, 20 Nov 2009 15:27:53 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org
X-SVN-Group: stable-8
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r199583 - in stable/8/sys: amd64 boot bsm crypto ddb
	gdb geom i386/acpica i386/bios i386/compile i386/cpufreq
	i386/i386 i386/ibcs2 i386/include i386/isa i386/linux
	i386/pci i386/svr4 i3...
X-BeenThere: svn-src-stable-8@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for only the 8-stable src tree
	
List-Unsubscribe: , 
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: , 
	
X-List-Received-Date: Fri, 20 Nov 2009 15:27:54 -0000

Author: jhb
Date: Fri Nov 20 15:27:52 2009
New Revision: 199583
URL: http://svn.freebsd.org/changeset/base/199583

Log:
  Purge extraneous mergeinfo.

Modified:
Directory Properties:
  stable/8/sys/amd64/   (props changed)
  stable/8/sys/amd64/Makefile   (props changed)
  stable/8/sys/amd64/acpica/   (props changed)
  stable/8/sys/amd64/amd64/   (props changed)
  stable/8/sys/amd64/compile/   (props changed)
  stable/8/sys/amd64/conf/   (props changed)
  stable/8/sys/amd64/ia32/   (props changed)
  stable/8/sys/amd64/include/   (props changed)
  stable/8/sys/amd64/isa/   (props changed)
  stable/8/sys/amd64/linux32/   (props changed)
  stable/8/sys/amd64/pci/   (props changed)
  stable/8/sys/arm/   (props changed)
  stable/8/sys/arm/arm/   (props changed)
  stable/8/sys/arm/at91/   (props changed)
  stable/8/sys/arm/compile/   (props changed)
  stable/8/sys/arm/conf/   (props changed)
  stable/8/sys/arm/include/   (props changed)
  stable/8/sys/arm/mv/   (props changed)
  stable/8/sys/arm/sa11x0/   (props changed)
  stable/8/sys/arm/xscale/   (props changed)
  stable/8/sys/boot/   (props changed)
  stable/8/sys/boot/Makefile   (props changed)
  stable/8/sys/boot/Makefile.inc   (props changed)
  stable/8/sys/boot/README   (props changed)
  stable/8/sys/boot/arm/   (props changed)
  stable/8/sys/boot/common/   (props changed)
  stable/8/sys/boot/efi/   (props changed)
  stable/8/sys/boot/ficl/   (props changed)
  stable/8/sys/boot/forth/   (props changed)
  stable/8/sys/boot/i386/   (props changed)
  stable/8/sys/boot/ia64/   (props changed)
  stable/8/sys/boot/ofw/   (props changed)
  stable/8/sys/boot/pc98/   (props changed)
  stable/8/sys/boot/powerpc/   (props changed)
  stable/8/sys/boot/sparc64/   (props changed)
  stable/8/sys/boot/uboot/   (props changed)
  stable/8/sys/boot/zfs/   (props changed)
  stable/8/sys/bsm/   (props changed)
  stable/8/sys/bsm/audit.h   (props changed)
  stable/8/sys/bsm/audit_domain.h   (props changed)
  stable/8/sys/bsm/audit_errno.h   (props changed)
  stable/8/sys/bsm/audit_fcntl.h   (props changed)
  stable/8/sys/bsm/audit_internal.h   (props changed)
  stable/8/sys/bsm/audit_kevents.h   (props changed)
  stable/8/sys/bsm/audit_record.h   (props changed)
  stable/8/sys/bsm/audit_socket_type.h   (props changed)
  stable/8/sys/cddl/   (props changed)
  stable/8/sys/cddl/boot/   (props changed)
  stable/8/sys/cddl/compat/   (props changed)
  stable/8/sys/cddl/contrib/   (props changed)
  stable/8/sys/cddl/dev/   (props changed)
  stable/8/sys/compat/   (props changed)
  stable/8/sys/compat/freebsd32/   (props changed)
  stable/8/sys/compat/ia32/   (props changed)
  stable/8/sys/compat/linprocfs/   (props changed)
  stable/8/sys/compat/linsysfs/   (props changed)
  stable/8/sys/compat/linux/   (props changed)
  stable/8/sys/compat/ndis/   (props changed)
  stable/8/sys/compat/netbsd/   (props changed)
  stable/8/sys/compat/svr4/   (props changed)
  stable/8/sys/contrib/   (props changed)
  stable/8/sys/contrib/altq/   (props changed)
  stable/8/sys/contrib/dev/   (props changed)
  stable/8/sys/contrib/ia64/   (props changed)
  stable/8/sys/contrib/ipfilter/   (props changed)
  stable/8/sys/contrib/ngatm/   (props changed)
  stable/8/sys/contrib/rdma/   (props changed)
  stable/8/sys/crypto/   (props changed)
  stable/8/sys/crypto/blowfish/   (props changed)
  stable/8/sys/crypto/camellia/   (props changed)
  stable/8/sys/crypto/des/   (props changed)
  stable/8/sys/crypto/rc4/   (props changed)
  stable/8/sys/crypto/rijndael/   (props changed)
  stable/8/sys/crypto/sha1.c   (props changed)
  stable/8/sys/crypto/sha1.h   (props changed)
  stable/8/sys/crypto/sha2/   (props changed)
  stable/8/sys/crypto/via/   (props changed)
  stable/8/sys/ddb/   (props changed)
  stable/8/sys/ddb/db_access.c   (props changed)
  stable/8/sys/ddb/db_access.h   (props changed)
  stable/8/sys/ddb/db_break.c   (props changed)
  stable/8/sys/ddb/db_break.h   (props changed)
  stable/8/sys/ddb/db_capture.c   (props changed)
  stable/8/sys/ddb/db_command.c   (props changed)
  stable/8/sys/ddb/db_command.h   (props changed)
  stable/8/sys/ddb/db_examine.c   (props changed)
  stable/8/sys/ddb/db_expr.c   (props changed)
  stable/8/sys/ddb/db_input.c   (props changed)
  stable/8/sys/ddb/db_lex.c   (props changed)
  stable/8/sys/ddb/db_lex.h   (props changed)
  stable/8/sys/ddb/db_main.c   (props changed)
  stable/8/sys/ddb/db_output.c   (props changed)
  stable/8/sys/ddb/db_output.h   (props changed)
  stable/8/sys/ddb/db_print.c   (props changed)
  stable/8/sys/ddb/db_ps.c   (props changed)
  stable/8/sys/ddb/db_run.c   (props changed)
  stable/8/sys/ddb/db_script.c   (props changed)
  stable/8/sys/ddb/db_sym.c   (props changed)
  stable/8/sys/ddb/db_sym.h   (props changed)
  stable/8/sys/ddb/db_textdump.c   (props changed)
  stable/8/sys/ddb/db_thread.c   (props changed)
  stable/8/sys/ddb/db_variables.c   (props changed)
  stable/8/sys/ddb/db_variables.h   (props changed)
  stable/8/sys/ddb/db_watch.c   (props changed)
  stable/8/sys/ddb/db_watch.h   (props changed)
  stable/8/sys/ddb/db_write_cmd.c   (props changed)
  stable/8/sys/ddb/ddb.h   (props changed)
  stable/8/sys/fs/   (props changed)
  stable/8/sys/fs/cd9660/   (props changed)
  stable/8/sys/fs/coda/   (props changed)
  stable/8/sys/fs/deadfs/   (props changed)
  stable/8/sys/fs/devfs/   (props changed)
  stable/8/sys/fs/fdescfs/   (props changed)
  stable/8/sys/fs/fifofs/   (props changed)
  stable/8/sys/fs/hpfs/   (props changed)
  stable/8/sys/fs/msdosfs/   (props changed)
  stable/8/sys/fs/nfs/   (props changed)
  stable/8/sys/fs/nfsclient/   (props changed)
  stable/8/sys/fs/nfsserver/   (props changed)
  stable/8/sys/fs/ntfs/   (props changed)
  stable/8/sys/fs/nullfs/   (props changed)
  stable/8/sys/fs/nwfs/   (props changed)
  stable/8/sys/fs/portalfs/   (props changed)
  stable/8/sys/fs/procfs/   (props changed)
  stable/8/sys/fs/pseudofs/   (props changed)
  stable/8/sys/fs/smbfs/   (props changed)
  stable/8/sys/fs/tmpfs/   (props changed)
  stable/8/sys/fs/udf/   (props changed)
  stable/8/sys/fs/unionfs/   (props changed)
  stable/8/sys/gdb/   (props changed)
  stable/8/sys/gdb/gdb.h   (props changed)
  stable/8/sys/gdb/gdb_cons.c   (props changed)
  stable/8/sys/gdb/gdb_int.h   (props changed)
  stable/8/sys/gdb/gdb_main.c   (props changed)
  stable/8/sys/gdb/gdb_packet.c   (props changed)
  stable/8/sys/geom/   (props changed)
  stable/8/sys/geom/bde/   (props changed)
  stable/8/sys/geom/cache/   (props changed)
  stable/8/sys/geom/concat/   (props changed)
  stable/8/sys/geom/eli/   (props changed)
  stable/8/sys/geom/gate/   (props changed)
  stable/8/sys/geom/geom.h   (props changed)
  stable/8/sys/geom/geom_aes.c   (props changed)
  stable/8/sys/geom/geom_bsd.c   (props changed)
  stable/8/sys/geom/geom_bsd_enc.c   (props changed)
  stable/8/sys/geom/geom_ccd.c   (props changed)
  stable/8/sys/geom/geom_ctl.c   (props changed)
  stable/8/sys/geom/geom_ctl.h   (props changed)
  stable/8/sys/geom/geom_dev.c   (props changed)
  stable/8/sys/geom/geom_disk.c   (props changed)
  stable/8/sys/geom/geom_disk.h   (props changed)
  stable/8/sys/geom/geom_dump.c   (props changed)
  stable/8/sys/geom/geom_event.c   (props changed)
  stable/8/sys/geom/geom_fox.c   (props changed)
  stable/8/sys/geom/geom_int.h   (props changed)
  stable/8/sys/geom/geom_io.c   (props changed)
  stable/8/sys/geom/geom_kern.c   (props changed)
  stable/8/sys/geom/geom_mbr.c   (props changed)
  stable/8/sys/geom/geom_mbr_enc.c   (props changed)
  stable/8/sys/geom/geom_pc98.c   (props changed)
  stable/8/sys/geom/geom_pc98_enc.c   (props changed)
  stable/8/sys/geom/geom_redboot.c   (props changed)
  stable/8/sys/geom/geom_slice.c   (props changed)
  stable/8/sys/geom/geom_slice.h   (props changed)
  stable/8/sys/geom/geom_subr.c   (props changed)
  stable/8/sys/geom/geom_sunlabel.c   (props changed)
  stable/8/sys/geom/geom_sunlabel_enc.c   (props changed)
  stable/8/sys/geom/geom_vfs.c   (props changed)
  stable/8/sys/geom/geom_vfs.h   (props changed)
  stable/8/sys/geom/geom_vol_ffs.c   (props changed)
  stable/8/sys/geom/journal/   (props changed)
  stable/8/sys/geom/label/   (props changed)
  stable/8/sys/geom/linux_lvm/   (props changed)
  stable/8/sys/geom/mirror/   (props changed)
  stable/8/sys/geom/multipath/   (props changed)
  stable/8/sys/geom/nop/   (props changed)
  stable/8/sys/geom/notes   (props changed)
  stable/8/sys/geom/part/   (props changed)
  stable/8/sys/geom/raid3/   (props changed)
  stable/8/sys/geom/shsec/   (props changed)
  stable/8/sys/geom/stripe/   (props changed)
  stable/8/sys/geom/uzip/   (props changed)
  stable/8/sys/geom/vinum/   (props changed)
  stable/8/sys/geom/virstor/   (props changed)
  stable/8/sys/geom/zero/   (props changed)
  stable/8/sys/gnu/   (props changed)
  stable/8/sys/gnu/dev/   (props changed)
  stable/8/sys/gnu/fs/   (props changed)
  stable/8/sys/i386/acpica/   (props changed)
  stable/8/sys/i386/acpica/Makefile   (props changed)
  stable/8/sys/i386/acpica/OsdEnvironment.c   (props changed)
  stable/8/sys/i386/acpica/acpi_machdep.c   (props changed)
  stable/8/sys/i386/acpica/acpi_wakecode.S   (props changed)
  stable/8/sys/i386/acpica/acpi_wakeup.c   (props changed)
  stable/8/sys/i386/acpica/genwakecode.sh   (props changed)
  stable/8/sys/i386/acpica/madt.c   (props changed)
  stable/8/sys/i386/bios/   (props changed)
  stable/8/sys/i386/bios/apm.c   (props changed)
  stable/8/sys/i386/bios/apm.h   (props changed)
  stable/8/sys/i386/bios/mca_machdep.c   (props changed)
  stable/8/sys/i386/bios/mca_machdep.h   (props changed)
  stable/8/sys/i386/bios/smapi.c   (props changed)
  stable/8/sys/i386/bios/smapi_bios.S   (props changed)
  stable/8/sys/i386/bios/smbios.c   (props changed)
  stable/8/sys/i386/bios/vpd.c   (props changed)
  stable/8/sys/i386/compile/   (props changed)
  stable/8/sys/i386/compile/.cvsignore   (props changed)
  stable/8/sys/i386/cpufreq/   (props changed)
  stable/8/sys/i386/cpufreq/est.c   (props changed)
  stable/8/sys/i386/cpufreq/hwpstate.c   (props changed)
  stable/8/sys/i386/cpufreq/p4tcc.c   (props changed)
  stable/8/sys/i386/cpufreq/powernow.c   (props changed)
  stable/8/sys/i386/cpufreq/smist.c   (props changed)
  stable/8/sys/i386/i386/   (props changed)
  stable/8/sys/i386/i386/apic_vector.s   (props changed)
  stable/8/sys/i386/i386/atomic.c   (props changed)
  stable/8/sys/i386/i386/autoconf.c   (props changed)
  stable/8/sys/i386/i386/bios.c   (props changed)
  stable/8/sys/i386/i386/bioscall.s   (props changed)
  stable/8/sys/i386/i386/bpf_jit_machdep.c   (props changed)
  stable/8/sys/i386/i386/bpf_jit_machdep.h   (props changed)
  stable/8/sys/i386/i386/busdma_machdep.c   (props changed)
  stable/8/sys/i386/i386/db_disasm.c   (props changed)
  stable/8/sys/i386/i386/db_interface.c   (props changed)
  stable/8/sys/i386/i386/db_trace.c   (props changed)
  stable/8/sys/i386/i386/dump_machdep.c   (props changed)
  stable/8/sys/i386/i386/elan-mmcr.c   (props changed)
  stable/8/sys/i386/i386/elf_machdep.c   (props changed)
  stable/8/sys/i386/i386/exception.s   (props changed)
  stable/8/sys/i386/i386/gdb_machdep.c   (props changed)
  stable/8/sys/i386/i386/genassym.c   (props changed)
  stable/8/sys/i386/i386/geode.c   (props changed)
  stable/8/sys/i386/i386/i686_mem.c   (props changed)
  stable/8/sys/i386/i386/identcpu.c   (props changed)
  stable/8/sys/i386/i386/in_cksum.c   (props changed)
  stable/8/sys/i386/i386/initcpu.c   (props changed)
  stable/8/sys/i386/i386/intr_machdep.c   (props changed)
  stable/8/sys/i386/i386/io.c   (props changed)
  stable/8/sys/i386/i386/io_apic.c   (props changed)
  stable/8/sys/i386/i386/k6_mem.c   (props changed)
  stable/8/sys/i386/i386/legacy.c   (props changed)
  stable/8/sys/i386/i386/local_apic.c   (props changed)
  stable/8/sys/i386/i386/locore.s   (props changed)
  stable/8/sys/i386/i386/longrun.c   (props changed)
  stable/8/sys/i386/i386/machdep.c   (props changed)
  stable/8/sys/i386/i386/mca.c   (props changed)
  stable/8/sys/i386/i386/mem.c   (props changed)
  stable/8/sys/i386/i386/minidump_machdep.c   (props changed)
  stable/8/sys/i386/i386/mp_clock.c   (props changed)
  stable/8/sys/i386/i386/mp_machdep.c   (props changed)
  stable/8/sys/i386/i386/mp_watchdog.c   (props changed)
  stable/8/sys/i386/i386/mpboot.s   (props changed)
  stable/8/sys/i386/i386/mptable.c   (props changed)
  stable/8/sys/i386/i386/mptable_pci.c   (props changed)
  stable/8/sys/i386/i386/msi.c   (props changed)
  stable/8/sys/i386/i386/nexus.c   (props changed)
  stable/8/sys/i386/i386/perfmon.c   (props changed)
  stable/8/sys/i386/i386/pmap.c   (props changed)
  stable/8/sys/i386/i386/ptrace_machdep.c   (props changed)
  stable/8/sys/i386/i386/stack_machdep.c   (props changed)
  stable/8/sys/i386/i386/support.s   (props changed)
  stable/8/sys/i386/i386/swtch.s   (props changed)
  stable/8/sys/i386/i386/symbols.raw   (props changed)
  stable/8/sys/i386/i386/sys_machdep.c   (props changed)
  stable/8/sys/i386/i386/trap.c   (props changed)
  stable/8/sys/i386/i386/tsc.c   (props changed)
  stable/8/sys/i386/i386/uio_machdep.c   (props changed)
  stable/8/sys/i386/i386/vm86.c   (props changed)
  stable/8/sys/i386/i386/vm86bios.s   (props changed)
  stable/8/sys/i386/i386/vm_machdep.c   (props changed)
  stable/8/sys/i386/ibcs2/   (props changed)
  stable/8/sys/i386/ibcs2/Makefile   (props changed)
  stable/8/sys/i386/ibcs2/coff.h   (props changed)
  stable/8/sys/i386/ibcs2/ibcs2_dirent.h   (props changed)
  stable/8/sys/i386/ibcs2/ibcs2_errno.c   (props changed)
  stable/8/sys/i386/ibcs2/ibcs2_errno.h   (props changed)
  stable/8/sys/i386/ibcs2/ibcs2_fcntl.c   (props changed)
  stable/8/sys/i386/ibcs2/ibcs2_fcntl.h   (props changed)
  stable/8/sys/i386/ibcs2/ibcs2_ioctl.c   (props changed)
  stable/8/sys/i386/ibcs2/ibcs2_ioctl.h   (props changed)
  stable/8/sys/i386/ibcs2/ibcs2_ipc.c   (props changed)
  stable/8/sys/i386/ibcs2/ibcs2_ipc.h   (props changed)
  stable/8/sys/i386/ibcs2/ibcs2_isc.c   (props changed)
  stable/8/sys/i386/ibcs2/ibcs2_isc_syscall.h   (props changed)
  stable/8/sys/i386/ibcs2/ibcs2_isc_sysent.c   (props changed)
  stable/8/sys/i386/ibcs2/ibcs2_misc.c   (props changed)
  stable/8/sys/i386/ibcs2/ibcs2_mount.h   (props changed)
  stable/8/sys/i386/ibcs2/ibcs2_msg.c   (props changed)
  stable/8/sys/i386/ibcs2/ibcs2_other.c   (props changed)
  stable/8/sys/i386/ibcs2/ibcs2_proto.h   (props changed)
  stable/8/sys/i386/ibcs2/ibcs2_signal.c   (props changed)
  stable/8/sys/i386/ibcs2/ibcs2_signal.h   (props changed)
  stable/8/sys/i386/ibcs2/ibcs2_socksys.c   (props changed)
  stable/8/sys/i386/ibcs2/ibcs2_socksys.h   (props changed)
  stable/8/sys/i386/ibcs2/ibcs2_stat.c   (props changed)
  stable/8/sys/i386/ibcs2/ibcs2_stat.h   (props changed)
  stable/8/sys/i386/ibcs2/ibcs2_statfs.h   (props changed)
  stable/8/sys/i386/ibcs2/ibcs2_stropts.h   (props changed)
  stable/8/sys/i386/ibcs2/ibcs2_syscall.h   (props changed)
  stable/8/sys/i386/ibcs2/ibcs2_sysent.c   (props changed)
  stable/8/sys/i386/ibcs2/ibcs2_sysi86.c   (props changed)
  stable/8/sys/i386/ibcs2/ibcs2_sysvec.c   (props changed)
  stable/8/sys/i386/ibcs2/ibcs2_termios.h   (props changed)
  stable/8/sys/i386/ibcs2/ibcs2_time.h   (props changed)
  stable/8/sys/i386/ibcs2/ibcs2_types.h   (props changed)
  stable/8/sys/i386/ibcs2/ibcs2_unistd.h   (props changed)
  stable/8/sys/i386/ibcs2/ibcs2_ustat.h   (props changed)
  stable/8/sys/i386/ibcs2/ibcs2_util.c   (props changed)
  stable/8/sys/i386/ibcs2/ibcs2_util.h   (props changed)
  stable/8/sys/i386/ibcs2/ibcs2_utime.h   (props changed)
  stable/8/sys/i386/ibcs2/ibcs2_utsname.h   (props changed)
  stable/8/sys/i386/ibcs2/ibcs2_xenix.c   (props changed)
  stable/8/sys/i386/ibcs2/ibcs2_xenix.h   (props changed)
  stable/8/sys/i386/ibcs2/ibcs2_xenix_syscall.h   (props changed)
  stable/8/sys/i386/ibcs2/ibcs2_xenix_sysent.c   (props changed)
  stable/8/sys/i386/ibcs2/imgact_coff.c   (props changed)
  stable/8/sys/i386/ibcs2/syscalls.conf   (props changed)
  stable/8/sys/i386/ibcs2/syscalls.isc   (props changed)
  stable/8/sys/i386/ibcs2/syscalls.isc.conf   (props changed)
  stable/8/sys/i386/ibcs2/syscalls.master   (props changed)
  stable/8/sys/i386/ibcs2/syscalls.xenix   (props changed)
  stable/8/sys/i386/ibcs2/syscalls.xenix.conf   (props changed)
  stable/8/sys/i386/include/   (props changed)
  stable/8/sys/i386/include/_bus.h   (props changed)
  stable/8/sys/i386/include/_inttypes.h   (props changed)
  stable/8/sys/i386/include/_limits.h   (props changed)
  stable/8/sys/i386/include/_stdint.h   (props changed)
  stable/8/sys/i386/include/_types.h   (props changed)
  stable/8/sys/i386/include/acpica_machdep.h   (props changed)
  stable/8/sys/i386/include/apicreg.h   (props changed)
  stable/8/sys/i386/include/apicvar.h   (props changed)
  stable/8/sys/i386/include/apm_bios.h   (props changed)
  stable/8/sys/i386/include/apm_segments.h   (props changed)
  stable/8/sys/i386/include/asm.h   (props changed)
  stable/8/sys/i386/include/asmacros.h   (props changed)
  stable/8/sys/i386/include/atomic.h   (props changed)
  stable/8/sys/i386/include/bootinfo.h   (props changed)
  stable/8/sys/i386/include/bus.h   (props changed)
  stable/8/sys/i386/include/bus_dma.h   (props changed)
  stable/8/sys/i386/include/clock.h   (props changed)
  stable/8/sys/i386/include/cpu.h   (props changed)
  stable/8/sys/i386/include/cpufunc.h   (props changed)
  stable/8/sys/i386/include/cputypes.h   (props changed)
  stable/8/sys/i386/include/cserial.h   (props changed)
  stable/8/sys/i386/include/db_machdep.h   (props changed)
  stable/8/sys/i386/include/elan_mmcr.h   (props changed)
  stable/8/sys/i386/include/elf.h   (props changed)
  stable/8/sys/i386/include/endian.h   (props changed)
  stable/8/sys/i386/include/exec.h   (props changed)
  stable/8/sys/i386/include/float.h   (props changed)
  stable/8/sys/i386/include/floatingpoint.h   (props changed)
  stable/8/sys/i386/include/frame.h   (props changed)
  stable/8/sys/i386/include/gdb_machdep.h   (props changed)
  stable/8/sys/i386/include/ieeefp.h   (props changed)
  stable/8/sys/i386/include/if_wl_wavelan.h   (props changed)
  stable/8/sys/i386/include/in_cksum.h   (props changed)
  stable/8/sys/i386/include/intr_machdep.h   (props changed)
  stable/8/sys/i386/include/ioctl_bt848.h   (props changed)
  stable/8/sys/i386/include/ioctl_meteor.h   (props changed)
  stable/8/sys/i386/include/iodev.h   (props changed)
  stable/8/sys/i386/include/kdb.h   (props changed)
  stable/8/sys/i386/include/legacyvar.h   (props changed)
  stable/8/sys/i386/include/limits.h   (props changed)
  stable/8/sys/i386/include/mca.h   (props changed)
  stable/8/sys/i386/include/md_var.h   (props changed)
  stable/8/sys/i386/include/memdev.h   (props changed)
  stable/8/sys/i386/include/metadata.h   (props changed)
  stable/8/sys/i386/include/minidump.h   (props changed)
  stable/8/sys/i386/include/mp_watchdog.h   (props changed)
  stable/8/sys/i386/include/mptable.h   (props changed)
  stable/8/sys/i386/include/mutex.h   (props changed)
  stable/8/sys/i386/include/nexusvar.h   (props changed)
  stable/8/sys/i386/include/npx.h   (props changed)
  stable/8/sys/i386/include/param.h   (props changed)
  stable/8/sys/i386/include/pc/   (props changed)
  stable/8/sys/i386/include/pcaudioio.h   (props changed)
  stable/8/sys/i386/include/pcb.h   (props changed)
  stable/8/sys/i386/include/pcb_ext.h   (props changed)
  stable/8/sys/i386/include/pci_cfgreg.h   (props changed)
  stable/8/sys/i386/include/pcpu.h   (props changed)
  stable/8/sys/i386/include/perfmon.h   (props changed)
  stable/8/sys/i386/include/pmap.h   (props changed)
  stable/8/sys/i386/include/pmc_mdep.h   (props changed)
  stable/8/sys/i386/include/ppireg.h   (props changed)
  stable/8/sys/i386/include/privatespace.h   (props changed)
  stable/8/sys/i386/include/proc.h   (props changed)
  stable/8/sys/i386/include/profile.h   (props changed)
  stable/8/sys/i386/include/psl.h   (props changed)
  stable/8/sys/i386/include/ptrace.h   (props changed)
  stable/8/sys/i386/include/reg.h   (props changed)
  stable/8/sys/i386/include/reloc.h   (props changed)
  stable/8/sys/i386/include/resource.h   (props changed)
  stable/8/sys/i386/include/runq.h   (props changed)
  stable/8/sys/i386/include/segments.h   (props changed)
  stable/8/sys/i386/include/setjmp.h   (props changed)
  stable/8/sys/i386/include/sf_buf.h   (props changed)
  stable/8/sys/i386/include/sigframe.h   (props changed)
  stable/8/sys/i386/include/signal.h   (props changed)
  stable/8/sys/i386/include/smapi.h   (props changed)
  stable/8/sys/i386/include/smp.h   (props changed)
  stable/8/sys/i386/include/speaker.h   (props changed)
  stable/8/sys/i386/include/specialreg.h   (props changed)
  stable/8/sys/i386/include/stack.h   (props changed)
  stable/8/sys/i386/include/stdarg.h   (props changed)
  stable/8/sys/i386/include/sysarch.h   (props changed)
  stable/8/sys/i386/include/timerreg.h   (props changed)
  stable/8/sys/i386/include/trap.h   (props changed)
  stable/8/sys/i386/include/tss.h   (props changed)
  stable/8/sys/i386/include/ucontext.h   (props changed)
  stable/8/sys/i386/include/varargs.h   (props changed)
  stable/8/sys/i386/include/vm.h   (props changed)
  stable/8/sys/i386/include/vm86.h   (props changed)
  stable/8/sys/i386/include/vmparam.h   (props changed)
  stable/8/sys/i386/include/xbox.h   (props changed)
  stable/8/sys/i386/include/xen/   (props changed)
  stable/8/sys/i386/isa/   (props changed)
  stable/8/sys/i386/isa/atpic.c   (props changed)
  stable/8/sys/i386/isa/atpic_vector.s   (props changed)
  stable/8/sys/i386/isa/ccbque.h   (props changed)
  stable/8/sys/i386/isa/clock.c   (props changed)
  stable/8/sys/i386/isa/dpms.c   (props changed)
  stable/8/sys/i386/isa/elcr.c   (props changed)
  stable/8/sys/i386/isa/elink.c   (props changed)
  stable/8/sys/i386/isa/elink.h   (props changed)
  stable/8/sys/i386/isa/icu.h   (props changed)
  stable/8/sys/i386/isa/isa.c   (props changed)
  stable/8/sys/i386/isa/isa.h   (props changed)
  stable/8/sys/i386/isa/isa_dma.c   (props changed)
  stable/8/sys/i386/isa/nmi.c   (props changed)
  stable/8/sys/i386/isa/npx.c   (props changed)
  stable/8/sys/i386/isa/pmtimer.c   (props changed)
  stable/8/sys/i386/isa/prof_machdep.c   (props changed)
  stable/8/sys/i386/isa/spic.c   (props changed)
  stable/8/sys/i386/isa/spicreg.h   (props changed)
  stable/8/sys/i386/isa/vesa.c   (props changed)
  stable/8/sys/i386/linux/   (props changed)
  stable/8/sys/i386/linux/Makefile   (props changed)
  stable/8/sys/i386/linux/imgact_linux.c   (props changed)
  stable/8/sys/i386/linux/linux.h   (props changed)
  stable/8/sys/i386/linux/linux_dummy.c   (props changed)
  stable/8/sys/i386/linux/linux_genassym.c   (props changed)
  stable/8/sys/i386/linux/linux_ipc64.h   (props changed)
  stable/8/sys/i386/linux/linux_locore.s   (props changed)
  stable/8/sys/i386/linux/linux_machdep.c   (props changed)
  stable/8/sys/i386/linux/linux_proto.h   (props changed)
  stable/8/sys/i386/linux/linux_ptrace.c   (props changed)
  stable/8/sys/i386/linux/linux_support.s   (props changed)
  stable/8/sys/i386/linux/linux_syscall.h   (props changed)
  stable/8/sys/i386/linux/linux_sysent.c   (props changed)
  stable/8/sys/i386/linux/linux_sysvec.c   (props changed)
  stable/8/sys/i386/linux/syscalls.conf   (props changed)
  stable/8/sys/i386/linux/syscalls.master   (props changed)
  stable/8/sys/i386/pci/   (props changed)
  stable/8/sys/i386/pci/pci_bus.c   (props changed)
  stable/8/sys/i386/pci/pci_cfgreg.c   (props changed)
  stable/8/sys/i386/pci/pci_pir.c   (props changed)
  stable/8/sys/i386/svr4/   (props changed)
  stable/8/sys/i386/svr4/svr4_genassym.c   (props changed)
  stable/8/sys/i386/svr4/svr4_locore.s   (props changed)
  stable/8/sys/i386/svr4/svr4_machdep.c   (props changed)
  stable/8/sys/i386/svr4/svr4_machdep.h   (props changed)
  stable/8/sys/i386/xbox/   (props changed)
  stable/8/sys/i386/xbox/pic16l.s   (props changed)
  stable/8/sys/i386/xbox/xbox.c   (props changed)
  stable/8/sys/i386/xbox/xboxfb.c   (props changed)
  stable/8/sys/i386/xen/   (props changed)
  stable/8/sys/i386/xen/clock.c   (props changed)
  stable/8/sys/i386/xen/exception.s   (props changed)
  stable/8/sys/i386/xen/locore.s   (props changed)
  stable/8/sys/i386/xen/mp_machdep.c   (props changed)
  stable/8/sys/i386/xen/mptable.c   (props changed)
  stable/8/sys/i386/xen/pmap.c   (props changed)
  stable/8/sys/i386/xen/xen_clock_util.c   (props changed)
  stable/8/sys/i386/xen/xen_machdep.c   (props changed)
  stable/8/sys/i386/xen/xen_rtc.c   (props changed)
  stable/8/sys/ia64/   (props changed)
  stable/8/sys/ia64/acpica/   (props changed)
  stable/8/sys/ia64/compile/   (props changed)
  stable/8/sys/ia64/conf/   (props changed)
  stable/8/sys/ia64/disasm/   (props changed)
  stable/8/sys/ia64/ia32/   (props changed)
  stable/8/sys/ia64/ia64/   (props changed)
  stable/8/sys/ia64/include/   (props changed)
  stable/8/sys/ia64/isa/   (props changed)
  stable/8/sys/ia64/pci/   (props changed)
  stable/8/sys/isa/   (props changed)
  stable/8/sys/isa/atrtc.c   (props changed)
  stable/8/sys/isa/isa_common.c   (props changed)
  stable/8/sys/isa/isa_common.h   (props changed)
  stable/8/sys/isa/isa_dmareg.h   (props changed)
  stable/8/sys/isa/isa_if.m   (props changed)
  stable/8/sys/isa/isahint.c   (props changed)
  stable/8/sys/isa/isareg.h   (props changed)
  stable/8/sys/isa/isavar.h   (props changed)
  stable/8/sys/isa/orm.c   (props changed)
  stable/8/sys/isa/pnp.c   (props changed)
  stable/8/sys/isa/pnpparse.c   (props changed)
  stable/8/sys/isa/pnpreg.h   (props changed)
  stable/8/sys/isa/pnpvar.h   (props changed)
  stable/8/sys/isa/rtc.h   (props changed)
  stable/8/sys/isa/syscons_isa.c   (props changed)
  stable/8/sys/isa/vga_isa.c   (props changed)
  stable/8/sys/kern/   (props changed)
  stable/8/sys/kern/Make.tags.inc   (props changed)
  stable/8/sys/kern/Makefile   (props changed)
  stable/8/sys/kern/bus_if.m   (props changed)
  stable/8/sys/kern/clock_if.m   (props changed)
  stable/8/sys/kern/cpufreq_if.m   (props changed)
  stable/8/sys/kern/device_if.m   (props changed)
  stable/8/sys/kern/genassym.sh   (props changed)
  stable/8/sys/kern/imgact_aout.c   (props changed)
  stable/8/sys/kern/imgact_elf.c   (props changed)
  stable/8/sys/kern/imgact_elf32.c   (props changed)
  stable/8/sys/kern/imgact_elf64.c   (props changed)
  stable/8/sys/kern/imgact_gzip.c   (props changed)
  stable/8/sys/kern/imgact_shell.c   (props changed)
  stable/8/sys/kern/inflate.c   (props changed)
  stable/8/sys/kern/init_main.c   (props changed)
  stable/8/sys/kern/init_sysent.c   (props changed)
  stable/8/sys/kern/kern_acct.c   (props changed)
  stable/8/sys/kern/kern_alq.c   (props changed)
  stable/8/sys/kern/kern_clock.c   (props changed)
  stable/8/sys/kern/kern_condvar.c   (props changed)
  stable/8/sys/kern/kern_conf.c   (props changed)
  stable/8/sys/kern/kern_cons.c   (props changed)
  stable/8/sys/kern/kern_context.c   (props changed)
  stable/8/sys/kern/kern_cpu.c   (props changed)
  stable/8/sys/kern/kern_cpuset.c   (props changed)
  stable/8/sys/kern/kern_ctf.c   (props changed)
  stable/8/sys/kern/kern_descrip.c   (props changed)
  stable/8/sys/kern/kern_dtrace.c   (props changed)
  stable/8/sys/kern/kern_environment.c   (props changed)
  stable/8/sys/kern/kern_event.c   (props changed)
  stable/8/sys/kern/kern_exec.c   (props changed)
  stable/8/sys/kern/kern_exit.c   (props changed)
  stable/8/sys/kern/kern_fail.c   (props changed)
  stable/8/sys/kern/kern_fork.c   (props changed)
  stable/8/sys/kern/kern_idle.c   (props changed)
  stable/8/sys/kern/kern_intr.c   (props changed)
  stable/8/sys/kern/kern_jail.c   (props changed)
  stable/8/sys/kern/kern_kthread.c   (props changed)
  stable/8/sys/kern/kern_ktr.c   (props changed)
  stable/8/sys/kern/kern_ktrace.c   (props changed)
  stable/8/sys/kern/kern_linker.c   (props changed)
  stable/8/sys/kern/kern_lock.c   (props changed)
  stable/8/sys/kern/kern_lockf.c   (props changed)
  stable/8/sys/kern/kern_lockstat.c   (props changed)
  stable/8/sys/kern/kern_malloc.c   (props changed)
  stable/8/sys/kern/kern_mbuf.c   (props changed)
  stable/8/sys/kern/kern_mib.c   (props changed)
  stable/8/sys/kern/kern_module.c   (props changed)
  stable/8/sys/kern/kern_mtxpool.c   (props changed)
  stable/8/sys/kern/kern_mutex.c   (props changed)
  stable/8/sys/kern/kern_ntptime.c   (props changed)
  stable/8/sys/kern/kern_osd.c   (props changed)
  stable/8/sys/kern/kern_physio.c   (props changed)
  stable/8/sys/kern/kern_pmc.c   (props changed)
  stable/8/sys/kern/kern_poll.c   (props changed)
  stable/8/sys/kern/kern_priv.c   (props changed)
  stable/8/sys/kern/kern_proc.c   (props changed)
  stable/8/sys/kern/kern_prot.c   (props changed)
  stable/8/sys/kern/kern_resource.c   (props changed)
  stable/8/sys/kern/kern_rmlock.c   (props changed)
  stable/8/sys/kern/kern_rwlock.c   (props changed)
  stable/8/sys/kern/kern_sdt.c   (props changed)
  stable/8/sys/kern/kern_sema.c   (props changed)
  stable/8/sys/kern/kern_shutdown.c   (props changed)
  stable/8/sys/kern/kern_sig.c   (props changed)
  stable/8/sys/kern/kern_subr.c   (props changed)
  stable/8/sys/kern/kern_switch.c   (props changed)
  stable/8/sys/kern/kern_sx.c   (props changed)
  stable/8/sys/kern/kern_synch.c   (props changed)
  stable/8/sys/kern/kern_syscalls.c   (props changed)
  stable/8/sys/kern/kern_sysctl.c   (props changed)
  stable/8/sys/kern/kern_tc.c   (props changed)
  stable/8/sys/kern/kern_thr.c   (props changed)
  stable/8/sys/kern/kern_thread.c   (props changed)
  stable/8/sys/kern/kern_time.c   (props changed)
  stable/8/sys/kern/kern_timeout.c   (props changed)
  stable/8/sys/kern/kern_umtx.c   (props changed)
  stable/8/sys/kern/kern_uuid.c   (props changed)
  stable/8/sys/kern/kern_xxx.c   (props changed)
  stable/8/sys/kern/ksched.c   (props changed)
  stable/8/sys/kern/link_elf.c   (props changed)
  stable/8/sys/kern/link_elf_obj.c   (props changed)
  stable/8/sys/kern/linker_if.m   (props changed)
  stable/8/sys/kern/makesyscalls.sh   (props changed)
  stable/8/sys/kern/md4c.c   (props changed)
  stable/8/sys/kern/md5c.c   (props changed)
  stable/8/sys/kern/p1003_1b.c   (props changed)
  stable/8/sys/kern/posix4_mib.c   (props changed)
  stable/8/sys/kern/sched_4bsd.c   (props changed)
  stable/8/sys/kern/sched_ule.c   (props changed)
  stable/8/sys/kern/serdev_if.m   (props changed)
  stable/8/sys/kern/stack_protector.c   (props changed)
  stable/8/sys/kern/subr_acl_nfs4.c   (props changed)
  stable/8/sys/kern/subr_acl_posix1e.c   (props changed)
  stable/8/sys/kern/subr_autoconf.c   (props changed)
  stable/8/sys/kern/subr_blist.c   (props changed)
  stable/8/sys/kern/subr_bufring.c   (props changed)
  stable/8/sys/kern/subr_bus.c   (props changed)
  stable/8/sys/kern/subr_clock.c   (props changed)
  stable/8/sys/kern/subr_devstat.c   (props changed)
  stable/8/sys/kern/subr_disk.c   (props changed)
  stable/8/sys/kern/subr_eventhandler.c   (props changed)
  stable/8/sys/kern/subr_fattime.c   (props changed)
  stable/8/sys/kern/subr_firmware.c   (props changed)
  stable/8/sys/kern/subr_hints.c   (props changed)
  stable/8/sys/kern/subr_kdb.c   (props changed)
  stable/8/sys/kern/subr_kobj.c   (props changed)
  stable/8/sys/kern/subr_lock.c   (props changed)
  stable/8/sys/kern/subr_log.c   (props changed)
  stable/8/sys/kern/subr_mbpool.c   (props changed)
  stable/8/sys/kern/subr_mchain.c   (props changed)
  stable/8/sys/kern/subr_module.c   (props changed)
  stable/8/sys/kern/subr_msgbuf.c   (props changed)
  stable/8/sys/kern/subr_param.c   (props changed)
  stable/8/sys/kern/subr_pcpu.c   (props changed)
  stable/8/sys/kern/subr_power.c   (props changed)
  stable/8/sys/kern/subr_prf.c   (props changed)
  stable/8/sys/kern/subr_prof.c   (props changed)
  stable/8/sys/kern/subr_rman.c   (props changed)
  stable/8/sys/kern/subr_rtc.c   (props changed)
  stable/8/sys/kern/subr_sbuf.c   (props changed)
  stable/8/sys/kern/subr_scanf.c   (props changed)
  stable/8/sys/kern/subr_sglist.c   (props changed)
  stable/8/sys/kern/subr_sleepqueue.c   (props changed)
  stable/8/sys/kern/subr_smp.c   (props changed)
  stable/8/sys/kern/subr_stack.c   (props changed)
  stable/8/sys/kern/subr_taskqueue.c   (props changed)
  stable/8/sys/kern/subr_trap.c   (props changed)
  stable/8/sys/kern/subr_turnstile.c   (props changed)
  stable/8/sys/kern/subr_unit.c   (props changed)
  stable/8/sys/kern/subr_witness.c   (props changed)
  stable/8/sys/kern/sys_generic.c   (props changed)
  stable/8/sys/kern/sys_pipe.c   (props changed)
  stable/8/sys/kern/sys_process.c   (props changed)
  stable/8/sys/kern/sys_socket.c   (props changed)
  stable/8/sys/kern/syscalls.c   (props changed)
  stable/8/sys/kern/syscalls.master   (props changed)
  stable/8/sys/kern/systrace_args.c   (props changed)
  stable/8/sys/kern/sysv_ipc.c   (props changed)
  stable/8/sys/kern/sysv_msg.c   (props changed)
  stable/8/sys/kern/sysv_sem.c   (props changed)
  stable/8/sys/kern/sysv_shm.c   (props changed)
  stable/8/sys/kern/tty.c   (props changed)
  stable/8/sys/kern/tty_compat.c   (props changed)
  stable/8/sys/kern/tty_info.c   (props changed)
  stable/8/sys/kern/tty_inq.c   (props changed)
  stable/8/sys/kern/tty_outq.c   (props changed)
  stable/8/sys/kern/tty_pts.c   (props changed)
  stable/8/sys/kern/tty_pty.c   (props changed)
  stable/8/sys/kern/tty_tty.c   (props changed)
  stable/8/sys/kern/tty_ttydisc.c   (props changed)
  stable/8/sys/kern/uipc_accf.c   (props changed)
  stable/8/sys/kern/uipc_cow.c   (props changed)
  stable/8/sys/kern/uipc_debug.c   (props changed)
  stable/8/sys/kern/uipc_domain.c   (props changed)
  stable/8/sys/kern/uipc_mbuf.c   (props changed)
  stable/8/sys/kern/uipc_mbuf2.c   (props changed)
  stable/8/sys/kern/uipc_mqueue.c   (props changed)
  stable/8/sys/kern/uipc_sem.c   (props changed)
  stable/8/sys/kern/uipc_shm.c   (props changed)
  stable/8/sys/kern/uipc_sockbuf.c   (props changed)
  stable/8/sys/kern/uipc_socket.c   (props changed)
  stable/8/sys/kern/uipc_syscalls.c   (props changed)
  stable/8/sys/kern/uipc_usrreq.c   (props changed)
  stable/8/sys/kern/vfs_acl.c   (props changed)
  stable/8/sys/kern/vfs_aio.c   (props changed)
  stable/8/sys/kern/vfs_bio.c   (props changed)
  stable/8/sys/kern/vfs_cache.c   (props changed)
  stable/8/sys/kern/vfs_cluster.c   (props changed)
  stable/8/sys/kern/vfs_default.c   (props changed)
  stable/8/sys/kern/vfs_export.c   (props changed)
  stable/8/sys/kern/vfs_extattr.c   (props changed)
  stable/8/sys/kern/vfs_hash.c   (props changed)
  stable/8/sys/kern/vfs_init.c   (props changed)
  stable/8/sys/kern/vfs_lookup.c   (props changed)
  stable/8/sys/kern/vfs_mount.c   (props changed)
  stable/8/sys/kern/vfs_subr.c   (props changed)
  stable/8/sys/kern/vfs_syscalls.c   (props changed)
  stable/8/sys/kern/vfs_vnops.c   (props changed)
  stable/8/sys/kern/vnode_if.src   (props changed)
  stable/8/sys/kgssapi/   (props changed)
  stable/8/sys/kgssapi/gss_accept_sec_context.c   (props changed)
  stable/8/sys/kgssapi/gss_acquire_cred.c   (props changed)
  stable/8/sys/kgssapi/gss_add_oid_set_member.c   (props changed)
  stable/8/sys/kgssapi/gss_canonicalize_name.c   (props changed)
  stable/8/sys/kgssapi/gss_create_empty_oid_set.c   (props changed)
  stable/8/sys/kgssapi/gss_delete_sec_context.c   (props changed)
  stable/8/sys/kgssapi/gss_display_status.c   (props changed)
  stable/8/sys/kgssapi/gss_export_name.c   (props changed)
  stable/8/sys/kgssapi/gss_get_mic.c   (props changed)
  stable/8/sys/kgssapi/gss_impl.c   (props changed)
  stable/8/sys/kgssapi/gss_import_name.c   (props changed)
  stable/8/sys/kgssapi/gss_init_sec_context.c   (props changed)
  stable/8/sys/kgssapi/gss_names.c   (props changed)
  stable/8/sys/kgssapi/gss_pname_to_uid.c   (props changed)
  stable/8/sys/kgssapi/gss_release_buffer.c   (props changed)
  stable/8/sys/kgssapi/gss_release_cred.c   (props changed)
  stable/8/sys/kgssapi/gss_release_name.c   (props changed)
  stable/8/sys/kgssapi/gss_release_oid_set.c   (props changed)
  stable/8/sys/kgssapi/gss_set_cred_option.c   (props changed)
  stable/8/sys/kgssapi/gss_test_oid_set_member.c   (props changed)
  stable/8/sys/kgssapi/gss_unwrap.c   (props changed)
  stable/8/sys/kgssapi/gss_verify_mic.c   (props changed)
  stable/8/sys/kgssapi/gss_wrap.c   (props changed)
  stable/8/sys/kgssapi/gss_wrap_size_limit.c   (props changed)
  stable/8/sys/kgssapi/gssapi.h   (props changed)
  stable/8/sys/kgssapi/gssapi_impl.h   (props changed)
  stable/8/sys/kgssapi/gssd.x   (props changed)
  stable/8/sys/kgssapi/gssd_prot.c   (props changed)
  stable/8/sys/kgssapi/gsstest.c   (props changed)
  stable/8/sys/kgssapi/kgss_if.m   (props changed)
  stable/8/sys/kgssapi/krb5/   (props changed)
  stable/8/sys/libkern/   (props changed)
  stable/8/sys/libkern/arc4random.c   (props changed)
  stable/8/sys/libkern/arm/   (props changed)
  stable/8/sys/libkern/ashldi3.c   (props changed)
  stable/8/sys/libkern/ashrdi3.c   (props changed)
  stable/8/sys/libkern/bcd.c   (props changed)
  stable/8/sys/libkern/bcmp.c   (props changed)
  stable/8/sys/libkern/bsearch.c   (props changed)
  stable/8/sys/libkern/cmpdi2.c   (props changed)
  stable/8/sys/libkern/crc32.c   (props changed)
  stable/8/sys/libkern/divdi3.c   (props changed)
  stable/8/sys/libkern/ffs.c   (props changed)
  stable/8/sys/libkern/ffsl.c   (props changed)
  stable/8/sys/libkern/fls.c   (props changed)
  stable/8/sys/libkern/flsl.c   (props changed)
  stable/8/sys/libkern/fnmatch.c   (props changed)
  stable/8/sys/libkern/gets.c   (props changed)
  stable/8/sys/libkern/ia64/   (props changed)
  stable/8/sys/libkern/iconv.c   (props changed)
  stable/8/sys/libkern/iconv_converter_if.m   (props changed)
  stable/8/sys/libkern/iconv_xlat.c   (props changed)
  stable/8/sys/libkern/iconv_xlat16.c   (props changed)
  stable/8/sys/libkern/index.c   (props changed)
  stable/8/sys/libkern/inet_ntoa.c   (props changed)
  stable/8/sys/libkern/jenkins.h   (props changed)
  stable/8/sys/libkern/lshrdi3.c   (props changed)
  stable/8/sys/libkern/mcount.c   (props changed)
  stable/8/sys/libkern/memcmp.c   (props changed)
  stable/8/sys/libkern/memmove.c   (props changed)
  stable/8/sys/libkern/memset.c   (props changed)
  stable/8/sys/libkern/moddi3.c   (props changed)
  stable/8/sys/libkern/qdivrem.c   (props changed)
  stable/8/sys/libkern/qsort.c   (props changed)
  stable/8/sys/libkern/qsort_r.c   (props changed)
  stable/8/sys/libkern/quad.h   (props changed)
  stable/8/sys/libkern/random.c   (props changed)
  stable/8/sys/libkern/rindex.c   (props changed)
  stable/8/sys/libkern/scanc.c   (props changed)
  stable/8/sys/libkern/skpc.c   (props changed)
  stable/8/sys/libkern/strcasecmp.c   (props changed)
  stable/8/sys/libkern/strcat.c   (props changed)
  stable/8/sys/libkern/strcmp.c   (props changed)
  stable/8/sys/libkern/strcpy.c   (props changed)
  stable/8/sys/libkern/strcspn.c   (props changed)
  stable/8/sys/libkern/strdup.c   (props changed)
  stable/8/sys/libkern/strlcat.c   (props changed)
  stable/8/sys/libkern/strlcpy.c   (props changed)
  stable/8/sys/libkern/strlen.c   (props changed)
  stable/8/sys/libkern/strncmp.c   (props changed)
  stable/8/sys/libkern/strncpy.c   (props changed)
  stable/8/sys/libkern/strsep.c   (props changed)
  stable/8/sys/libkern/strspn.c   (props changed)
  stable/8/sys/libkern/strstr.c   (props changed)
  stable/8/sys/libkern/strtol.c   (props changed)
  stable/8/sys/libkern/strtoq.c   (props changed)
  stable/8/sys/libkern/strtoul.c   (props changed)
  stable/8/sys/libkern/strtouq.c   (props changed)
  stable/8/sys/libkern/strvalid.c   (props changed)
  stable/8/sys/libkern/ucmpdi2.c   (props changed)
  stable/8/sys/libkern/udivdi3.c   (props changed)
  stable/8/sys/libkern/umoddi3.c   (props changed)
  stable/8/sys/mips/   (props changed)
  stable/8/sys/mips/adm5120/   (props changed)
  stable/8/sys/mips/compile/   (props changed)
  stable/8/sys/mips/conf/   (props changed)
  stable/8/sys/mips/idt/   (props changed)
  stable/8/sys/mips/include/   (props changed)
  stable/8/sys/mips/malta/   (props changed)
  stable/8/sys/mips/mips/   (props changed)
  stable/8/sys/mips/sentry5/   (props changed)
  stable/8/sys/modules/   (props changed)
  stable/8/sys/modules/3dfx/   (props changed)
  stable/8/sys/modules/3dfx_linux/   (props changed)
  stable/8/sys/modules/Makefile   (props changed)
  stable/8/sys/modules/Makefile.inc   (props changed)
  stable/8/sys/modules/aac/   (props changed)
  stable/8/sys/modules/accf_data/   (props changed)
  stable/8/sys/modules/accf_dns/   (props changed)
  stable/8/sys/modules/accf_http/   (props changed)
  stable/8/sys/modules/acpi/   (props changed)
  stable/8/sys/modules/ae/   (props changed)
  stable/8/sys/modules/age/   (props changed)
  stable/8/sys/modules/agp/   (props changed)
  stable/8/sys/modules/aha/   (props changed)
  stable/8/sys/modules/ahb/   (props changed)
  stable/8/sys/modules/ahci/   (props changed)
  stable/8/sys/modules/aic/   (props changed)
  stable/8/sys/modules/aic7xxx/   (props changed)
  stable/8/sys/modules/aio/   (props changed)
  stable/8/sys/modules/alc/   (props changed)
  stable/8/sys/modules/ale/   (props changed)
  stable/8/sys/modules/amd/   (props changed)
  stable/8/sys/modules/amdtemp/   (props changed)
  stable/8/sys/modules/amr/   (props changed)
  stable/8/sys/modules/an/   (props changed)
  stable/8/sys/modules/aout/   (props changed)
  stable/8/sys/modules/apm/   (props changed)
  stable/8/sys/modules/arcmsr/   (props changed)
  stable/8/sys/modules/arcnet/   (props changed)
  stable/8/sys/modules/asmc/   (props changed)
  stable/8/sys/modules/asr/   (props changed)
  stable/8/sys/modules/ata/   (props changed)
  stable/8/sys/modules/ath/   (props changed)
  stable/8/sys/modules/auxio/   (props changed)
  stable/8/sys/modules/bce/   (props changed)
  stable/8/sys/modules/bfe/   (props changed)
  stable/8/sys/modules/bge/   (props changed)
  stable/8/sys/modules/bios/   (props changed)
  stable/8/sys/modules/bktr/   (props changed)
  stable/8/sys/modules/bm/   (props changed)
  stable/8/sys/modules/bridgestp/   (props changed)
  stable/8/sys/modules/bwi/   (props changed)
  stable/8/sys/modules/cam/   (props changed)
  stable/8/sys/modules/canbepm/   (props changed)
  stable/8/sys/modules/canbus/   (props changed)
  stable/8/sys/modules/cardbus/   (props changed)
  stable/8/sys/modules/cas/   (props changed)
  stable/8/sys/modules/cbb/   (props changed)
  stable/8/sys/modules/cd9660/   (props changed)
  stable/8/sys/modules/cd9660_iconv/   (props changed)
  stable/8/sys/modules/ce/   (props changed)
  stable/8/sys/modules/ciss/   (props changed)
  stable/8/sys/modules/cm/   (props changed)
  stable/8/sys/modules/cmx/   (props changed)
  stable/8/sys/modules/coda/   (props changed)
  stable/8/sys/modules/coda5/   (props changed)
  stable/8/sys/modules/coff/   (props changed)
  stable/8/sys/modules/coretemp/   (props changed)
  stable/8/sys/modules/cp/   (props changed)
  stable/8/sys/modules/cpuctl/   (props changed)
  stable/8/sys/modules/cpufreq/   (props changed)
  stable/8/sys/modules/crypto/   (props changed)
  stable/8/sys/modules/cryptodev/   (props changed)
  stable/8/sys/modules/cs/   (props changed)
  stable/8/sys/modules/ctau/   (props changed)
  stable/8/sys/modules/cx/   (props changed)
  stable/8/sys/modules/cxgb/   (props changed)
  stable/8/sys/modules/cyclic/   (props changed)
  stable/8/sys/modules/dc/   (props changed)
  stable/8/sys/modules/dcons/   (props changed)
  stable/8/sys/modules/dcons_crom/   (props changed)
  stable/8/sys/modules/de/   (props changed)
  stable/8/sys/modules/digi/   (props changed)
  stable/8/sys/modules/dpms/   (props changed)
  stable/8/sys/modules/dpt/   (props changed)
  stable/8/sys/modules/drm/   (props changed)
  stable/8/sys/modules/dtrace/   (props changed)
  stable/8/sys/modules/dummynet/   (props changed)
  stable/8/sys/modules/ed/   (props changed)
  stable/8/sys/modules/elink/   (props changed)
  stable/8/sys/modules/em/   (props changed)
  stable/8/sys/modules/en/   (props changed)
  stable/8/sys/modules/ep/   (props changed)
  stable/8/sys/modules/esp/   (props changed)
  stable/8/sys/modules/et/   (props changed)
  stable/8/sys/modules/ex/   (props changed)
  stable/8/sys/modules/exca/   (props changed)
  stable/8/sys/modules/ext2fs/   (props changed)
  stable/8/sys/modules/fatm/   (props changed)
  stable/8/sys/modules/fdc/   (props changed)
  stable/8/sys/modules/fdescfs/   (props changed)
  stable/8/sys/modules/fe/   (props changed)
  stable/8/sys/modules/firewire/   (props changed)
  stable/8/sys/modules/firmware/   (props changed)
  stable/8/sys/modules/fxp/   (props changed)
  stable/8/sys/modules/gem/   (props changed)
  stable/8/sys/modules/geom/   (props changed)
  stable/8/sys/modules/glxsb/   (props changed)
  stable/8/sys/modules/hatm/   (props changed)
  stable/8/sys/modules/hifn/   (props changed)
  stable/8/sys/modules/hme/   (props changed)
  stable/8/sys/modules/hpfs/   (props changed)
  stable/8/sys/modules/hptiop/   (props changed)
  stable/8/sys/modules/hptmv/   (props changed)
  stable/8/sys/modules/hptrr/   (props changed)
  stable/8/sys/modules/hwpmc/   (props changed)
  stable/8/sys/modules/i2c/   (props changed)
  stable/8/sys/modules/ibcs2/   (props changed)
  stable/8/sys/modules/ichwd/   (props changed)
  stable/8/sys/modules/ida/   (props changed)
  stable/8/sys/modules/ie/   (props changed)
  stable/8/sys/modules/if_bridge/   (props changed)
  stable/8/sys/modules/if_disc/   (props changed)
  stable/8/sys/modules/if_edsc/   (props changed)
  stable/8/sys/modules/if_ef/   (props changed)
  stable/8/sys/modules/if_epair/   (props changed)
  stable/8/sys/modules/if_faith/   (props changed)
  stable/8/sys/modules/if_gif/   (props changed)
  stable/8/sys/modules/if_gre/   (props changed)
  stable/8/sys/modules/if_lagg/   (props changed)
  stable/8/sys/modules/if_ndis/   (props changed)
  stable/8/sys/modules/if_stf/   (props changed)
  stable/8/sys/modules/if_tap/   (props changed)
  stable/8/sys/modules/if_tun/   (props changed)
  stable/8/sys/modules/if_vlan/   (props changed)
  stable/8/sys/modules/igb/   (props changed)
  stable/8/sys/modules/iir/   (props changed)
  stable/8/sys/modules/io/   (props changed)
  stable/8/sys/modules/ip6_mroute_mod/   (props changed)
  stable/8/sys/modules/ip_mroute_mod/   (props changed)
  stable/8/sys/modules/ipdivert/   (props changed)
  stable/8/sys/modules/ipfilter/   (props changed)
  stable/8/sys/modules/ipfw/   (props changed)
  stable/8/sys/modules/ipfw_nat/   (props changed)
  stable/8/sys/modules/ipmi/   (props changed)
  stable/8/sys/modules/ips/   (props changed)
  stable/8/sys/modules/ipw/   (props changed)
  stable/8/sys/modules/ipwfw/   (props changed)
  stable/8/sys/modules/iscsi/   (props changed)
  stable/8/sys/modules/isp/   (props changed)
  stable/8/sys/modules/ispfw/   (props changed)
  stable/8/sys/modules/iwi/   (props changed)
  stable/8/sys/modules/iwifw/   (props changed)
  stable/8/sys/modules/iwn/   (props changed)
  stable/8/sys/modules/iwnfw/   (props changed)
  stable/8/sys/modules/ixgb/   (props changed)
  stable/8/sys/modules/ixgbe/   (props changed)
  stable/8/sys/modules/jme/   (props changed)
  stable/8/sys/modules/joy/   (props changed)
  stable/8/sys/modules/kbdmux/   (props changed)
  stable/8/sys/modules/kgssapi/   (props changed)
  stable/8/sys/modules/kgssapi_krb5/   (props changed)
  stable/8/sys/modules/krpc/   (props changed)
  stable/8/sys/modules/ksyms/   (props changed)
  stable/8/sys/modules/le/   (props changed)
  stable/8/sys/modules/lge/   (props changed)
  stable/8/sys/modules/libalias/   (props changed)
  stable/8/sys/modules/libiconv/   (props changed)
  stable/8/sys/modules/libmbpool/   (props changed)
  stable/8/sys/modules/libmchain/   (props changed)
  stable/8/sys/modules/linprocfs/   (props changed)
  stable/8/sys/modules/linsysfs/   (props changed)
  stable/8/sys/modules/linux/   (props changed)
  stable/8/sys/modules/lmc/   (props changed)
  stable/8/sys/modules/lpt/   (props changed)
  stable/8/sys/modules/mac_biba/   (props changed)
  stable/8/sys/modules/mac_bsdextended/   (props changed)
  stable/8/sys/modules/mac_ifoff/   (props changed)
  stable/8/sys/modules/mac_lomac/   (props changed)
  stable/8/sys/modules/mac_mls/   (props changed)
  stable/8/sys/modules/mac_none/   (props changed)
  stable/8/sys/modules/mac_partition/   (props changed)
  stable/8/sys/modules/mac_portacl/   (props changed)
  stable/8/sys/modules/mac_seeotheruids/   (props changed)
  stable/8/sys/modules/mac_stub/   (props changed)
  stable/8/sys/modules/mac_test/   (props changed)
  stable/8/sys/modules/malo/   (props changed)
  stable/8/sys/modules/mcd/   (props changed)
  stable/8/sys/modules/md/   (props changed)
  stable/8/sys/modules/mem/   (props changed)
  stable/8/sys/modules/mfi/   (props changed)
  stable/8/sys/modules/mii/   (props changed)
  stable/8/sys/modules/mlx/   (props changed)
  stable/8/sys/modules/mly/   (props changed)
  stable/8/sys/modules/mmc/   (props changed)
  stable/8/sys/modules/mmcsd/   (props changed)
  stable/8/sys/modules/mpt/   (props changed)
  stable/8/sys/modules/mqueue/   (props changed)
  stable/8/sys/modules/msdosfs/   (props changed)
  stable/8/sys/modules/msdosfs_iconv/   (props changed)
  stable/8/sys/modules/mse/   (props changed)
  stable/8/sys/modules/msk/   (props changed)
  stable/8/sys/modules/mwl/   (props changed)
  stable/8/sys/modules/mwlfw/   (props changed)
  stable/8/sys/modules/mxge/   (props changed)
  stable/8/sys/modules/my/   (props changed)
  stable/8/sys/modules/ncp/   (props changed)
  stable/8/sys/modules/ncv/   (props changed)
  stable/8/sys/modules/ndis/   (props changed)
  stable/8/sys/modules/netgraph/   (props changed)
  stable/8/sys/modules/nfe/   (props changed)
  stable/8/sys/modules/nfscl/   (props changed)
  stable/8/sys/modules/nfsclient/   (props changed)
  stable/8/sys/modules/nfscommon/   (props changed)
  stable/8/sys/modules/nfsd/   (props changed)
  stable/8/sys/modules/nfslockd/   (props changed)
  stable/8/sys/modules/nfsserver/   (props changed)
  stable/8/sys/modules/nfssvc/   (props changed)
  stable/8/sys/modules/nge/   (props changed)
  stable/8/sys/modules/nmdm/   (props changed)
  stable/8/sys/modules/nsp/   (props changed)
  stable/8/sys/modules/ntfs/   (props changed)
  stable/8/sys/modules/ntfs_iconv/   (props changed)
  stable/8/sys/modules/nullfs/   (props changed)
  stable/8/sys/modules/nve/   (props changed)
  stable/8/sys/modules/nvram/   (props changed)
  stable/8/sys/modules/nwfs/   (props changed)
  stable/8/sys/modules/nxge/   (props changed)
  stable/8/sys/modules/opensolaris/   (props changed)
  stable/8/sys/modules/padlock/   (props changed)
  stable/8/sys/modules/patm/   (props changed)
  stable/8/sys/modules/pccard/   (props changed)
  stable/8/sys/modules/pcfclock/   (props changed)
  stable/8/sys/modules/pcn/   (props changed)
  stable/8/sys/modules/pf/   (props changed)
  stable/8/sys/modules/pflog/   (props changed)
  stable/8/sys/modules/plip/   (props changed)
  stable/8/sys/modules/pmc/   (props changed)
  stable/8/sys/modules/portalfs/   (props changed)
  stable/8/sys/modules/powermac_nvram/   (props changed)
  stable/8/sys/modules/ppbus/   (props changed)
  stable/8/sys/modules/ppc/   (props changed)
  stable/8/sys/modules/ppi/   (props changed)
  stable/8/sys/modules/pps/   (props changed)
  stable/8/sys/modules/procfs/   (props changed)
  stable/8/sys/modules/pseudofs/   (props changed)
  stable/8/sys/modules/pst/   (props changed)
  stable/8/sys/modules/puc/   (props changed)
  stable/8/sys/modules/ral/   (props changed)
  stable/8/sys/modules/ralfw/   (props changed)
  stable/8/sys/modules/random/   (props changed)
  stable/8/sys/modules/rc/   (props changed)
  stable/8/sys/modules/rc4/   (props changed)
  stable/8/sys/modules/rdma/   (props changed)
  stable/8/sys/modules/re/   (props changed)
  stable/8/sys/modules/reiserfs/   (props changed)
  stable/8/sys/modules/rl/   (props changed)
  stable/8/sys/modules/rndtest/   (props changed)
  stable/8/sys/modules/rp/   (props changed)
  stable/8/sys/modules/s3/   (props changed)
  stable/8/sys/modules/safe/   (props changed)
  stable/8/sys/modules/sbni/   (props changed)
  stable/8/sys/modules/scc/   (props changed)
  stable/8/sys/modules/scd/   (props changed)
  stable/8/sys/modules/scsi_low/   (props changed)
  stable/8/sys/modules/sdhci/   (props changed)
  stable/8/sys/modules/sem/   (props changed)
  stable/8/sys/modules/sf/   (props changed)
  stable/8/sys/modules/siis/   (props changed)
  stable/8/sys/modules/sio/   (props changed)
  stable/8/sys/modules/sis/   (props changed)
  stable/8/sys/modules/sk/   (props changed)
  stable/8/sys/modules/smbfs/   (props changed)
  stable/8/sys/modules/sn/   (props changed)
  stable/8/sys/modules/snc/   (props changed)
  stable/8/sys/modules/snp/   (props changed)
  stable/8/sys/modules/sound/   (props changed)
  stable/8/sys/modules/speaker/   (props changed)
  stable/8/sys/modules/splash/   (props changed)
  stable/8/sys/modules/sppp/   (props changed)
  stable/8/sys/modules/ste/   (props changed)
  stable/8/sys/modules/stg/   (props changed)
  stable/8/sys/modules/stge/   (props changed)
  stable/8/sys/modules/streams/   (props changed)
  stable/8/sys/modules/svr4/   (props changed)
  stable/8/sys/modules/sym/   (props changed)
  stable/8/sys/modules/syscons/   (props changed)
  stable/8/sys/modules/sysvipc/   (props changed)
  stable/8/sys/modules/ti/   (props changed)
  stable/8/sys/modules/tl/   (props changed)
  stable/8/sys/modules/tmpfs/   (props changed)
  stable/8/sys/modules/trm/   (props changed)
  stable/8/sys/modules/twa/   (props changed)
  stable/8/sys/modules/twe/   (props changed)
  stable/8/sys/modules/tx/   (props changed)
  stable/8/sys/modules/txp/   (props changed)
  stable/8/sys/modules/uart/   (props changed)
  stable/8/sys/modules/ubsec/   (props changed)
  stable/8/sys/modules/ubser/   (props changed)
  stable/8/sys/modules/uchcom/   (props changed)
  stable/8/sys/modules/ucycom/   (props changed)
  stable/8/sys/modules/udf/   (props changed)
  stable/8/sys/modules/udf_iconv/   (props changed)
  stable/8/sys/modules/ufs/   (props changed)
  stable/8/sys/modules/unionfs/   (props changed)
  stable/8/sys/modules/usb/   (props changed)
  stable/8/sys/modules/utopia/   (props changed)
  stable/8/sys/modules/vesa/   (props changed)
  stable/8/sys/modules/vge/   (props changed)
  stable/8/sys/modules/vkbd/   (props changed)
  stable/8/sys/modules/vpo/   (props changed)
  stable/8/sys/modules/vr/   (props changed)
  stable/8/sys/modules/vx/   (props changed)
  stable/8/sys/modules/wb/   (props changed)
  stable/8/sys/modules/wi/   (props changed)
  stable/8/sys/modules/wlan/   (props changed)
  stable/8/sys/modules/wlan_acl/   (props changed)
  stable/8/sys/modules/wlan_amrr/   (props changed)
  stable/8/sys/modules/wlan_ccmp/   (props changed)
  stable/8/sys/modules/wlan_rssadapt/   (props changed)
  stable/8/sys/modules/wlan_tkip/   (props changed)
  stable/8/sys/modules/wlan_wep/   (props changed)
  stable/8/sys/modules/wlan_xauth/   (props changed)
  stable/8/sys/modules/wpi/   (props changed)
  stable/8/sys/modules/wpifw/   (props changed)
  stable/8/sys/modules/xe/   (props changed)
  stable/8/sys/modules/xfs/   (props changed)
  stable/8/sys/modules/xl/   (props changed)
  stable/8/sys/modules/zfs/   (props changed)
  stable/8/sys/modules/zlib/   (props changed)
  stable/8/sys/net80211/   (props changed)
  stable/8/sys/net80211/_ieee80211.h   (props changed)
  stable/8/sys/net80211/ieee80211.c   (props changed)
  stable/8/sys/net80211/ieee80211.h   (props changed)
  stable/8/sys/net80211/ieee80211_acl.c   (props changed)
  stable/8/sys/net80211/ieee80211_action.c   (props changed)
  stable/8/sys/net80211/ieee80211_action.h   (props changed)
  stable/8/sys/net80211/ieee80211_adhoc.c   (props changed)
  stable/8/sys/net80211/ieee80211_adhoc.h   (props changed)
  stable/8/sys/net80211/ieee80211_ageq.c   (props changed)
  stable/8/sys/net80211/ieee80211_ageq.h   (props changed)
  stable/8/sys/net80211/ieee80211_amrr.c   (props changed)
  stable/8/sys/net80211/ieee80211_amrr.h   (props changed)
  stable/8/sys/net80211/ieee80211_crypto.c   (props changed)
  stable/8/sys/net80211/ieee80211_crypto.h   (props changed)
  stable/8/sys/net80211/ieee80211_crypto_ccmp.c   (props changed)
  stable/8/sys/net80211/ieee80211_crypto_none.c   (props changed)
  stable/8/sys/net80211/ieee80211_crypto_tkip.c   (props changed)
  stable/8/sys/net80211/ieee80211_crypto_wep.c   (props changed)
  stable/8/sys/net80211/ieee80211_ddb.c   (props changed)
  stable/8/sys/net80211/ieee80211_dfs.c   (props changed)
  stable/8/sys/net80211/ieee80211_dfs.h   (props changed)
  stable/8/sys/net80211/ieee80211_freebsd.c   (props changed)
  stable/8/sys/net80211/ieee80211_freebsd.h   (props changed)
  stable/8/sys/net80211/ieee80211_hostap.c   (props changed)
  stable/8/sys/net80211/ieee80211_hostap.h   (props changed)
  stable/8/sys/net80211/ieee80211_ht.c   (props changed)
  stable/8/sys/net80211/ieee80211_ht.h   (props changed)
  stable/8/sys/net80211/ieee80211_hwmp.c   (props changed)
  stable/8/sys/net80211/ieee80211_input.c   (props changed)
  stable/8/sys/net80211/ieee80211_input.h   (props changed)
  stable/8/sys/net80211/ieee80211_ioctl.c   (props changed)
  stable/8/sys/net80211/ieee80211_ioctl.h   (props changed)
  stable/8/sys/net80211/ieee80211_mesh.c   (props changed)
  stable/8/sys/net80211/ieee80211_mesh.h   (props changed)
  stable/8/sys/net80211/ieee80211_monitor.c   (props changed)
  stable/8/sys/net80211/ieee80211_monitor.h   (props changed)
  stable/8/sys/net80211/ieee80211_node.c   (props changed)
  stable/8/sys/net80211/ieee80211_node.h   (props changed)
  stable/8/sys/net80211/ieee80211_output.c   (props changed)
  stable/8/sys/net80211/ieee80211_phy.c   (props changed)
  stable/8/sys/net80211/ieee80211_phy.h   (props changed)
  stable/8/sys/net80211/ieee80211_power.c   (props changed)
  stable/8/sys/net80211/ieee80211_power.h   (props changed)
  stable/8/sys/net80211/ieee80211_proto.c   (props changed)
  stable/8/sys/net80211/ieee80211_proto.h   (props changed)
  stable/8/sys/net80211/ieee80211_radiotap.c   (props changed)
  stable/8/sys/net80211/ieee80211_radiotap.h   (props changed)
  stable/8/sys/net80211/ieee80211_regdomain.c   (props changed)
  stable/8/sys/net80211/ieee80211_regdomain.h   (props changed)
  stable/8/sys/net80211/ieee80211_rssadapt.c   (props changed)
  stable/8/sys/net80211/ieee80211_rssadapt.h   (props changed)
  stable/8/sys/net80211/ieee80211_scan.c   (props changed)
  stable/8/sys/net80211/ieee80211_scan.h   (props changed)
  stable/8/sys/net80211/ieee80211_scan_sta.c   (props changed)
  stable/8/sys/net80211/ieee80211_sta.c   (props changed)
  stable/8/sys/net80211/ieee80211_sta.h   (props changed)
  stable/8/sys/net80211/ieee80211_superg.c   (props changed)
  stable/8/sys/net80211/ieee80211_superg.h   (props changed)
  stable/8/sys/net80211/ieee80211_tdma.c   (props changed)
  stable/8/sys/net80211/ieee80211_tdma.h   (props changed)
  stable/8/sys/net80211/ieee80211_var.h   (props changed)
  stable/8/sys/net80211/ieee80211_wds.c   (props changed)
  stable/8/sys/net80211/ieee80211_wds.h   (props changed)
  stable/8/sys/net80211/ieee80211_xauth.c   (props changed)
  stable/8/sys/netatalk/   (props changed)
  stable/8/sys/netatalk/COPYRIGHT   (props changed)
  stable/8/sys/netatalk/aarp.c   (props changed)
  stable/8/sys/netatalk/aarp.h   (props changed)
  stable/8/sys/netatalk/at.h   (props changed)
  stable/8/sys/netatalk/at_control.c   (props changed)
  stable/8/sys/netatalk/at_extern.h   (props changed)
  stable/8/sys/netatalk/at_proto.c   (props changed)
  stable/8/sys/netatalk/at_rmx.c   (props changed)
  stable/8/sys/netatalk/at_var.h   (props changed)
  stable/8/sys/netatalk/ddp.h   (props changed)
  stable/8/sys/netatalk/ddp_input.c   (props changed)
  stable/8/sys/netatalk/ddp_output.c   (props changed)
  stable/8/sys/netatalk/ddp_pcb.c   (props changed)
  stable/8/sys/netatalk/ddp_pcb.h   (props changed)
  stable/8/sys/netatalk/ddp_usrreq.c   (props changed)
  stable/8/sys/netatalk/ddp_var.h   (props changed)
  stable/8/sys/netatalk/endian.h   (props changed)
  stable/8/sys/netatalk/phase2.h   (props changed)
  stable/8/sys/netgraph/   (props changed)
  stable/8/sys/netgraph/NOTES   (props changed)
  stable/8/sys/netgraph/atm/   (props changed)
  stable/8/sys/netgraph/bluetooth/   (props changed)
  stable/8/sys/netgraph/netflow/   (props changed)
  stable/8/sys/netgraph/netgraph.h   (props changed)
  stable/8/sys/netgraph/ng_UI.c   (props changed)
  stable/8/sys/netgraph/ng_UI.h   (props changed)
  stable/8/sys/netgraph/ng_async.c   (props changed)
  stable/8/sys/netgraph/ng_async.h   (props changed)
  stable/8/sys/netgraph/ng_atmllc.c   (props changed)
  stable/8/sys/netgraph/ng_atmllc.h   (props changed)
  stable/8/sys/netgraph/ng_base.c   (props changed)
  stable/8/sys/netgraph/ng_bpf.c   (props changed)
  stable/8/sys/netgraph/ng_bpf.h   (props changed)
  stable/8/sys/netgraph/ng_bridge.c   (props changed)
  stable/8/sys/netgraph/ng_bridge.h   (props changed)
  stable/8/sys/netgraph/ng_car.c   (props changed)
  stable/8/sys/netgraph/ng_car.h   (props changed)
  stable/8/sys/netgraph/ng_cisco.c   (props changed)
  stable/8/sys/netgraph/ng_cisco.h   (props changed)
  stable/8/sys/netgraph/ng_deflate.c   (props changed)
  stable/8/sys/netgraph/ng_deflate.h   (props changed)
  stable/8/sys/netgraph/ng_device.c   (props changed)
  stable/8/sys/netgraph/ng_device.h   (props changed)
  stable/8/sys/netgraph/ng_echo.c   (props changed)
  stable/8/sys/netgraph/ng_echo.h   (props changed)
  stable/8/sys/netgraph/ng_eiface.c   (props changed)
  stable/8/sys/netgraph/ng_eiface.h   (props changed)
  stable/8/sys/netgraph/ng_etf.c   (props changed)
  stable/8/sys/netgraph/ng_etf.h   (props changed)
  stable/8/sys/netgraph/ng_ether.c   (props changed)
  stable/8/sys/netgraph/ng_ether.h   (props changed)
  stable/8/sys/netgraph/ng_ether_echo.c   (props changed)
  stable/8/sys/netgraph/ng_ether_echo.h   (props changed)
  stable/8/sys/netgraph/ng_fec.c   (props changed)
  stable/8/sys/netgraph/ng_fec.h   (props changed)
  stable/8/sys/netgraph/ng_frame_relay.c   (props changed)
  stable/8/sys/netgraph/ng_frame_relay.h   (props changed)
  stable/8/sys/netgraph/ng_gif.c   (props changed)
  stable/8/sys/netgraph/ng_gif.h   (props changed)
  stable/8/sys/netgraph/ng_gif_demux.c   (props changed)
  stable/8/sys/netgraph/ng_gif_demux.h   (props changed)
  stable/8/sys/netgraph/ng_hole.c   (props changed)
  stable/8/sys/netgraph/ng_hole.h   (props changed)
  stable/8/sys/netgraph/ng_hub.c   (props changed)
  stable/8/sys/netgraph/ng_hub.h   (props changed)
  stable/8/sys/netgraph/ng_iface.c   (props changed)
  stable/8/sys/netgraph/ng_iface.h   (props changed)
  stable/8/sys/netgraph/ng_ip_input.c   (props changed)
  stable/8/sys/netgraph/ng_ip_input.h   (props changed)
  stable/8/sys/netgraph/ng_ipfw.c   (props changed)
  stable/8/sys/netgraph/ng_ipfw.h   (props changed)
  stable/8/sys/netgraph/ng_ksocket.c   (props changed)
  stable/8/sys/netgraph/ng_ksocket.h   (props changed)
  stable/8/sys/netgraph/ng_l2tp.c   (props changed)
  stable/8/sys/netgraph/ng_l2tp.h   (props changed)
  stable/8/sys/netgraph/ng_lmi.c   (props changed)
  stable/8/sys/netgraph/ng_lmi.h   (props changed)
  stable/8/sys/netgraph/ng_message.h   (props changed)
  stable/8/sys/netgraph/ng_mppc.c   (props changed)
  stable/8/sys/netgraph/ng_mppc.h   (props changed)
  stable/8/sys/netgraph/ng_nat.c   (props changed)
  stable/8/sys/netgraph/ng_nat.h   (props changed)
  stable/8/sys/netgraph/ng_one2many.c   (props changed)
  stable/8/sys/netgraph/ng_one2many.h   (props changed)
  stable/8/sys/netgraph/ng_parse.c   (props changed)
  stable/8/sys/netgraph/ng_parse.h   (props changed)
  stable/8/sys/netgraph/ng_pipe.c   (props changed)
  stable/8/sys/netgraph/ng_pipe.h   (props changed)
  stable/8/sys/netgraph/ng_ppp.c   (props changed)
  stable/8/sys/netgraph/ng_ppp.h   (props changed)
  stable/8/sys/netgraph/ng_pppoe.c   (props changed)
  stable/8/sys/netgraph/ng_pppoe.h   (props changed)
  stable/8/sys/netgraph/ng_pptpgre.c   (props changed)
  stable/8/sys/netgraph/ng_pptpgre.h   (props changed)
  stable/8/sys/netgraph/ng_pred1.c   (props changed)
  stable/8/sys/netgraph/ng_pred1.h   (props changed)
  stable/8/sys/netgraph/ng_rfc1490.c   (props changed)
  stable/8/sys/netgraph/ng_rfc1490.h   (props changed)
  stable/8/sys/netgraph/ng_sample.c   (props changed)
  stable/8/sys/netgraph/ng_sample.h   (props changed)
  stable/8/sys/netgraph/ng_socket.c   (props changed)
  stable/8/sys/netgraph/ng_socket.h   (props changed)
  stable/8/sys/netgraph/ng_socketvar.h   (props changed)
  stable/8/sys/netgraph/ng_source.c   (props changed)
  stable/8/sys/netgraph/ng_source.h   (props changed)
  stable/8/sys/netgraph/ng_split.c   (props changed)
  stable/8/sys/netgraph/ng_split.h   (props changed)
  stable/8/sys/netgraph/ng_sppp.c   (props changed)
  stable/8/sys/netgraph/ng_sppp.h   (props changed)
  stable/8/sys/netgraph/ng_tag.c   (props changed)
  stable/8/sys/netgraph/ng_tag.h   (props changed)
  stable/8/sys/netgraph/ng_tcpmss.c   (props changed)
  stable/8/sys/netgraph/ng_tcpmss.h   (props changed)
  stable/8/sys/netgraph/ng_tee.c   (props changed)
  stable/8/sys/netgraph/ng_tee.h   (props changed)
  stable/8/sys/netgraph/ng_tty.c   (props changed)
  stable/8/sys/netgraph/ng_tty.h   (props changed)
  stable/8/sys/netgraph/ng_vjc.c   (props changed)
  stable/8/sys/netgraph/ng_vjc.h   (props changed)
  stable/8/sys/netgraph/ng_vlan.c   (props changed)
  stable/8/sys/netgraph/ng_vlan.h   (props changed)
  stable/8/sys/netinet/   (props changed)
  stable/8/sys/netinet/accf_data.c   (props changed)
  stable/8/sys/netinet/accf_dns.c   (props changed)
  stable/8/sys/netinet/accf_http.c   (props changed)
  stable/8/sys/netinet/icmp6.h   (props changed)
  stable/8/sys/netinet/icmp_var.h   (props changed)
  stable/8/sys/netinet/if_atm.c   (props changed)
  stable/8/sys/netinet/if_atm.h   (props changed)
  stable/8/sys/netinet/if_ether.c   (props changed)
  stable/8/sys/netinet/if_ether.h   (props changed)
  stable/8/sys/netinet/igmp.c   (props changed)
  stable/8/sys/netinet/igmp.h   (props changed)
  stable/8/sys/netinet/igmp_var.h   (props changed)
  stable/8/sys/netinet/in.c   (props changed)
  stable/8/sys/netinet/in.h   (props changed)
  stable/8/sys/netinet/in_cksum.c   (props changed)
  stable/8/sys/netinet/in_gif.c   (props changed)
  stable/8/sys/netinet/in_gif.h   (props changed)
  stable/8/sys/netinet/in_mcast.c   (props changed)
  stable/8/sys/netinet/in_pcb.c   (props changed)
  stable/8/sys/netinet/in_pcb.h   (props changed)
  stable/8/sys/netinet/in_proto.c   (props changed)
  stable/8/sys/netinet/in_rmx.c   (props changed)
  stable/8/sys/netinet/in_systm.h   (props changed)
  stable/8/sys/netinet/in_var.h   (props changed)
  stable/8/sys/netinet/ip.h   (props changed)
  stable/8/sys/netinet/ip6.h   (props changed)
  stable/8/sys/netinet/ip_carp.c   (props changed)
  stable/8/sys/netinet/ip_carp.h   (props changed)
  stable/8/sys/netinet/ip_divert.c   (props changed)
  stable/8/sys/netinet/ip_divert.h   (props changed)
  stable/8/sys/netinet/ip_dummynet.h   (props changed)
  stable/8/sys/netinet/ip_ecn.c   (props changed)
  stable/8/sys/netinet/ip_ecn.h   (props changed)
  stable/8/sys/netinet/ip_encap.c   (props changed)
  stable/8/sys/netinet/ip_encap.h   (props changed)
  stable/8/sys/netinet/ip_fastfwd.c   (props changed)
  stable/8/sys/netinet/ip_fw.h   (props changed)
  stable/8/sys/netinet/ip_gre.c   (props changed)
  stable/8/sys/netinet/ip_gre.h   (props changed)
  stable/8/sys/netinet/ip_icmp.c   (props changed)
  stable/8/sys/netinet/ip_icmp.h   (props changed)
  stable/8/sys/netinet/ip_id.c   (props changed)
  stable/8/sys/netinet/ip_input.c   (props changed)
  stable/8/sys/netinet/ip_ipsec.c   (props changed)
  stable/8/sys/netinet/ip_ipsec.h   (props changed)
  stable/8/sys/netinet/ip_mroute.c   (props changed)
  stable/8/sys/netinet/ip_mroute.h   (props changed)
  stable/8/sys/netinet/ip_options.c   (props changed)
  stable/8/sys/netinet/ip_options.h   (props changed)
  stable/8/sys/netinet/ip_output.c   (props changed)
  stable/8/sys/netinet/ip_var.h   (props changed)
  stable/8/sys/netinet/ipfw/   (props changed)
  stable/8/sys/netinet/libalias/   (props changed)
  stable/8/sys/netinet/pim.h   (props changed)
  stable/8/sys/netinet/pim_var.h   (props changed)
  stable/8/sys/netinet/raw_ip.c   (props changed)
  stable/8/sys/netinet/sctp.h   (props changed)
  stable/8/sys/netinet/sctp_asconf.c   (props changed)
  stable/8/sys/netinet/sctp_asconf.h   (props changed)
  stable/8/sys/netinet/sctp_auth.c   (props changed)
  stable/8/sys/netinet/sctp_auth.h   (props changed)
  stable/8/sys/netinet/sctp_bsd_addr.c   (props changed)
  stable/8/sys/netinet/sctp_bsd_addr.h   (props changed)
  stable/8/sys/netinet/sctp_cc_functions.c   (props changed)
  stable/8/sys/netinet/sctp_cc_functions.h   (props changed)
  stable/8/sys/netinet/sctp_constants.h   (props changed)
  stable/8/sys/netinet/sctp_crc32.c   (props changed)
  stable/8/sys/netinet/sctp_crc32.h   (props changed)
  stable/8/sys/netinet/sctp_header.h   (props changed)
  stable/8/sys/netinet/sctp_indata.c   (props changed)
  stable/8/sys/netinet/sctp_indata.h   (props changed)
  stable/8/sys/netinet/sctp_input.c   (props changed)
  stable/8/sys/netinet/sctp_input.h   (props changed)
  stable/8/sys/netinet/sctp_lock_bsd.h   (props changed)
  stable/8/sys/netinet/sctp_os.h   (props changed)
  stable/8/sys/netinet/sctp_os_bsd.h   (props changed)
  stable/8/sys/netinet/sctp_output.c   (props changed)
  stable/8/sys/netinet/sctp_output.h   (props changed)
  stable/8/sys/netinet/sctp_pcb.c   (props changed)
  stable/8/sys/netinet/sctp_pcb.h   (props changed)
  stable/8/sys/netinet/sctp_peeloff.c   (props changed)
  stable/8/sys/netinet/sctp_peeloff.h   (props changed)
  stable/8/sys/netinet/sctp_structs.h   (props changed)
  stable/8/sys/netinet/sctp_sysctl.c   (props changed)
  stable/8/sys/netinet/sctp_sysctl.h   (props changed)
  stable/8/sys/netinet/sctp_timer.c   (props changed)
  stable/8/sys/netinet/sctp_timer.h   (props changed)
  stable/8/sys/netinet/sctp_uio.h   (props changed)
  stable/8/sys/netinet/sctp_usrreq.c   (props changed)
  stable/8/sys/netinet/sctp_var.h   (props changed)
  stable/8/sys/netinet/sctputil.c   (props changed)
  stable/8/sys/netinet/sctputil.h   (props changed)
  stable/8/sys/netinet/tcp.h   (props changed)
  stable/8/sys/netinet/tcp_debug.c   (props changed)
  stable/8/sys/netinet/tcp_debug.h   (props changed)
  stable/8/sys/netinet/tcp_fsm.h   (props changed)
  stable/8/sys/netinet/tcp_hostcache.c   (props changed)
  stable/8/sys/netinet/tcp_hostcache.h   (props changed)
  stable/8/sys/netinet/tcp_input.c   (props changed)
  stable/8/sys/netinet/tcp_lro.c   (props changed)
  stable/8/sys/netinet/tcp_lro.h   (props changed)
  stable/8/sys/netinet/tcp_offload.c   (props changed)
  stable/8/sys/netinet/tcp_offload.h   (props changed)
  stable/8/sys/netinet/tcp_output.c   (props changed)
  stable/8/sys/netinet/tcp_reass.c   (props changed)
  stable/8/sys/netinet/tcp_sack.c   (props changed)
  stable/8/sys/netinet/tcp_seq.h   (props changed)
  stable/8/sys/netinet/tcp_subr.c   (props changed)
  stable/8/sys/netinet/tcp_syncache.c   (props changed)
  stable/8/sys/netinet/tcp_syncache.h   (props changed)
  stable/8/sys/netinet/tcp_timer.c   (props changed)
  stable/8/sys/netinet/tcp_timer.h   (props changed)
  stable/8/sys/netinet/tcp_timewait.c   (props changed)
  stable/8/sys/netinet/tcp_usrreq.c   (props changed)
  stable/8/sys/netinet/tcp_var.h   (props changed)
  stable/8/sys/netinet/tcpip.h   (props changed)
  stable/8/sys/netinet/toedev.h   (props changed)
  stable/8/sys/netinet/udp.h   (props changed)
  stable/8/sys/netinet/udp_usrreq.c   (props changed)
  stable/8/sys/netinet/udp_var.h   (props changed)
  stable/8/sys/netipsec/   (props changed)
  stable/8/sys/netipsec/ah.h   (props changed)
  stable/8/sys/netipsec/ah_var.h   (props changed)
  stable/8/sys/netipsec/esp.h   (props changed)
  stable/8/sys/netipsec/esp_var.h   (props changed)
  stable/8/sys/netipsec/ipcomp.h   (props changed)
  stable/8/sys/netipsec/ipcomp_var.h   (props changed)
  stable/8/sys/netipsec/ipip_var.h   (props changed)
  stable/8/sys/netipsec/ipsec.c   (props changed)
  stable/8/sys/netipsec/ipsec.h   (props changed)
  stable/8/sys/netipsec/ipsec6.h   (props changed)
  stable/8/sys/netipsec/ipsec_input.c   (props changed)
  stable/8/sys/netipsec/ipsec_mbuf.c   (props changed)
  stable/8/sys/netipsec/ipsec_output.c   (props changed)
  stable/8/sys/netipsec/key.c   (props changed)
  stable/8/sys/netipsec/key.h   (props changed)
  stable/8/sys/netipsec/key_debug.c   (props changed)
  stable/8/sys/netipsec/key_debug.h   (props changed)
  stable/8/sys/netipsec/key_var.h   (props changed)
  stable/8/sys/netipsec/keydb.h   (props changed)
  stable/8/sys/netipsec/keysock.c   (props changed)
  stable/8/sys/netipsec/keysock.h   (props changed)
  stable/8/sys/netipsec/xform.h   (props changed)
  stable/8/sys/netipsec/xform_ah.c   (props changed)
  stable/8/sys/netipsec/xform_esp.c   (props changed)
  stable/8/sys/netipsec/xform_ipcomp.c   (props changed)
  stable/8/sys/netipsec/xform_ipip.c   (props changed)
  stable/8/sys/netipsec/xform_tcp.c   (props changed)
  stable/8/sys/netipx/   (props changed)
  stable/8/sys/netipx/README   (props changed)
  stable/8/sys/netipx/ipx.c   (props changed)
  stable/8/sys/netipx/ipx.h   (props changed)
  stable/8/sys/netipx/ipx_cksum.c   (props changed)
  stable/8/sys/netipx/ipx_if.h   (props changed)
  stable/8/sys/netipx/ipx_input.c   (props changed)
  stable/8/sys/netipx/ipx_outputfl.c   (props changed)
  stable/8/sys/netipx/ipx_pcb.c   (props changed)
  stable/8/sys/netipx/ipx_pcb.h   (props changed)
  stable/8/sys/netipx/ipx_proto.c   (props changed)
  stable/8/sys/netipx/ipx_usrreq.c   (props changed)
  stable/8/sys/netipx/ipx_var.h   (props changed)
  stable/8/sys/netipx/spx.h   (props changed)
  stable/8/sys/netipx/spx_debug.c   (props changed)
  stable/8/sys/netipx/spx_debug.h   (props changed)
  stable/8/sys/netipx/spx_reass.c   (props changed)
  stable/8/sys/netipx/spx_timer.h   (props changed)
  stable/8/sys/netipx/spx_usrreq.c   (props changed)
  stable/8/sys/netipx/spx_var.h   (props changed)
  stable/8/sys/netnatm/   (props changed)
  stable/8/sys/netnatm/natm.c   (props changed)
  stable/8/sys/netnatm/natm.h   (props changed)
  stable/8/sys/netnatm/natm_pcb.c   (props changed)
  stable/8/sys/netnatm/natm_proto.c   (props changed)
  stable/8/sys/netncp/   (props changed)
  stable/8/sys/netncp/ncp.h   (props changed)
  stable/8/sys/netncp/ncp_cfg.h   (props changed)
  stable/8/sys/netncp/ncp_conn.c   (props changed)
  stable/8/sys/netncp/ncp_conn.h   (props changed)
  stable/8/sys/netncp/ncp_crypt.c   (props changed)
  stable/8/sys/netncp/ncp_file.h   (props changed)
  stable/8/sys/netncp/ncp_lib.h   (props changed)
  stable/8/sys/netncp/ncp_login.c   (props changed)
  stable/8/sys/netncp/ncp_mod.c   (props changed)
  stable/8/sys/netncp/ncp_ncp.c   (props changed)
  stable/8/sys/netncp/ncp_ncp.h   (props changed)
  stable/8/sys/netncp/ncp_nls.c   (props changed)
  stable/8/sys/netncp/ncp_nls.h   (props changed)
  stable/8/sys/netncp/ncp_rcfile.h   (props changed)
  stable/8/sys/netncp/ncp_rq.c   (props changed)
  stable/8/sys/netncp/ncp_rq.h   (props changed)
  stable/8/sys/netncp/ncp_sock.c   (props changed)
  stable/8/sys/netncp/ncp_sock.h   (props changed)
  stable/8/sys/netncp/ncp_subr.c   (props changed)
  stable/8/sys/netncp/ncp_subr.h   (props changed)
  stable/8/sys/netncp/ncp_user.h   (props changed)
  stable/8/sys/netncp/ncpio.h   (props changed)
  stable/8/sys/netncp/nwerror.h   (props changed)
  stable/8/sys/netsmb/   (props changed)
  stable/8/sys/netsmb/netbios.h   (props changed)
  stable/8/sys/netsmb/smb.h   (props changed)
  stable/8/sys/netsmb/smb_conn.c   (props changed)
  stable/8/sys/netsmb/smb_conn.h   (props changed)
  stable/8/sys/netsmb/smb_crypt.c   (props changed)
  stable/8/sys/netsmb/smb_dev.c   (props changed)
  stable/8/sys/netsmb/smb_dev.h   (props changed)
  stable/8/sys/netsmb/smb_iod.c   (props changed)
  stable/8/sys/netsmb/smb_rq.c   (props changed)
  stable/8/sys/netsmb/smb_rq.h   (props changed)
  stable/8/sys/netsmb/smb_smb.c   (props changed)
  stable/8/sys/netsmb/smb_subr.c   (props changed)
  stable/8/sys/netsmb/smb_subr.h   (props changed)
  stable/8/sys/netsmb/smb_tran.h   (props changed)
  stable/8/sys/netsmb/smb_trantcp.c   (props changed)
  stable/8/sys/netsmb/smb_trantcp.h   (props changed)
  stable/8/sys/netsmb/smb_usr.c   (props changed)
  stable/8/sys/nfs/   (props changed)
  stable/8/sys/nfs/nfs_common.c   (props changed)
  stable/8/sys/nfs/nfs_common.h   (props changed)
  stable/8/sys/nfs/nfs_nfssvc.c   (props changed)
  stable/8/sys/nfs/nfsproto.h   (props changed)
  stable/8/sys/nfs/nfssvc.h   (props changed)
  stable/8/sys/nfs/xdr_subs.h   (props changed)
  stable/8/sys/nfsclient/   (props changed)
  stable/8/sys/nfsclient/bootp_subr.c   (props changed)
  stable/8/sys/nfsclient/krpc.h   (props changed)
  stable/8/sys/nfsclient/krpc_subr.c   (props changed)
  stable/8/sys/nfsclient/nfs.h   (props changed)
  stable/8/sys/nfsclient/nfs_bio.c   (props changed)
  stable/8/sys/nfsclient/nfs_diskless.c   (props changed)
  stable/8/sys/nfsclient/nfs_kdtrace.c   (props changed)
  stable/8/sys/nfsclient/nfs_kdtrace.h   (props changed)
  stable/8/sys/nfsclient/nfs_krpc.c   (props changed)
  stable/8/sys/nfsclient/nfs_lock.c   (props changed)
  stable/8/sys/nfsclient/nfs_lock.h   (props changed)
  stable/8/sys/nfsclient/nfs_nfsiod.c   (props changed)
  stable/8/sys/nfsclient/nfs_node.c   (props changed)
  stable/8/sys/nfsclient/nfs_subs.c   (props changed)
  stable/8/sys/nfsclient/nfs_vfsops.c   (props changed)
  stable/8/sys/nfsclient/nfs_vnops.c   (props changed)
  stable/8/sys/nfsclient/nfsargs.h   (props changed)
  stable/8/sys/nfsclient/nfsdiskless.h   (props changed)
  stable/8/sys/nfsclient/nfsm_subs.h   (props changed)
  stable/8/sys/nfsclient/nfsmount.h   (props changed)
  stable/8/sys/nfsclient/nfsnode.h   (props changed)
  stable/8/sys/nfsclient/nfsstats.h   (props changed)
  stable/8/sys/nfsclient/nlminfo.h   (props changed)
  stable/8/sys/nfsserver/   (props changed)
  stable/8/sys/nfsserver/nfs.h   (props changed)
  stable/8/sys/nfsserver/nfs_fha.c   (props changed)
  stable/8/sys/nfsserver/nfs_fha.h   (props changed)
  stable/8/sys/nfsserver/nfs_serv.c   (props changed)
  stable/8/sys/nfsserver/nfs_srvkrpc.c   (props changed)
  stable/8/sys/nfsserver/nfs_srvsubs.c   (props changed)
  stable/8/sys/nfsserver/nfsm_subs.h   (props changed)
  stable/8/sys/nfsserver/nfsrvcache.h   (props changed)
  stable/8/sys/nfsserver/nfsrvstats.h   (props changed)
  stable/8/sys/nlm/   (props changed)
  stable/8/sys/nlm/nlm.h   (props changed)
  stable/8/sys/nlm/nlm_advlock.c   (props changed)
  stable/8/sys/nlm/nlm_prot.h   (props changed)
  stable/8/sys/nlm/nlm_prot_clnt.c   (props changed)
  stable/8/sys/nlm/nlm_prot_impl.c   (props changed)
  stable/8/sys/nlm/nlm_prot_server.c   (props changed)
  stable/8/sys/nlm/nlm_prot_svc.c   (props changed)
  stable/8/sys/nlm/nlm_prot_xdr.c   (props changed)
  stable/8/sys/nlm/sm_inter.h   (props changed)
  stable/8/sys/nlm/sm_inter_xdr.c   (props changed)
  stable/8/sys/opencrypto/   (props changed)
  stable/8/sys/opencrypto/cast.c   (props changed)
  stable/8/sys/opencrypto/cast.h   (props changed)
  stable/8/sys/opencrypto/castsb.h   (props changed)
  stable/8/sys/opencrypto/criov.c   (props changed)
  stable/8/sys/opencrypto/crypto.c   (props changed)
  stable/8/sys/opencrypto/cryptodev.c   (props changed)
  stable/8/sys/opencrypto/cryptodev.h   (props changed)
  stable/8/sys/opencrypto/cryptodev_if.m   (props changed)
  stable/8/sys/opencrypto/cryptosoft.c   (props changed)
  stable/8/sys/opencrypto/cryptosoft.h   (props changed)
  stable/8/sys/opencrypto/deflate.c   (props changed)
  stable/8/sys/opencrypto/deflate.h   (props changed)
  stable/8/sys/opencrypto/rmd160.c   (props changed)
  stable/8/sys/opencrypto/rmd160.h   (props changed)
  stable/8/sys/opencrypto/skipjack.c   (props changed)
  stable/8/sys/opencrypto/skipjack.h   (props changed)
  stable/8/sys/opencrypto/xform.c   (props changed)
  stable/8/sys/opencrypto/xform.h   (props changed)
  stable/8/sys/pc98/   (props changed)
  stable/8/sys/pc98/apm/   (props changed)
  stable/8/sys/pc98/cbus/   (props changed)
  stable/8/sys/pc98/compile/   (props changed)
  stable/8/sys/pc98/conf/   (props changed)
  stable/8/sys/pc98/include/   (props changed)
  stable/8/sys/pc98/linux/   (props changed)
  stable/8/sys/pc98/pc98/   (props changed)
  stable/8/sys/pci/   (props changed)
  stable/8/sys/pci/alpm.c   (props changed)
  stable/8/sys/pci/amdpm.c   (props changed)
  stable/8/sys/pci/amdsmb.c   (props changed)
  stable/8/sys/pci/if_rl.c   (props changed)
  stable/8/sys/pci/if_rlreg.h   (props changed)
  stable/8/sys/pci/intpm.c   (props changed)
  stable/8/sys/pci/intpmreg.h   (props changed)
  stable/8/sys/pci/locate.pl   (props changed)
  stable/8/sys/pci/ncr.c   (props changed)
  stable/8/sys/pci/ncrreg.h   (props changed)
  stable/8/sys/pci/nfsmb.c   (props changed)
  stable/8/sys/pci/viapm.c   (props changed)
  stable/8/sys/powerpc/   (props changed)
  stable/8/sys/powerpc/aim/   (props changed)
  stable/8/sys/powerpc/booke/   (props changed)
  stable/8/sys/powerpc/compile/   (props changed)
  stable/8/sys/powerpc/conf/   (props changed)
  stable/8/sys/powerpc/cpufreq/   (props changed)
  stable/8/sys/powerpc/fpu/   (props changed)
  stable/8/sys/powerpc/include/   (props changed)
  stable/8/sys/powerpc/mpc85xx/   (props changed)
  stable/8/sys/powerpc/ofw/   (props changed)
  stable/8/sys/powerpc/powermac/   (props changed)
  stable/8/sys/powerpc/powerpc/   (props changed)
  stable/8/sys/powerpc/psim/   (props changed)
  stable/8/sys/rpc/   (props changed)
  stable/8/sys/rpc/auth.h   (props changed)
  stable/8/sys/rpc/auth_none.c   (props changed)
  stable/8/sys/rpc/auth_unix.c   (props changed)
  stable/8/sys/rpc/authunix_prot.c   (props changed)
  stable/8/sys/rpc/clnt.h   (props changed)
  stable/8/sys/rpc/clnt_dg.c   (props changed)
  stable/8/sys/rpc/clnt_rc.c   (props changed)
  stable/8/sys/rpc/clnt_stat.h   (props changed)
  stable/8/sys/rpc/clnt_vc.c   (props changed)
  stable/8/sys/rpc/getnetconfig.c   (props changed)
  stable/8/sys/rpc/inet_ntop.c   (props changed)
  stable/8/sys/rpc/inet_pton.c   (props changed)
  stable/8/sys/rpc/netconfig.h   (props changed)
  stable/8/sys/rpc/nettype.h   (props changed)
  stable/8/sys/rpc/pmap_prot.h   (props changed)
  stable/8/sys/rpc/replay.c   (props changed)
  stable/8/sys/rpc/replay.h   (props changed)
  stable/8/sys/rpc/rpc.h   (props changed)
  stable/8/sys/rpc/rpc_callmsg.c   (props changed)
  stable/8/sys/rpc/rpc_com.h   (props changed)
  stable/8/sys/rpc/rpc_generic.c   (props changed)
  stable/8/sys/rpc/rpc_msg.h   (props changed)
  stable/8/sys/rpc/rpc_prot.c   (props changed)
  stable/8/sys/rpc/rpcb_clnt.c   (props changed)
  stable/8/sys/rpc/rpcb_clnt.h   (props changed)
  stable/8/sys/rpc/rpcb_prot.c   (props changed)
  stable/8/sys/rpc/rpcb_prot.h   (props changed)
  stable/8/sys/rpc/rpcm_subs.h   (props changed)
  stable/8/sys/rpc/rpcsec_gss/   (props changed)
  stable/8/sys/rpc/rpcsec_gss.h   (props changed)
  stable/8/sys/rpc/svc.c   (props changed)
  stable/8/sys/rpc/svc.h   (props changed)
  stable/8/sys/rpc/svc_auth.c   (props changed)
  stable/8/sys/rpc/svc_auth.h   (props changed)
  stable/8/sys/rpc/svc_auth_unix.c   (props changed)
  stable/8/sys/rpc/svc_dg.c   (props changed)
  stable/8/sys/rpc/svc_generic.c   (props changed)
  stable/8/sys/rpc/svc_vc.c   (props changed)
  stable/8/sys/rpc/types.h   (props changed)
  stable/8/sys/rpc/xdr.h   (props changed)
  stable/8/sys/security/   (props changed)
  stable/8/sys/security/audit/   (props changed)
  stable/8/sys/security/mac/   (props changed)
  stable/8/sys/security/mac_biba/   (props changed)
  stable/8/sys/security/mac_bsdextended/   (props changed)
  stable/8/sys/security/mac_ifoff/   (props changed)
  stable/8/sys/security/mac_lomac/   (props changed)
  stable/8/sys/security/mac_mls/   (props changed)
  stable/8/sys/security/mac_none/   (props changed)
  stable/8/sys/security/mac_partition/   (props changed)
  stable/8/sys/security/mac_portacl/   (props changed)
  stable/8/sys/security/mac_seeotheruids/   (props changed)
  stable/8/sys/security/mac_stub/   (props changed)
  stable/8/sys/security/mac_test/   (props changed)
  stable/8/sys/sparc64/   (props changed)
  stable/8/sys/sparc64/central/   (props changed)
  stable/8/sys/sparc64/compile/   (props changed)
  stable/8/sys/sparc64/conf/   (props changed)
  stable/8/sys/sparc64/ebus/   (props changed)
  stable/8/sys/sparc64/fhc/   (props changed)
  stable/8/sys/sparc64/include/   (props changed)
  stable/8/sys/sparc64/isa/   (props changed)
  stable/8/sys/sparc64/pci/   (props changed)
  stable/8/sys/sparc64/sbus/   (props changed)
  stable/8/sys/sparc64/sparc64/   (props changed)
  stable/8/sys/sun4v/   (props changed)
  stable/8/sys/sun4v/cddl/   (props changed)
  stable/8/sys/sun4v/compile/   (props changed)
  stable/8/sys/sun4v/conf/   (props changed)
  stable/8/sys/sun4v/include/   (props changed)
  stable/8/sys/sun4v/mdesc/   (props changed)
  stable/8/sys/sun4v/sun4v/   (props changed)
  stable/8/sys/sys/   (props changed)
  stable/8/sys/sys/_bus_dma.h   (props changed)
  stable/8/sys/sys/_iovec.h   (props changed)
  stable/8/sys/sys/_lock.h   (props changed)
  stable/8/sys/sys/_lockmgr.h   (props changed)
  stable/8/sys/sys/_mutex.h   (props changed)
  stable/8/sys/sys/_null.h   (props changed)
  stable/8/sys/sys/_pthreadtypes.h   (props changed)
  stable/8/sys/sys/_rmlock.h   (props changed)
  stable/8/sys/sys/_rwlock.h   (props changed)
  stable/8/sys/sys/_semaphore.h   (props changed)
  stable/8/sys/sys/_sigset.h   (props changed)
  stable/8/sys/sys/_stack.h   (props changed)
  stable/8/sys/sys/_sx.h   (props changed)
  stable/8/sys/sys/_task.h   (props changed)
  stable/8/sys/sys/_timespec.h   (props changed)
  stable/8/sys/sys/_timeval.h   (props changed)
  stable/8/sys/sys/_types.h   (props changed)
  stable/8/sys/sys/aac_ioctl.h   (props changed)
  stable/8/sys/sys/acct.h   (props changed)
  stable/8/sys/sys/acl.h   (props changed)
  stable/8/sys/sys/agpio.h   (props changed)
  stable/8/sys/sys/aio.h   (props changed)
  stable/8/sys/sys/alq.h   (props changed)
  stable/8/sys/sys/apm.h   (props changed)
  stable/8/sys/sys/assym.h   (props changed)
  stable/8/sys/sys/ata.h   (props changed)
  stable/8/sys/sys/bio.h   (props changed)
  stable/8/sys/sys/bitstring.h   (props changed)
  stable/8/sys/sys/blist.h   (props changed)
  stable/8/sys/sys/buf.h   (props changed)
  stable/8/sys/sys/buf_ring.h   (props changed)
  stable/8/sys/sys/bufobj.h   (props changed)
  stable/8/sys/sys/bus.h   (props changed)
  stable/8/sys/sys/bus_dma.h   (props changed)
  stable/8/sys/sys/callout.h   (props changed)
  stable/8/sys/sys/cdefs.h   (props changed)
  stable/8/sys/sys/cdio.h   (props changed)
  stable/8/sys/sys/cdrio.h   (props changed)
  stable/8/sys/sys/cfictl.h   (props changed)
  stable/8/sys/sys/chio.h   (props changed)
  stable/8/sys/sys/clock.h   (props changed)
  stable/8/sys/sys/condvar.h   (props changed)
  stable/8/sys/sys/conf.h   (props changed)
  stable/8/sys/sys/cons.h   (props changed)
  stable/8/sys/sys/consio.h   (props changed)
  stable/8/sys/sys/copyright.h   (props changed)
  stable/8/sys/sys/cpu.h   (props changed)
  stable/8/sys/sys/cpuctl.h   (props changed)
  stable/8/sys/sys/cpuset.h   (props changed)
  stable/8/sys/sys/ctype.h   (props changed)
  stable/8/sys/sys/dataacq.h   (props changed)
  stable/8/sys/sys/device_port.h   (props changed)
  stable/8/sys/sys/devicestat.h   (props changed)
  stable/8/sys/sys/digiio.h   (props changed)
  stable/8/sys/sys/dir.h   (props changed)
  stable/8/sys/sys/dirent.h   (props changed)
  stable/8/sys/sys/disk.h   (props changed)
  stable/8/sys/sys/disklabel.h   (props changed)
  stable/8/sys/sys/diskmbr.h   (props changed)
  stable/8/sys/sys/diskpc98.h   (props changed)
  stable/8/sys/sys/dkstat.h   (props changed)
  stable/8/sys/sys/domain.h   (props changed)
  stable/8/sys/sys/dtrace_bsd.h   (props changed)
  stable/8/sys/sys/dvdio.h   (props changed)
  stable/8/sys/sys/elf.h   (props changed)
  stable/8/sys/sys/elf32.h   (props changed)
  stable/8/sys/sys/elf64.h   (props changed)
  stable/8/sys/sys/elf_common.h   (props changed)
  stable/8/sys/sys/elf_generic.h   (props changed)
  stable/8/sys/sys/endian.h   (props changed)
  stable/8/sys/sys/errno.h   (props changed)
  stable/8/sys/sys/eui64.h   (props changed)
  stable/8/sys/sys/event.h   (props changed)
  stable/8/sys/sys/eventhandler.h   (props changed)
  stable/8/sys/sys/eventvar.h   (props changed)
  stable/8/sys/sys/exec.h   (props changed)
  stable/8/sys/sys/extattr.h   (props changed)
  stable/8/sys/sys/fail.h   (props changed)
  stable/8/sys/sys/fbio.h   (props changed)
  stable/8/sys/sys/fcntl.h   (props changed)
  stable/8/sys/sys/fdcio.h   (props changed)
  stable/8/sys/sys/file.h   (props changed)
  stable/8/sys/sys/filedesc.h   (props changed)
  stable/8/sys/sys/filio.h   (props changed)
  stable/8/sys/sys/firmware.h   (props changed)
  stable/8/sys/sys/fnv_hash.h   (props changed)
  stable/8/sys/sys/gmon.h   (props changed)
  stable/8/sys/sys/gpt.h   (props changed)
  stable/8/sys/sys/hash.h   (props changed)
  stable/8/sys/sys/iconv.h   (props changed)
  stable/8/sys/sys/imgact.h   (props changed)
  stable/8/sys/sys/imgact_aout.h   (props changed)
  stable/8/sys/sys/imgact_elf.h   (props changed)
  stable/8/sys/sys/inflate.h   (props changed)
  stable/8/sys/sys/interrupt.h   (props changed)
  stable/8/sys/sys/ioccom.h   (props changed)
  stable/8/sys/sys/ioctl.h   (props changed)
  stable/8/sys/sys/ioctl_compat.h   (props changed)
  stable/8/sys/sys/ipc.h   (props changed)
  stable/8/sys/sys/ipmi.h   (props changed)
  stable/8/sys/sys/jail.h   (props changed)
  stable/8/sys/sys/joystick.h   (props changed)
  stable/8/sys/sys/kbio.h   (props changed)
  stable/8/sys/sys/kdb.h   (props changed)
  stable/8/sys/sys/kenv.h   (props changed)
  stable/8/sys/sys/kernel.h   (props changed)
  stable/8/sys/sys/kerneldump.h   (props changed)
  stable/8/sys/sys/kobj.h   (props changed)
  stable/8/sys/sys/ksem.h   (props changed)
  stable/8/sys/sys/ksyms.h   (props changed)
  stable/8/sys/sys/kthread.h   (props changed)
  stable/8/sys/sys/ktr.h   (props changed)
  stable/8/sys/sys/ktrace.h   (props changed)
  stable/8/sys/sys/libkern.h   (props changed)
  stable/8/sys/sys/limits.h   (props changed)
  stable/8/sys/sys/link_aout.h   (props changed)
  stable/8/sys/sys/link_elf.h   (props changed)
  stable/8/sys/sys/linker.h   (props changed)
  stable/8/sys/sys/linker_set.h   (props changed)
  stable/8/sys/sys/lock.h   (props changed)
  stable/8/sys/sys/lock_profile.h   (props changed)
  stable/8/sys/sys/lockf.h   (props changed)
  stable/8/sys/sys/lockmgr.h   (props changed)
  stable/8/sys/sys/lockstat.h   (props changed)
  stable/8/sys/sys/mac.h   (props changed)
  stable/8/sys/sys/malloc.h   (props changed)
  stable/8/sys/sys/mbpool.h   (props changed)
  stable/8/sys/sys/mbuf.h   (props changed)
  stable/8/sys/sys/mchain.h   (props changed)
  stable/8/sys/sys/md4.h   (props changed)
  stable/8/sys/sys/md5.h   (props changed)
  stable/8/sys/sys/mdioctl.h   (props changed)
  stable/8/sys/sys/memrange.h   (props changed)
  stable/8/sys/sys/mman.h   (props changed)
  stable/8/sys/sys/module.h   (props changed)
  stable/8/sys/sys/mount.h   (props changed)
  stable/8/sys/sys/mouse.h   (props changed)
  stable/8/sys/sys/mpt_ioctl.h   (props changed)
  stable/8/sys/sys/mqueue.h   (props changed)
  stable/8/sys/sys/msg.h   (props changed)
  stable/8/sys/sys/msgbuf.h   (props changed)
  stable/8/sys/sys/mtio.h   (props changed)
  stable/8/sys/sys/mutex.h   (props changed)
  stable/8/sys/sys/namei.h   (props changed)
  stable/8/sys/sys/nlist_aout.h   (props changed)
  stable/8/sys/sys/osd.h   (props changed)
  stable/8/sys/sys/param.h   (props changed)
  stable/8/sys/sys/pciio.h   (props changed)
  stable/8/sys/sys/pcpu.h   (props changed)
  stable/8/sys/sys/pioctl.h   (props changed)
  stable/8/sys/sys/pipe.h   (props changed)
  stable/8/sys/sys/pmc.h   (props changed)
  stable/8/sys/sys/pmckern.h   (props changed)
  stable/8/sys/sys/pmclog.h   (props changed)
  stable/8/sys/sys/poll.h   (props changed)
  stable/8/sys/sys/posix4.h   (props changed)
  stable/8/sys/sys/power.h   (props changed)
  stable/8/sys/sys/priority.h   (props changed)
  stable/8/sys/sys/priv.h   (props changed)
  stable/8/sys/sys/proc.h   (props changed)
  stable/8/sys/sys/procfs.h   (props changed)
  stable/8/sys/sys/protosw.h   (props changed)
  stable/8/sys/sys/ptio.h   (props changed)
  stable/8/sys/sys/ptrace.h   (props changed)
  stable/8/sys/sys/queue.h   (props changed)
  stable/8/sys/sys/random.h   (props changed)
  stable/8/sys/sys/reboot.h   (props changed)
  stable/8/sys/sys/refcount.h   (props changed)
  stable/8/sys/sys/regression.h   (props changed)
  stable/8/sys/sys/resource.h   (props changed)
  stable/8/sys/sys/resourcevar.h   (props changed)
  stable/8/sys/sys/rman.h   (props changed)
  stable/8/sys/sys/rmlock.h   (props changed)
  stable/8/sys/sys/rtprio.h   (props changed)
  stable/8/sys/sys/runq.h   (props changed)
  stable/8/sys/sys/rwlock.h   (props changed)
  stable/8/sys/sys/sbuf.h   (props changed)
  stable/8/sys/sys/sched.h   (props changed)
  stable/8/sys/sys/sdt.h   (props changed)
  stable/8/sys/sys/select.h   (props changed)
  stable/8/sys/sys/selinfo.h   (props changed)
  stable/8/sys/sys/sem.h   (props changed)
  stable/8/sys/sys/sema.h   (props changed)
  stable/8/sys/sys/semaphore.h   (props changed)
  stable/8/sys/sys/serial.h   (props changed)
  stable/8/sys/sys/sf_buf.h   (props changed)
  stable/8/sys/sys/sglist.h   (props changed)
  stable/8/sys/sys/shm.h   (props changed)
  stable/8/sys/sys/sigio.h   (props changed)
  stable/8/sys/sys/signal.h   (props changed)
  stable/8/sys/sys/signalvar.h   (props changed)
  stable/8/sys/sys/sleepqueue.h   (props changed)
  stable/8/sys/sys/smp.h   (props changed)
  stable/8/sys/sys/snoop.h   (props changed)
  stable/8/sys/sys/sockbuf.h   (props changed)
  stable/8/sys/sys/socket.h   (props changed)
  stable/8/sys/sys/socketvar.h   (props changed)
  stable/8/sys/sys/sockio.h   (props changed)
  stable/8/sys/sys/sockopt.h   (props changed)
  stable/8/sys/sys/sockstate.h   (props changed)
  stable/8/sys/sys/soundcard.h   (props changed)
  stable/8/sys/sys/stack.h   (props changed)
  stable/8/sys/sys/stat.h   (props changed)
  stable/8/sys/sys/statvfs.h   (props changed)
  stable/8/sys/sys/stddef.h   (props changed)
  stable/8/sys/sys/stdint.h   (props changed)
  stable/8/sys/sys/sun_disklabel.h   (props changed)
  stable/8/sys/sys/sx.h   (props changed)
  stable/8/sys/sys/syscall.h   (props changed)
  stable/8/sys/sys/syscall.mk   (props changed)
  stable/8/sys/sys/syscallsubr.h   (props changed)
  stable/8/sys/sys/sysctl.h   (props changed)
  stable/8/sys/sys/sysent.h   (props changed)
  stable/8/sys/sys/syslimits.h   (props changed)
  stable/8/sys/sys/syslog.h   (props changed)
  stable/8/sys/sys/sysproto.h   (props changed)
  stable/8/sys/sys/systm.h   (props changed)
  stable/8/sys/sys/taskqueue.h   (props changed)
  stable/8/sys/sys/termios.h   (props changed)
  stable/8/sys/sys/thr.h   (props changed)
  stable/8/sys/sys/tiio.h   (props changed)
  stable/8/sys/sys/time.h   (props changed)
  stable/8/sys/sys/timeb.h   (props changed)
  stable/8/sys/sys/timepps.h   (props changed)
  stable/8/sys/sys/timers.h   (props changed)
  stable/8/sys/sys/times.h   (props changed)
  stable/8/sys/sys/timespec.h   (props changed)
  stable/8/sys/sys/timetc.h   (props changed)
  stable/8/sys/sys/timex.h   (props changed)
  stable/8/sys/sys/tree.h   (props changed)
  stable/8/sys/sys/tty.h   (props changed)
  stable/8/sys/sys/ttycom.h   (props changed)
  stable/8/sys/sys/ttydefaults.h   (props changed)
  stable/8/sys/sys/ttydevsw.h   (props changed)
  stable/8/sys/sys/ttydisc.h   (props changed)
  stable/8/sys/sys/ttyhook.h   (props changed)
  stable/8/sys/sys/ttyqueue.h   (props changed)
  stable/8/sys/sys/turnstile.h   (props changed)
  stable/8/sys/sys/types.h   (props changed)
  stable/8/sys/sys/ucontext.h   (props changed)
  stable/8/sys/sys/ucred.h   (props changed)
  stable/8/sys/sys/uio.h   (props changed)
  stable/8/sys/sys/umtx.h   (props changed)
  stable/8/sys/sys/un.h   (props changed)
  stable/8/sys/sys/unistd.h   (props changed)
  stable/8/sys/sys/unpcb.h   (props changed)
  stable/8/sys/sys/user.h   (props changed)
  stable/8/sys/sys/utsname.h   (props changed)
  stable/8/sys/sys/uuid.h   (props changed)
  stable/8/sys/sys/vmmeter.h   (props changed)
  stable/8/sys/sys/vnode.h   (props changed)
  stable/8/sys/sys/vtoc.h   (props changed)
  stable/8/sys/sys/wait.h   (props changed)
  stable/8/sys/sys/watchdog.h   (props changed)
  stable/8/sys/tools/   (props changed)
  stable/8/sys/tools/acpi_quirks2h.awk   (props changed)
  stable/8/sys/tools/bus_macro.sh   (props changed)
  stable/8/sys/tools/embed_mfs.sh   (props changed)
  stable/8/sys/tools/fw_stub.awk   (props changed)
  stable/8/sys/tools/makeobjops.awk   (props changed)
  stable/8/sys/tools/miidevs2h.awk   (props changed)
  stable/8/sys/tools/pccarddevs2h.awk   (props changed)
  stable/8/sys/tools/sound/   (props changed)
  stable/8/sys/tools/usbdevs2h.awk   (props changed)
  stable/8/sys/tools/vnode_if.awk   (props changed)
  stable/8/sys/ufs/   (props changed)
  stable/8/sys/ufs/ffs/   (props changed)
  stable/8/sys/ufs/ufs/   (props changed)
  stable/8/sys/vm/   (props changed)
  stable/8/sys/vm/default_pager.c   (props changed)
  stable/8/sys/vm/device_pager.c   (props changed)
  stable/8/sys/vm/memguard.c   (props changed)
  stable/8/sys/vm/memguard.h   (props changed)
  stable/8/sys/vm/phys_pager.c   (props changed)
  stable/8/sys/vm/pmap.h   (props changed)
  stable/8/sys/vm/redzone.c   (props changed)
  stable/8/sys/vm/redzone.h   (props changed)
  stable/8/sys/vm/sg_pager.c   (props changed)
  stable/8/sys/vm/swap_pager.c   (props changed)
  stable/8/sys/vm/swap_pager.h   (props changed)
  stable/8/sys/vm/uma.h   (props changed)
  stable/8/sys/vm/uma_core.c   (props changed)
  stable/8/sys/vm/uma_dbg.c   (props changed)
  stable/8/sys/vm/uma_dbg.h   (props changed)
  stable/8/sys/vm/uma_int.h   (props changed)
  stable/8/sys/vm/vm.h   (props changed)
  stable/8/sys/vm/vm_contig.c   (props changed)
  stable/8/sys/vm/vm_extern.h   (props changed)
  stable/8/sys/vm/vm_fault.c   (props changed)
  stable/8/sys/vm/vm_glue.c   (props changed)
  stable/8/sys/vm/vm_init.c   (props changed)
  stable/8/sys/vm/vm_kern.c   (props changed)
  stable/8/sys/vm/vm_kern.h   (props changed)
  stable/8/sys/vm/vm_map.c   (props changed)
  stable/8/sys/vm/vm_map.h   (props changed)
  stable/8/sys/vm/vm_meter.c   (props changed)
  stable/8/sys/vm/vm_mmap.c   (props changed)
  stable/8/sys/vm/vm_object.c   (props changed)
  stable/8/sys/vm/vm_object.h   (props changed)
  stable/8/sys/vm/vm_page.c   (props changed)
  stable/8/sys/vm/vm_page.h   (props changed)
  stable/8/sys/vm/vm_pageout.c   (props changed)
  stable/8/sys/vm/vm_pageout.h   (props changed)
  stable/8/sys/vm/vm_pager.c   (props changed)
  stable/8/sys/vm/vm_pager.h   (props changed)
  stable/8/sys/vm/vm_param.h   (props changed)
  stable/8/sys/vm/vm_phys.c   (props changed)
  stable/8/sys/vm/vm_phys.h   (props changed)
  stable/8/sys/vm/vm_reserv.c   (props changed)
  stable/8/sys/vm/vm_reserv.h   (props changed)
  stable/8/sys/vm/vm_unix.c   (props changed)
  stable/8/sys/vm/vm_zeroidle.c   (props changed)
  stable/8/sys/vm/vnode_pager.c   (props changed)
  stable/8/sys/vm/vnode_pager.h   (props changed)
  stable/8/sys/xdr/   (props changed)
  stable/8/sys/xdr/xdr.c   (props changed)
  stable/8/sys/xdr/xdr_array.c   (props changed)
  stable/8/sys/xdr/xdr_mbuf.c   (props changed)
  stable/8/sys/xdr/xdr_mem.c   (props changed)
  stable/8/sys/xdr/xdr_reference.c   (props changed)
  stable/8/sys/xdr/xdr_sizeof.c   (props changed)
  stable/8/sys/xen/   (props changed)
  stable/8/sys/xen/evtchn/   (props changed)
  stable/8/sys/xen/evtchn.h   (props changed)
  stable/8/sys/xen/features.c   (props changed)
  stable/8/sys/xen/features.h   (props changed)
  stable/8/sys/xen/gnttab.c   (props changed)
  stable/8/sys/xen/gnttab.h   (props changed)
  stable/8/sys/xen/hypervisor.h   (props changed)
  stable/8/sys/xen/interface/   (props changed)
  stable/8/sys/xen/reboot.c   (props changed)
  stable/8/sys/xen/xen_intr.h   (props changed)
  stable/8/sys/xen/xenbus/   (props changed)

From owner-svn-src-stable-8@FreeBSD.ORG  Sat Nov 21 12:38:46 2009
Return-Path: 
Delivered-To: svn-src-stable-8@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 645EB106566B;
	Sat, 21 Nov 2009 12:38:46 +0000 (UTC)
	(envelope-from sson@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 5315E8FC08;
	Sat, 21 Nov 2009 12:38:46 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nALCckpB079857;
	Sat, 21 Nov 2009 12:38:46 GMT (envelope-from sson@svn.freebsd.org)
Received: (from sson@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nALCcksF079856;
	Sat, 21 Nov 2009 12:38:46 GMT (envelope-from sson@svn.freebsd.org)
Message-Id: <200911211238.nALCcksF079856@svn.freebsd.org>
From: Stacey Son 
Date: Sat, 21 Nov 2009 12:38:46 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org
X-SVN-Group: stable-8
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r199627 - stable/8/sys/sys
X-BeenThere: svn-src-stable-8@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for only the 8-stable src tree
	
List-Unsubscribe: , 
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: , 
	
X-List-Received-Date: Sat, 21 Nov 2009 12:38:46 -0000

Author: sson
Date: Sat Nov 21 12:38:45 2009
New Revision: 199627
URL: http://svn.freebsd.org/changeset/base/199627

Log:
  Bump __FreeBSD_version to reflect the point when EVFILT_USER kevent
  filter has been implemented.
  
  Approved by: rwatson (co-mentor)

Modified:
  stable/8/sys/sys/param.h

Modified: stable/8/sys/sys/param.h
==============================================================================
--- stable/8/sys/sys/param.h	Sat Nov 21 10:46:49 2009	(r199626)
+++ stable/8/sys/sys/param.h	Sat Nov 21 12:38:45 2009	(r199627)
@@ -58,7 +58,7 @@
  *		in the range 5 to 9.
  */
 #undef __FreeBSD_version
-#define __FreeBSD_version 800107	/* Master, propagated to newvers */
+#define __FreeBSD_version 800108	/* Master, propagated to newvers */
 
 #ifndef LOCORE
 #include 

From owner-svn-src-stable-8@FreeBSD.ORG  Sat Nov 21 14:53:09 2009
Return-Path: 
Delivered-To: svn-src-stable-8@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 64EE2106566B;
	Sat, 21 Nov 2009 14:53:09 +0000 (UTC)
	(envelope-from rnoland@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 524DE8FC19;
	Sat, 21 Nov 2009 14:53:09 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nALEr949082604;
	Sat, 21 Nov 2009 14:53:09 GMT (envelope-from rnoland@svn.freebsd.org)
Received: (from rnoland@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nALEr8XD082602;
	Sat, 21 Nov 2009 14:53:08 GMT (envelope-from rnoland@svn.freebsd.org)
Message-Id: <200911211453.nALEr8XD082602@svn.freebsd.org>
From: Robert Noland 
Date: Sat, 21 Nov 2009 14:53:08 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org
X-SVN-Group: stable-8
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r199630 - stable/8/sys/geom/part
X-BeenThere: svn-src-stable-8@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for only the 8-stable src tree
	
List-Unsubscribe: , 
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: , 
	
X-List-Received-Date: Sat, 21 Nov 2009 14:53:09 -0000

Author: rnoland
Date: Sat Nov 21 14:53:08 2009
New Revision: 199630
URL: http://svn.freebsd.org/changeset/base/199630

Log:
  MFC r199017,199228
  
  Fix handling of GPT headers when size is > 92 bytes.
  
  This should address reading GPT headers written by opensolaris.

Modified:
  stable/8/sys/geom/part/g_part_gpt.c
Directory Properties:
  stable/8/sys/   (props changed)
  stable/8/sys/amd64/include/xen/   (props changed)
  stable/8/sys/cddl/contrib/opensolaris/   (props changed)
  stable/8/sys/contrib/dev/acpica/   (props changed)
  stable/8/sys/contrib/pf/   (props changed)
  stable/8/sys/dev/xen/xenpci/   (props changed)

Modified: stable/8/sys/geom/part/g_part_gpt.c
==============================================================================
--- stable/8/sys/geom/part/g_part_gpt.c	Sat Nov 21 14:28:32 2009	(r199629)
+++ stable/8/sys/geom/part/g_part_gpt.c	Sat Nov 21 14:53:08 2009	(r199630)
@@ -73,7 +73,7 @@ enum gpt_state {
 struct g_part_gpt_table {
 	struct g_part_table	base;
 	u_char			mbr[MBRSIZE];
-	struct gpt_hdr		hdr;
+	struct gpt_hdr		*hdr;
 	quad_t			lba[GPT_ELT_COUNT];
 	enum gpt_state		state[GPT_ELT_COUNT];
 };
@@ -143,13 +143,12 @@ static struct uuid gpt_uuid_linux_swap =
 static struct uuid gpt_uuid_mbr = GPT_ENT_TYPE_MBR;
 static struct uuid gpt_uuid_unused = GPT_ENT_TYPE_UNUSED;
 
-static void
+static struct gpt_hdr *
 gpt_read_hdr(struct g_part_gpt_table *table, struct g_consumer *cp,
-    enum gpt_elt elt, struct gpt_hdr *hdr)
+    enum gpt_elt elt)
 {
-	struct uuid uuid;
+	struct gpt_hdr *buf, *hdr;
 	struct g_provider *pp;
-	char *buf;
 	quad_t lba, last;
 	int error;
 	uint32_t crc, sz;
@@ -161,63 +160,75 @@ gpt_read_hdr(struct g_part_gpt_table *ta
 	buf = g_read_data(cp, table->lba[elt] * pp->sectorsize, pp->sectorsize,
 	    &error);
 	if (buf == NULL)
-		return;
-	bcopy(buf, hdr, sizeof(*hdr));
-	if (memcmp(hdr->hdr_sig, GPT_HDR_SIG, sizeof(hdr->hdr_sig)) != 0)
-		return;
+		return (NULL);
+	hdr = NULL;
+	if (memcmp(buf->hdr_sig, GPT_HDR_SIG, sizeof(buf->hdr_sig)) != 0)
+		goto fail;
 
 	table->state[elt] = GPT_STATE_CORRUPT;
-	sz = le32toh(hdr->hdr_size);
+	sz = le32toh(buf->hdr_size);
 	if (sz < 92 || sz > pp->sectorsize)
-		return;
-	crc = le32toh(hdr->hdr_crc_self);
-	hdr->hdr_crc_self = 0;
-	if (crc32(hdr, sz) != crc)
-		return;
+		goto fail;
+
+	hdr = g_malloc(sz, M_WAITOK | M_ZERO);
+	bcopy(buf, hdr, sz);
 	hdr->hdr_size = sz;
+
+	crc = le32toh(buf->hdr_crc_self);
+	buf->hdr_crc_self = 0;
+	if (crc32(buf, sz) != crc)
+		goto fail;
 	hdr->hdr_crc_self = crc;
 
 	table->state[elt] = GPT_STATE_INVALID;
-	hdr->hdr_revision = le32toh(hdr->hdr_revision);
+	hdr->hdr_revision = le32toh(buf->hdr_revision);
 	if (hdr->hdr_revision < 0x00010000)
-		return;
-	hdr->hdr_lba_self = le64toh(hdr->hdr_lba_self);
+		goto fail;
+	hdr->hdr_lba_self = le64toh(buf->hdr_lba_self);
 	if (hdr->hdr_lba_self != table->lba[elt])
-		return;
-	hdr->hdr_lba_alt = le64toh(hdr->hdr_lba_alt);
+		goto fail;
+	hdr->hdr_lba_alt = le64toh(buf->hdr_lba_alt);
 
 	/* Check the managed area. */
-	hdr->hdr_lba_start = le64toh(hdr->hdr_lba_start);
+	hdr->hdr_lba_start = le64toh(buf->hdr_lba_start);
 	if (hdr->hdr_lba_start < 2 || hdr->hdr_lba_start >= last)
-		return;
-	hdr->hdr_lba_end = le64toh(hdr->hdr_lba_end);
+		goto fail;
+	hdr->hdr_lba_end = le64toh(buf->hdr_lba_end);
 	if (hdr->hdr_lba_end < hdr->hdr_lba_start || hdr->hdr_lba_end >= last)
-		return;
+		goto fail;
 
 	/* Check the table location and size of the table. */
-	hdr->hdr_entries = le32toh(hdr->hdr_entries);
-	hdr->hdr_entsz = le32toh(hdr->hdr_entsz);
+	hdr->hdr_entries = le32toh(buf->hdr_entries);
+	hdr->hdr_entsz = le32toh(buf->hdr_entsz);
 	if (hdr->hdr_entries == 0 || hdr->hdr_entsz < 128 ||
 	    (hdr->hdr_entsz & 7) != 0)
-		return;
-	hdr->hdr_lba_table = le64toh(hdr->hdr_lba_table);
+		goto fail;
+	hdr->hdr_lba_table = le64toh(buf->hdr_lba_table);
 	if (hdr->hdr_lba_table < 2 || hdr->hdr_lba_table >= last)
-		return;
+		goto fail;
 	if (hdr->hdr_lba_table >= hdr->hdr_lba_start &&
 	    hdr->hdr_lba_table <= hdr->hdr_lba_end)
-		return;
+		goto fail;
 	lba = hdr->hdr_lba_table +
 	    (hdr->hdr_entries * hdr->hdr_entsz + pp->sectorsize - 1) /
 	    pp->sectorsize - 1;
 	if (lba >= last)
-		return;
+		goto fail;
 	if (lba >= hdr->hdr_lba_start && lba <= hdr->hdr_lba_end)
-		return;
+		goto fail;
 
 	table->state[elt] = GPT_STATE_OK;
-	le_uuid_dec(&hdr->hdr_uuid, &uuid);
-	hdr->hdr_uuid = uuid;
-	hdr->hdr_crc_table = le32toh(hdr->hdr_crc_table);
+	le_uuid_dec(&buf->hdr_uuid, &hdr->hdr_uuid);
+	hdr->hdr_crc_table = le32toh(buf->hdr_crc_table);
+
+	g_free(buf);
+	return (hdr);
+
+ fail:
+	if (hdr != NULL)
+		g_free(hdr);
+	g_free(buf);
+	return (NULL);
 }
 
 static struct gpt_ent *
@@ -230,6 +241,9 @@ gpt_read_tbl(struct g_part_gpt_table *ta
 	unsigned int idx, sectors, tblsz;
 	int error;
 
+	if (hdr == NULL)
+		return (NULL);
+
 	pp = cp->provider;
 	table->lba[elt] = hdr->hdr_lba_table;
 
@@ -271,6 +285,9 @@ static int
 gpt_matched_hdrs(struct gpt_hdr *pri, struct gpt_hdr *sec)
 {
 
+	if (pri == NULL || sec == NULL)
+		return (0);
+
 	if (!EQUUID(&pri->hdr_uuid, &sec->hdr_uuid))
 		return (0);
 	return ((pri->hdr_revision == sec->hdr_revision &&
@@ -427,17 +444,20 @@ g_part_gpt_create(struct g_part_table *b
 	table->lba[GPT_ELT_SECHDR] = last;
 	table->lba[GPT_ELT_SECTBL] = last - tblsz;
 
-	bcopy(GPT_HDR_SIG, table->hdr.hdr_sig, sizeof(table->hdr.hdr_sig));
-	table->hdr.hdr_revision = GPT_HDR_REVISION;
-	table->hdr.hdr_size = offsetof(struct gpt_hdr, padding);
-	table->hdr.hdr_lba_start = 2 + tblsz;
-	table->hdr.hdr_lba_end = last - tblsz - 1;
-	kern_uuidgen(&table->hdr.hdr_uuid, 1);
-	table->hdr.hdr_entries = basetable->gpt_entries;
-	table->hdr.hdr_entsz = sizeof(struct gpt_ent);
+	/* Allocate space for the header */
+	table->hdr = g_malloc(sizeof(struct gpt_hdr), M_WAITOK | M_ZERO);
+
+	bcopy(GPT_HDR_SIG, table->hdr->hdr_sig, sizeof(table->hdr->hdr_sig));
+	table->hdr->hdr_revision = GPT_HDR_REVISION;
+	table->hdr->hdr_size = offsetof(struct gpt_hdr, padding);
+	table->hdr->hdr_lba_start = 2 + tblsz;
+	table->hdr->hdr_lba_end = last - tblsz - 1;
+	kern_uuidgen(&table->hdr->hdr_uuid, 1);
+	table->hdr->hdr_entries = basetable->gpt_entries;
+	table->hdr->hdr_entsz = sizeof(struct gpt_ent);
 
-	basetable->gpt_first = table->hdr.hdr_lba_start;
-	basetable->gpt_last = table->hdr.hdr_lba_end;
+	basetable->gpt_first = table->hdr->hdr_lba_start;
+	basetable->gpt_last = table->hdr->hdr_lba_end;
 	return (0);
 }
 
@@ -582,7 +602,7 @@ g_part_gpt_probe(struct g_part_table *ta
 static int
 g_part_gpt_read(struct g_part_table *basetable, struct g_consumer *cp)
 {
-	struct gpt_hdr prihdr, sechdr;
+	struct gpt_hdr *prihdr, *sechdr;
 	struct gpt_ent *tbl, *pritbl, *sectbl;
 	struct g_provider *pp;
 	struct g_part_gpt_table *table;
@@ -601,18 +621,18 @@ g_part_gpt_read(struct g_part_table *bas
 	g_free(buf);
 
 	/* Read the primary header and table. */
-	gpt_read_hdr(table, cp, GPT_ELT_PRIHDR, &prihdr);
+	prihdr = gpt_read_hdr(table, cp, GPT_ELT_PRIHDR);
 	if (table->state[GPT_ELT_PRIHDR] == GPT_STATE_OK) {
-		pritbl = gpt_read_tbl(table, cp, GPT_ELT_PRITBL, &prihdr);
+		pritbl = gpt_read_tbl(table, cp, GPT_ELT_PRITBL, prihdr);
 	} else {
 		table->state[GPT_ELT_PRITBL] = GPT_STATE_MISSING;
 		pritbl = NULL;
 	}
 
 	/* Read the secondary header and table. */
-	gpt_read_hdr(table, cp, GPT_ELT_SECHDR, &sechdr);
+	sechdr = gpt_read_hdr(table, cp, GPT_ELT_SECHDR);
 	if (table->state[GPT_ELT_SECHDR] == GPT_STATE_OK) {
-		sectbl = gpt_read_tbl(table, cp, GPT_ELT_SECTBL, &sechdr);
+		sectbl = gpt_read_tbl(table, cp, GPT_ELT_SECTBL, sechdr);
 	} else {
 		table->state[GPT_ELT_SECTBL] = GPT_STATE_MISSING;
 		sectbl = NULL;
@@ -635,13 +655,17 @@ g_part_gpt_read(struct g_part_table *bas
 	 */
 	if (table->state[GPT_ELT_PRIHDR] == GPT_STATE_OK &&
 	    table->state[GPT_ELT_SECHDR] == GPT_STATE_OK &&
-	    !gpt_matched_hdrs(&prihdr, &sechdr)) {
+	    !gpt_matched_hdrs(prihdr, sechdr)) {
 		if (table->state[GPT_ELT_PRITBL] == GPT_STATE_OK) {
 			table->state[GPT_ELT_SECHDR] = GPT_STATE_INVALID;
 			table->state[GPT_ELT_SECTBL] = GPT_STATE_MISSING;
+			g_free(sechdr);
+			sechdr = NULL;
 		} else {
 			table->state[GPT_ELT_PRIHDR] = GPT_STATE_INVALID;
 			table->state[GPT_ELT_PRITBL] = GPT_STATE_MISSING;
+			g_free(prihdr);
+			prihdr = NULL;
 		}
 	}
 
@@ -651,6 +675,8 @@ g_part_gpt_read(struct g_part_table *bas
 		printf("GEOM: %s: using the secondary instead -- recovery "
 		    "strongly advised.\n", pp->name);
 		table->hdr = sechdr;
+		if (prihdr != NULL)
+			g_free(prihdr);
 		tbl = sectbl;
 		if (pritbl != NULL)
 			g_free(pritbl);
@@ -662,14 +688,16 @@ g_part_gpt_read(struct g_part_table *bas
 			    "suggested.\n", pp->name);
 		}
 		table->hdr = prihdr;
+		if (sechdr != NULL)
+			g_free(sechdr);
 		tbl = pritbl;
 		if (sectbl != NULL)
 			g_free(sectbl);
 	}
 
-	basetable->gpt_first = table->hdr.hdr_lba_start;
-	basetable->gpt_last = table->hdr.hdr_lba_end;
-	basetable->gpt_entries = table->hdr.hdr_entries;
+	basetable->gpt_first = table->hdr->hdr_lba_start;
+	basetable->gpt_last = table->hdr->hdr_lba_end;
+	basetable->gpt_entries = table->hdr->hdr_entries;
 
 	for (index = basetable->gpt_entries - 1; index >= 0; index--) {
 		if (EQUUID(&tbl[index].ent_type, &gpt_uuid_unused))
@@ -729,7 +757,7 @@ g_part_gpt_write(struct g_part_table *ba
 
 	pp = cp->provider;
 	table = (struct g_part_gpt_table *)basetable;
-	tlbsz = (table->hdr.hdr_entries * table->hdr.hdr_entsz +
+	tlbsz = (table->hdr->hdr_entries * table->hdr->hdr_entsz +
 	    pp->sectorsize - 1) / pp->sectorsize;
 
 	/* Write the PMBR */
@@ -743,21 +771,21 @@ g_part_gpt_write(struct g_part_table *ba
 	/* Allocate space for the header and entries. */
 	buf = g_malloc((tlbsz + 1) * pp->sectorsize, M_WAITOK | M_ZERO);
 
-	memcpy(buf, table->hdr.hdr_sig, sizeof(table->hdr.hdr_sig));
-	le32enc(buf + 8, table->hdr.hdr_revision);
-	le32enc(buf + 12, table->hdr.hdr_size);
-	le64enc(buf + 40, table->hdr.hdr_lba_start);
-	le64enc(buf + 48, table->hdr.hdr_lba_end);
-	le_uuid_enc(buf + 56, &table->hdr.hdr_uuid);
-	le32enc(buf + 80, table->hdr.hdr_entries);
-	le32enc(buf + 84, table->hdr.hdr_entsz);
+	memcpy(buf, table->hdr->hdr_sig, sizeof(table->hdr->hdr_sig));
+	le32enc(buf + 8, table->hdr->hdr_revision);
+	le32enc(buf + 12, table->hdr->hdr_size);
+	le64enc(buf + 40, table->hdr->hdr_lba_start);
+	le64enc(buf + 48, table->hdr->hdr_lba_end);
+	le_uuid_enc(buf + 56, &table->hdr->hdr_uuid);
+	le32enc(buf + 80, table->hdr->hdr_entries);
+	le32enc(buf + 84, table->hdr->hdr_entsz);
 
 	LIST_FOREACH(baseentry, &basetable->gpt_entry, gpe_entry) {
 		if (baseentry->gpe_deleted)
 			continue;
 		entry = (struct g_part_gpt_entry *)baseentry;
 		index = baseentry->gpe_index - 1;
-		bp = buf + pp->sectorsize + table->hdr.hdr_entsz * index;
+		bp = buf + pp->sectorsize + table->hdr->hdr_entsz * index;
 		le_uuid_enc(bp, &entry->ent.ent_type);
 		le_uuid_enc(bp + 16, &entry->ent.ent_uuid);
 		le64enc(bp + 32, entry->ent.ent_lba_start);
@@ -768,7 +796,7 @@ g_part_gpt_write(struct g_part_table *ba
 	}
 
 	crc = crc32(buf + pp->sectorsize,
-	    table->hdr.hdr_entries * table->hdr.hdr_entsz);
+	    table->hdr->hdr_entries * table->hdr->hdr_entsz);
 	le32enc(buf + 88, crc);
 
 	/* Write primary meta-data. */
@@ -776,7 +804,7 @@ g_part_gpt_write(struct g_part_table *ba
 	le64enc(buf + 24, table->lba[GPT_ELT_PRIHDR]);	/* hdr_lba_self. */
 	le64enc(buf + 32, table->lba[GPT_ELT_SECHDR]);	/* hdr_lba_alt. */
 	le64enc(buf + 72, table->lba[GPT_ELT_PRITBL]);	/* hdr_lba_table. */
-	crc = crc32(buf, table->hdr.hdr_size);
+	crc = crc32(buf, table->hdr->hdr_size);
 	le32enc(buf + 16, crc);
 
 	error = g_write_data(cp, table->lba[GPT_ELT_PRITBL] * pp->sectorsize,
@@ -793,7 +821,7 @@ g_part_gpt_write(struct g_part_table *ba
 	le64enc(buf + 24, table->lba[GPT_ELT_SECHDR]);	/* hdr_lba_self. */
 	le64enc(buf + 32, table->lba[GPT_ELT_PRIHDR]);	/* hdr_lba_alt. */
 	le64enc(buf + 72, table->lba[GPT_ELT_SECTBL]);	/* hdr_lba_table. */
-	crc = crc32(buf, table->hdr.hdr_size);
+	crc = crc32(buf, table->hdr->hdr_size);
 	le32enc(buf + 16, crc);
 
 	error = g_write_data(cp, table->lba[GPT_ELT_SECTBL] * pp->sectorsize,

From owner-svn-src-stable-8@FreeBSD.ORG  Sat Nov 21 15:02:35 2009
Return-Path: 
Delivered-To: svn-src-stable-8@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 72BCA10656A4;
	Sat, 21 Nov 2009 15:02:35 +0000 (UTC)
	(envelope-from rnoland@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 5FD558FC18;
	Sat, 21 Nov 2009 15:02:35 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nALF2ZY8083045;
	Sat, 21 Nov 2009 15:02:35 GMT (envelope-from rnoland@svn.freebsd.org)
Received: (from rnoland@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nALF2ZZA083040;
	Sat, 21 Nov 2009 15:02:35 GMT (envelope-from rnoland@svn.freebsd.org)
Message-Id: <200911211502.nALF2ZZA083040@svn.freebsd.org>
From: Robert Noland 
Date: Sat, 21 Nov 2009 15:02:35 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org
X-SVN-Group: stable-8
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r199634 - in stable/8/sys: boot/i386/zfsboot boot/zfs
	cddl/boot/zfs
X-BeenThere: svn-src-stable-8@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for only the 8-stable src tree
	
List-Unsubscribe: , 
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: , 
	
X-List-Received-Date: Sat, 21 Nov 2009 15:02:35 -0000

Author: rnoland
Date: Sat Nov 21 15:02:35 2009
New Revision: 199634
URL: http://svn.freebsd.org/changeset/base/199634

Log:
  MFC 198420
  
    Correct some issues with zfs boot.
  
     - Teach it to read gang blocks. (essentially untested)
       If you see "ZFS: gang block detected!", please let
       me know, so we can either remove the printf if it
       works, or fix it if it doesn't.
  
     - If multiple partitions exist on a disk, probe them all.
       We also need to reset dsk->start to 0 to read the right
       sector here.
  
     - With GPT, we can have 128 partitions.
  
     - If the bootfs property has ever been set on a pool
       it seems that it never goes away.  zpool won't allow
       you to add to the pool with the bootfs property set.
       However, if you clear the property back to default
       we end up getting 0 for the object number and read
       a bogus block pointer and fail to boot.
  
     - Fix some error printfs. The printf in the loader is
       only capable of c,s and u formats.
  
     - Teach printf how to display %llu

Modified:
  stable/8/sys/boot/i386/zfsboot/zfsboot.c
  stable/8/sys/boot/zfs/zfs.c
  stable/8/sys/boot/zfs/zfsimpl.c
  stable/8/sys/cddl/boot/zfs/zfsimpl.h
Directory Properties:
  stable/8/sys/   (props changed)
  stable/8/sys/amd64/include/xen/   (props changed)
  stable/8/sys/cddl/contrib/opensolaris/   (props changed)
  stable/8/sys/contrib/dev/acpica/   (props changed)
  stable/8/sys/contrib/pf/   (props changed)
  stable/8/sys/dev/xen/xenpci/   (props changed)

Modified: stable/8/sys/boot/i386/zfsboot/zfsboot.c
==============================================================================
--- stable/8/sys/boot/i386/zfsboot/zfsboot.c	Sat Nov 21 14:54:45 2009	(r199633)
+++ stable/8/sys/boot/i386/zfsboot/zfsboot.c	Sat Nov 21 15:02:35 2009	(r199634)
@@ -474,6 +474,7 @@ probe_drive(struct dsk *dsk, spa_t **spa
     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 @@ probe_drive(struct dsk *dsk, spa_t **spa
 		     */
 		    dsk = copy_dsk(dsk);
 		}
-		break;
 	    }
 	}
 	slba++;
@@ -857,12 +857,13 @@ static void
 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 @@ printf(const char *fmt,...)
 	if (c == '%') {
 	    minus = 0;
 	    prec = 0;
+	    l = 0;
 	nextfmt:
 	    c = *fmt++;
 	    switch (c) {
@@ -892,6 +894,9 @@ printf(const char *fmt,...)
 	    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 @@ printf(const char *fmt,...)
 		}
 		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;

Modified: stable/8/sys/boot/zfs/zfs.c
==============================================================================
--- stable/8/sys/boot/zfs/zfs.c	Sat Nov 21 14:54:45 2009	(r199633)
+++ stable/8/sys/boot/zfs/zfs.c	Sat Nov 21 15:02:35 2009	(r199634)
@@ -100,7 +100,7 @@ zfs_open(const char *upath, struct open_
 	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 @@ zfs_dev_init(void) 
 		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) {

Modified: stable/8/sys/boot/zfs/zfsimpl.c
==============================================================================
--- stable/8/sys/boot/zfs/zfsimpl.c	Sat Nov 21 14:54:45 2009	(r199633)
+++ stable/8/sys/boot/zfs/zfsimpl.c	Sat Nov 21 15:02:35 2009	(r199634)
@@ -53,6 +53,8 @@ static char *zfs_temp_buf, *zfs_temp_end
 
 #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 @@ ilog2(int n)
 }
 
 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 @@ zio_read(spa_t *spa, const blkptr_t *bp,
 		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 @@ zfs_mount_dataset(spa_t *spa, uint64_t o
 	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 @@ zfs_mount_root(spa_t *spa, objset_phys_t
 	 */
 	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 @@ zfs_lookup(spa_t *spa, const char *upath
 	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);
 	}

Modified: stable/8/sys/cddl/boot/zfs/zfsimpl.h
==============================================================================
--- stable/8/sys/cddl/boot/zfs/zfsimpl.h	Sat Nov 21 14:54:45 2009	(r199633)
+++ stable/8/sys/cddl/boot/zfs/zfsimpl.h	Sat Nov 21 15:02:35 2009	(r199634)
@@ -374,6 +374,24 @@ typedef struct vdev_label {
 #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,