From owner-svn-src-user@FreeBSD.ORG Thu Mar 12 06:24:01 2009 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 79AD11065678; Thu, 12 Mar 2009 06:24:01 +0000 (UTC) (envelope-from kmacy@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 654DF8FC24; Thu, 12 Mar 2009 06:24:01 +0000 (UTC) (envelope-from kmacy@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2C6O1XB019098; Thu, 12 Mar 2009 06:24:01 GMT (envelope-from kmacy@svn.freebsd.org) Received: (from kmacy@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2C6O06D019084; Thu, 12 Mar 2009 06:24:00 GMT (envelope-from kmacy@svn.freebsd.org) Message-Id: <200903120624.n2C6O06D019084@svn.freebsd.org> From: Kip Macy Date: Thu, 12 Mar 2009 06:24:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r189722 - in user/kmacy/releng_7_net_backport/sys: amd64/amd64 amd64/conf conf dev/e1000 dev/firewire dev/mxge kern net netinet netinet6 nfs4client nfsclient nfsserver sys X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 12 Mar 2009 06:24:01 -0000 Author: kmacy Date: Thu Mar 12 06:24:00 2009 New Revision: 189722 URL: http://svn.freebsd.org/changeset/base/189722 Log: fix build issues Added: user/kmacy/releng_7_net_backport/sys/kern/kern_vimage.c (contents, props changed) Modified: user/kmacy/releng_7_net_backport/sys/amd64/amd64/genassym.c user/kmacy/releng_7_net_backport/sys/amd64/conf/GENERIC user/kmacy/releng_7_net_backport/sys/conf/files user/kmacy/releng_7_net_backport/sys/dev/e1000/e1000_80003es2lan.h user/kmacy/releng_7_net_backport/sys/dev/e1000/e1000_phy.h user/kmacy/releng_7_net_backport/sys/dev/e1000/if_em.c user/kmacy/releng_7_net_backport/sys/dev/e1000/if_em.h user/kmacy/releng_7_net_backport/sys/dev/e1000/if_igb.c user/kmacy/releng_7_net_backport/sys/dev/e1000/if_igb.h user/kmacy/releng_7_net_backport/sys/dev/firewire/firewirereg.h user/kmacy/releng_7_net_backport/sys/dev/mxge/eth_z8e.h user/kmacy/releng_7_net_backport/sys/dev/mxge/ethp_z8e.h user/kmacy/releng_7_net_backport/sys/dev/mxge/if_mxge.c user/kmacy/releng_7_net_backport/sys/dev/mxge/if_mxge_var.h user/kmacy/releng_7_net_backport/sys/dev/mxge/mxge_lro.c user/kmacy/releng_7_net_backport/sys/dev/mxge/mxge_mcp.h user/kmacy/releng_7_net_backport/sys/dev/mxge/rss_eth_z8e.h user/kmacy/releng_7_net_backport/sys/dev/mxge/rss_ethp_z8e.h user/kmacy/releng_7_net_backport/sys/kern/sys_socket.c user/kmacy/releng_7_net_backport/sys/net/bpf.c user/kmacy/releng_7_net_backport/sys/net/if.h user/kmacy/releng_7_net_backport/sys/net/if_clone.c user/kmacy/releng_7_net_backport/sys/net/if_faith.c user/kmacy/releng_7_net_backport/sys/net/if_gif.c user/kmacy/releng_7_net_backport/sys/net/if_loop.c user/kmacy/releng_7_net_backport/sys/netinet/in.c user/kmacy/releng_7_net_backport/sys/netinet/in_gif.c user/kmacy/releng_7_net_backport/sys/netinet/in_pcb.c user/kmacy/releng_7_net_backport/sys/netinet/in_proto.c user/kmacy/releng_7_net_backport/sys/netinet/ip_icmp.c user/kmacy/releng_7_net_backport/sys/netinet/tcp_hostcache.c user/kmacy/releng_7_net_backport/sys/netinet/tcp_input.c user/kmacy/releng_7_net_backport/sys/netinet/tcp_lro.c user/kmacy/releng_7_net_backport/sys/netinet/tcp_output.c user/kmacy/releng_7_net_backport/sys/netinet/tcp_reass.c user/kmacy/releng_7_net_backport/sys/netinet/tcp_sack.c user/kmacy/releng_7_net_backport/sys/netinet/tcp_subr.c user/kmacy/releng_7_net_backport/sys/netinet/tcp_syncache.c user/kmacy/releng_7_net_backport/sys/netinet/tcp_timer.c user/kmacy/releng_7_net_backport/sys/netinet/tcp_timewait.c user/kmacy/releng_7_net_backport/sys/netinet/tcp_usrreq.c user/kmacy/releng_7_net_backport/sys/netinet/udp_usrreq.c user/kmacy/releng_7_net_backport/sys/netinet6/dest6.c user/kmacy/releng_7_net_backport/sys/netinet6/frag6.c user/kmacy/releng_7_net_backport/sys/netinet6/in6_gif.c user/kmacy/releng_7_net_backport/sys/netinet6/in6_pcb.c user/kmacy/releng_7_net_backport/sys/netinet6/in6_proto.c user/kmacy/releng_7_net_backport/sys/netinet6/in6_src.c user/kmacy/releng_7_net_backport/sys/netinet6/ip6_forward.c user/kmacy/releng_7_net_backport/sys/netinet6/mld6.c user/kmacy/releng_7_net_backport/sys/netinet6/nd6.c user/kmacy/releng_7_net_backport/sys/netinet6/route6.c user/kmacy/releng_7_net_backport/sys/netinet6/udp6_usrreq.c user/kmacy/releng_7_net_backport/sys/nfs4client/nfs4_vfsops.c user/kmacy/releng_7_net_backport/sys/nfs4client/nfs4_vnops.c user/kmacy/releng_7_net_backport/sys/nfsclient/nfs_diskless.c user/kmacy/releng_7_net_backport/sys/nfsclient/nfs_vfsops.c user/kmacy/releng_7_net_backport/sys/nfsclient/nfs_vnops.c user/kmacy/releng_7_net_backport/sys/nfsserver/nfs_syscalls.c user/kmacy/releng_7_net_backport/sys/sys/kernel.h user/kmacy/releng_7_net_backport/sys/sys/mbuf.h Modified: user/kmacy/releng_7_net_backport/sys/amd64/amd64/genassym.c ============================================================================== --- user/kmacy/releng_7_net_backport/sys/amd64/amd64/genassym.c Thu Mar 12 04:44:09 2009 (r189721) +++ user/kmacy/releng_7_net_backport/sys/amd64/amd64/genassym.c Thu Mar 12 06:24:00 2009 (r189722) @@ -47,6 +47,8 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include +#include #include #include #include Modified: user/kmacy/releng_7_net_backport/sys/amd64/conf/GENERIC ============================================================================== --- user/kmacy/releng_7_net_backport/sys/amd64/conf/GENERIC Thu Mar 12 04:44:09 2009 (r189721) +++ user/kmacy/releng_7_net_backport/sys/amd64/conf/GENERIC Thu Mar 12 06:24:00 2009 (r189722) @@ -25,6 +25,7 @@ ident GENERIC #hints "GENERIC.hints" # Default places to look for devices. makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbols +makeoptions MODULES_OVERRIDE="mxge zlib geom" options SCHED_ULE # ULE scheduler options PREEMPTION # Enable kernel thread preemption @@ -171,7 +172,6 @@ device uart # Generic UART driver device ppc device ppbus # Parallel port bus (required) device lpt # Printer -device plip # TCP/IP over parallel device ppi # Parallel port interface device #device vpo # Requires scbus and da @@ -181,79 +181,20 @@ device ppi # Parallel port interface d #device puc # PCI Ethernet NICs. -device de # DEC/Intel DC21x4x (``Tulip'') device em # Intel PRO/1000 Gigabit Ethernet Family device igb # Intel PRO/1000 PCIE Server Gigabit Family -device ixgb # Intel PRO/10GbE Ethernet Card -device le # AMD Am7900 LANCE and Am79C9xx PCnet -device txp # 3Com 3cR990 (``Typhoon'') -device vx # 3Com 3c590, 3c595 (``Vortex'') # PCI Ethernet NICs that use the common MII bus controller code. # NOTE: Be sure to keep the 'device miibus' line in order to use these NICs! -device miibus # MII bus support -device age # Attansic/Atheros L1 Gigabit Ethernet -device ale # Atheros AR8121/AR8113/AR8114 Ethernet -device bce # Broadcom BCM5706/BCM5708 Gigabit Ethernet -device bfe # Broadcom BCM440x 10/100 Ethernet -device bge # Broadcom BCM570xx Gigabit Ethernet -device dc # DEC/Intel 21143 and various workalikes -device et # Agere ET1310 10/100/Gigabit Ethernet -device fxp # Intel EtherExpress PRO/100B (82557, 82558) -device jme # JMicron JMC250 Gigabit/JMC260 Fast Ethernet -device lge # Level 1 LXT1001 gigabit Ethernet -device msk # Marvell/SysKonnect Yukon II Gigabit Ethernet -device nfe # nVidia nForce MCP on-board Ethernet -device nge # NatSemi DP83820 gigabit Ethernet -#device nve # nVidia nForce MCP on-board Ethernet Networking -device pcn # AMD Am79C97x PCI 10/100 (precedence over 'le') -device re # RealTek 8139C+/8169/8169S/8110S -device rl # RealTek 8129/8139 -device sf # Adaptec AIC-6915 (``Starfire'') -device sis # Silicon Integrated Systems SiS 900/SiS 7016 -device sk # SysKonnect SK-984x & SK-982x gigabit Ethernet -device ste # Sundance ST201 (D-Link DFE-550TX) -device ti # Alteon Networks Tigon I/II gigabit Ethernet -device tl # Texas Instruments ThunderLAN -device tx # SMC EtherPower II (83c170 ``EPIC'') -device vge # VIA VT612x gigabit Ethernet -device vr # VIA Rhine, Rhine II -device wb # Winbond W89C840F -device xl # 3Com 3c90x (``Boomerang'', ``Cyclone'') - -# ISA Ethernet NICs. pccard NICs included. -device cs # Crystal Semiconductor CS89x0 NIC -# 'device ed' requires 'device miibus' -device ed # NE[12]000, SMC Ultra, 3c503, DS8390 cards -device ex # Intel EtherExpress Pro/10 and Pro/10+ -device ep # Etherlink III based cards -device fe # Fujitsu MB8696x based cards -device sn # SMC's 9000 series of Ethernet chips -device xe # Xircom pccard Ethernet - -# Wireless NIC cards -device wlan # 802.11 support -device wlan_wep # 802.11 WEP support -device wlan_ccmp # 802.11 CCMP support -device wlan_tkip # 802.11 TKIP support -device wlan_amrr # AMRR transmit rate control algorithm -device wlan_scan_ap # 802.11 AP mode scanning -device wlan_scan_sta # 802.11 STA mode scanning -device an # Aironet 4500/4800 802.11 wireless NICs. -device ath # Atheros pci/cardbus NIC's -device ath_hal # Atheros HAL (Hardware Access Layer) -device ath_rate_sample # SampleRate tx rate control for ath -device awi # BayStack 660 and others -device ral # Ralink Technology RT2500 wireless NICs. -device wi # WaveLAN/Intersil/Symbol 802.11 wireless NICs. +#device miibus # MII bus support # Pseudo devices. device loop # Network loopback device random # Entropy device device ether # Ethernet support -device sl # Kernel SLIP -device ppp # Kernel PPP -device tun # Packet tunnel. +#device sl # Kernel SLIP +#device ppp # Kernel PPP +#device tun # Packet tunnel. device pty # Pseudo-ttys (telnet etc) device md # Memory "disks" device gif # IPv6 and IPv4 tunneling @@ -266,46 +207,38 @@ device firmware # firmware assist modul device bpf # Berkeley packet filter # USB support -device uhci # UHCI PCI->USB interface -device ohci # OHCI PCI->USB interface -device ehci # EHCI PCI->USB interface (USB 2.0) -device usb # USB Bus (required) +#device uhci # UHCI PCI->USB interface +#device ohci # OHCI PCI->USB interface +#device ehci # EHCI PCI->USB interface (USB 2.0) +#device usb # USB Bus (required) #device udbp # USB Double Bulk Pipe devices -device ugen # Generic -device uhid # "Human Interface Devices" -device ukbd # Keyboard -device ulpt # Printer -device umass # Disks/Mass storage - Requires scbus and da -device ums # Mouse -device ural # Ralink Technology RT2500USB wireless NICs -device urio # Diamond Rio 500 MP3 player -device uscanner # Scanners +#device ugen # Generic +#device uhid # "Human Interface Devices" +#device ukbd # Keyboard +#device ulpt # Printer +#device umass # Disks/Mass storage - Requires scbus and da +#device ums # Mouse +#device ural # Ralink Technology RT2500USB wireless NICs +#device urio # Diamond Rio 500 MP3 player +#device uscanner # Scanners # USB Serial devices -device ucom # Generic com ttys -device uark # Technologies ARK3116 based serial adapters -device ubsa # Belkin F5U103 and compatible serial adapters -device ubser # BWCT console serial adapters -device uftdi # For FTDI usb serial adapters -device uipaq # Some WinCE based devices -device uplcom # Prolific PL-2303 serial adapters -device uslcom # SI Labs CP2101/CP2102 serial adapters -device uvisor # Visor and Palm devices -device uvscom # USB serial support for DDI pocket's PHS -# USB Ethernet, requires miibus -device aue # ADMtek USB Ethernet -device axe # ASIX Electronics USB Ethernet -device cdce # Generic USB over Ethernet -device cue # CATC USB Ethernet -device kue # Kawasaki LSI USB Ethernet -device rue # RealTek RTL8150 USB Ethernet +#device ucom # Generic com ttys +#device uark # Technologies ARK3116 based serial adapters +#device ubsa # Belkin F5U103 and compatible serial adapters +#device ubser # BWCT console serial adapters +#device uftdi # For FTDI usb serial adapters +#device uipaq # Some WinCE based devices +#device uplcom # Prolific PL-2303 serial adapters +#device uslcom # SI Labs CP2101/CP2102 serial adapters +#device uvisor # Visor and Palm devices +#device uvscom # USB serial support for DDI pocket's PHS -# FireWire support -device firewire # FireWire bus code -device sbp # SCSI over FireWire (Requires scbus and da) -device fwe # Ethernet over FireWire (non-standard!) -device fwip # IP over FireWire (RFC 2734,3146) -device dcons # Dumb console driver -device dcons_crom # Configuration ROM for dcons -options VIMAGE_GLOBALS +# FireWire support +#device firewire # FireWire bus code +#device sbp # SCSI over FireWire (Requires scbus and da) +#device fwe # Ethernet over FireWire (non-standard!) +#device fwip # IP over FireWire (RFC 2734,3146) +#device dcons # Dumb console driver +#device dcons_crom # Configuration ROM for dcons Modified: user/kmacy/releng_7_net_backport/sys/conf/files ============================================================================== --- user/kmacy/releng_7_net_backport/sys/conf/files Thu Mar 12 04:44:09 2009 (r189721) +++ user/kmacy/releng_7_net_backport/sys/conf/files Thu Mar 12 06:24:00 2009 (r189722) @@ -1475,6 +1475,7 @@ kern/kern_time.c standard kern/kern_timeout.c standard kern/kern_umtx.c standard kern/kern_uuid.c standard +kern/kern_vimage.c standard kern/kern_xxx.c standard kern/link_elf.c standard kern/linker_if.m standard Modified: user/kmacy/releng_7_net_backport/sys/dev/e1000/e1000_80003es2lan.h ============================================================================== --- user/kmacy/releng_7_net_backport/sys/dev/e1000/e1000_80003es2lan.h Thu Mar 12 04:44:09 2009 (r189721) +++ user/kmacy/releng_7_net_backport/sys/dev/e1000/e1000_80003es2lan.h Thu Mar 12 06:24:00 2009 (r189722) @@ -30,7 +30,7 @@ POSSIBILITY OF SUCH DAMAGE. *******************************************************************************/ -/*$FreeBSD$*/ +/* $FreeBSD$ */ #ifndef _E1000_80003ES2LAN_H_ Modified: user/kmacy/releng_7_net_backport/sys/dev/e1000/e1000_phy.h ============================================================================== --- user/kmacy/releng_7_net_backport/sys/dev/e1000/e1000_phy.h Thu Mar 12 04:44:09 2009 (r189721) +++ user/kmacy/releng_7_net_backport/sys/dev/e1000/e1000_phy.h Thu Mar 12 06:24:00 2009 (r189722) @@ -1,4 +1,4 @@ -/****************************************************************************** +/***************************************************************************** Copyright (c) 2001-2008, Intel Corporation All rights reserved. Modified: user/kmacy/releng_7_net_backport/sys/dev/e1000/if_em.c ============================================================================== --- user/kmacy/releng_7_net_backport/sys/dev/e1000/if_em.c Thu Mar 12 04:44:09 2009 (r189721) +++ user/kmacy/releng_7_net_backport/sys/dev/e1000/if_em.c Thu Mar 12 06:24:00 2009 (r189722) @@ -34,10 +34,12 @@ #ifdef HAVE_KERNEL_OPTION_HEADERS #include "opt_device_polling.h" +#include "opt_inet.h" #endif #include #include +#include #include #include #include @@ -61,6 +63,7 @@ #include #include #include +#include #include #include #include @@ -278,10 +281,8 @@ static void em_print_hw_stats(struct ada static void em_update_link_status(struct adapter *); static int em_get_buf(struct adapter *, int); -#ifdef EM_HW_VLAN_SUPPORT static void em_register_vlan(void *, struct ifnet *, u16); static void em_unregister_vlan(void *, struct ifnet *, u16); -#endif static int em_xmit(struct adapter *, struct mbuf **); static void em_smartspeed(struct adapter *); @@ -789,13 +790,11 @@ em_attach(device_t dev) else adapter->pcix_82544 = FALSE; -#ifdef EM_HW_VLAN_SUPPORT /* Register for VLAN events */ adapter->vlan_attach = EVENTHANDLER_REGISTER(vlan_config, em_register_vlan, 0, EVENTHANDLER_PRI_FIRST); adapter->vlan_detach = EVENTHANDLER_REGISTER(vlan_unconfig, em_unregister_vlan, 0, EVENTHANDLER_PRI_FIRST); -#endif /* Tell the stack that the interface is not active */ adapter->ifp->if_drv_flags &= ~(IFF_DRV_RUNNING | IFF_DRV_OACTIVE); @@ -879,13 +878,11 @@ em_detach(device_t dev) EM_TX_UNLOCK(adapter); EM_CORE_UNLOCK(adapter); -#ifdef EM_HW_VLAN_SUPPORT /* Unregister VLAN events */ if (adapter->vlan_attach != NULL) EVENTHANDLER_DEREGISTER(vlan_config, adapter->vlan_attach); if (adapter->vlan_detach != NULL) EVENTHANDLER_DEREGISTER(vlan_unconfig, adapter->vlan_detach); -#endif ether_ifdetach(adapter->ifp); callout_drain(&adapter->timer); @@ -894,6 +891,7 @@ em_detach(device_t dev) em_free_pci_resources(adapter); bus_generic_detach(dev); if_free(ifp); + drbr_free(adapter->br, M_DEVBUF); em_free_transmit_structures(adapter); em_free_receive_structures(adapter); @@ -989,6 +987,81 @@ em_resume(device_t dev) * the packet is requeued. **********************************************************************/ +#ifdef IFNET_MULTIQUEUE +static int +em_transmit_locked(struct ifnet *ifp, struct mbuf *m) +{ + struct adapter *adapter = ifp->if_softc; + int error; + + EM_TX_LOCK_ASSERT(adapter); + if (((ifp->if_drv_flags & (IFF_DRV_RUNNING|IFF_DRV_OACTIVE)) != + IFF_DRV_RUNNING) + || (!adapter->link_active)) { + error = drbr_enqueue(ifp, adapter->br, m); + return (error); + } + + if (buf_ring_empty(adapter->br) && + (adapter->num_tx_desc_avail > EM_TX_OP_THRESHOLD)) { + if (em_xmit(adapter, &m)) { + if (m && (error = drbr_enqueue(ifp, adapter->br, m)) != 0) { + return (error); + } + } else{ + /* Send a copy of the frame to the BPF listener */ + ETHER_BPF_MTAP(ifp, m); + } + } else if ((error = drbr_enqueue(ifp, adapter->br, m)) != 0) + return (error); + + if (!buf_ring_empty(adapter->br)) + em_start_locked(ifp); + + return (0); +} + +static void +em_start_locked(struct ifnet *ifp) +{ + struct adapter *adapter = ifp->if_softc; + struct mbuf *m_head; + + EM_TX_LOCK_ASSERT(adapter); + + if ((ifp->if_drv_flags & (IFF_DRV_RUNNING|IFF_DRV_OACTIVE)) != + IFF_DRV_RUNNING) + return; + if (!adapter->link_active) + return; + + while ((adapter->num_tx_desc_avail > EM_TX_OP_THRESHOLD) + && (!buf_ring_empty(adapter->br))) { + + m_head = buf_ring_dequeue_sc(adapter->br); + if (m_head == NULL) + break; + /* + * Encapsulation can modify our pointer, and or make it + * NULL on failure. In that event, we can't requeue. + */ + if (em_xmit(adapter, &m_head)) { + if (m_head == NULL) + break; + break; + } + + /* Send a copy of the frame to the BPF listener */ + ETHER_BPF_MTAP(ifp, m_head); + + /* Set timeout in case hardware has problems transmitting. */ + adapter->watchdog_timer = EM_TX_TIMEOUT; + } + if ((adapter->num_tx_desc_avail <= EM_TX_OP_THRESHOLD)) + ifp->if_drv_flags |= IFF_DRV_OACTIVE; + +} +#else static void em_start_locked(struct ifnet *ifp) { @@ -1027,6 +1100,7 @@ em_start_locked(struct ifnet *ifp) adapter->watchdog_timer = EM_TX_TIMEOUT; } } +#endif static void em_start(struct ifnet *ifp) @@ -1039,6 +1113,23 @@ em_start(struct ifnet *ifp) EM_TX_UNLOCK(adapter); } +static int +em_transmit(struct ifnet *ifp, struct mbuf *m) +{ + + struct adapter *adapter = ifp->if_softc; + int error = 0; + + if(EM_TX_TRYLOCK(adapter)) { + if (ifp->if_drv_flags & IFF_DRV_RUNNING) + error = em_transmit_locked(ifp, m); + EM_TX_UNLOCK(adapter); + } else + error = drbr_enqueue(ifp, adapter->br, m); + + return (error); +} + /********************************************************************* * Ioctl entry point * @@ -1053,7 +1144,9 @@ em_ioctl(struct ifnet *ifp, u_long comma { struct adapter *adapter = ifp->if_softc; struct ifreq *ifr = (struct ifreq *)data; +#ifdef INET struct ifaddr *ifa = (struct ifaddr *)data; +#endif int error = 0; if (adapter->in_detach) @@ -1061,6 +1154,7 @@ em_ioctl(struct ifnet *ifp, u_long comma switch (command) { case SIOCSIFADDR: +#ifdef INET if (ifa->ifa_addr->sa_family == AF_INET) { /* * XXX @@ -1077,6 +1171,7 @@ em_ioctl(struct ifnet *ifp, u_long comma } arp_ifinit(ifp, ifa); } else +#endif error = ether_ioctl(ifp, command, data); break; case SIOCSIFMTU: @@ -1464,14 +1559,16 @@ em_init_locked(struct adapter *adapter) /* Setup VLAN support, basic and offload if available */ E1000_WRITE_REG(&adapter->hw, E1000_VET, ETHERTYPE_VLAN); -#ifndef EM_HW_VLAN_SUPPORT - if (ifp->if_capenable & IFCAP_VLAN_HWTAGGING) { + /* New register interface replaces this but + waiting on kernel support to be added */ + if ((ifp->if_capenable & IFCAP_VLAN_HWTAGGING) && + ((ifp->if_capenable & IFCAP_VLAN_HWFILTER) == 0)) { u32 ctrl; ctrl = E1000_READ_REG(&adapter->hw, E1000_CTRL); ctrl |= E1000_CTRL_VME; E1000_WRITE_REG(&adapter->hw, E1000_CTRL, ctrl); } -#endif + /* Set hardware offload abilities */ ifp->if_hwassist = 0; if (adapter->hw.mac.type >= e1000_82543) { @@ -1596,7 +1693,11 @@ em_poll(struct ifnet *ifp, enum poll_cmd EM_TX_LOCK(adapter); em_txeof(adapter); +#ifdef IFNET_MULTIQUEUE + if (!buf_ring_empty(adapter->br)) +#else if (!IFQ_DRV_IS_EMPTY(&ifp->if_snd)) +#endif em_start_locked(ifp); EM_TX_UNLOCK(adapter); } @@ -1664,8 +1765,15 @@ em_intr(void *arg) } EM_CORE_UNLOCK(adapter); + if (ifp->if_drv_flags & IFF_DRV_RUNNING && - !IFQ_DRV_IS_EMPTY(&ifp->if_snd)) +#ifdef IFNET_MULTIQUEUE + !buf_ring_empty(adapter->br) +#else + !IFQ_DRV_IS_EMPTY(&ifp->if_snd) +#endif + ) + em_start(ifp); } @@ -1704,7 +1812,11 @@ em_handle_rxtx(void *context, int pendin EM_TX_LOCK(adapter); em_txeof(adapter); +#ifdef IFNET_MULTIQUEUE + if (!buf_ring_empty(adapter->br)) +#else if (!IFQ_DRV_IS_EMPTY(&ifp->if_snd)) +#endif em_start_locked(ifp); EM_TX_UNLOCK(adapter); } @@ -1731,9 +1843,19 @@ em_handle_tx(void *context, int pending) struct ifnet *ifp = adapter->ifp; if (ifp->if_drv_flags & IFF_DRV_RUNNING) { +#ifdef IFNET_MULTIQUEUE + if (!EM_TX_TRYLOCK(adapter)) + return; +#else EM_TX_LOCK(adapter); +#endif + em_txeof(adapter); +#ifdef IFNET_MULTIQUEUE + if (!buf_ring_empty(adapter->br)) +#else if (!IFQ_DRV_IS_EMPTY(&ifp->if_snd)) +#endif em_start_locked(ifp); EM_TX_UNLOCK(adapter); } @@ -2082,22 +2204,14 @@ em_xmit(struct adapter *adapter, struct error = bus_dmamap_load_mbuf_sg(adapter->txtag, map, *m_headp, segs, &nsegs, BUS_DMA_NOWAIT); - if (error == ENOMEM) { - adapter->no_tx_dma_setup++; - return (error); - } else if (error != 0) { + if (error) { adapter->no_tx_dma_setup++; m_freem(*m_headp); *m_headp = NULL; return (error); } - } else if (error == ENOMEM) { - adapter->no_tx_dma_setup++; - return (error); } else if (error != 0) { adapter->no_tx_dma_setup++; - m_freem(*m_headp); - *m_headp = NULL; return (error); } @@ -2530,7 +2644,8 @@ em_local_timer(void *arg) struct ifnet *ifp = adapter->ifp; EM_CORE_LOCK_ASSERT(adapter); - + taskqueue_enqueue(adapter->tq, + &adapter->rxtx_task); em_update_link_status(adapter); em_update_stats_counters(adapter); @@ -3124,7 +3239,11 @@ em_setup_interface(device_t dev, struct ether_ifattach(ifp, adapter->hw.mac.addr); ifp->if_capabilities = ifp->if_capenable = 0; - +#ifdef IFNET_MULTIQUEUE + ifp->if_transmit = em_transmit; + adapter->br = buf_ring_alloc(2048, M_DEVBUF, M_WAITOK, &adapter->tx_mtx); +#endif + if (adapter->hw.mac.type >= e1000_82543) { int version_cap; #if __FreeBSD_version < 700000 @@ -4644,8 +4763,6 @@ em_receive_checksum(struct adapter *adap } } - -#ifdef EM_HW_VLAN_SUPPORT /* * This routine is run via an vlan * config EVENT @@ -4706,7 +4823,6 @@ em_unregister_vlan(void *unused, struct adapter->max_frame_size); } } -#endif /* EM_HW_VLAN_SUPPORT */ static void em_enable_intr(struct adapter *adapter) Modified: user/kmacy/releng_7_net_backport/sys/dev/e1000/if_em.h ============================================================================== --- user/kmacy/releng_7_net_backport/sys/dev/e1000/if_em.h Thu Mar 12 04:44:09 2009 (r189721) +++ user/kmacy/releng_7_net_backport/sys/dev/e1000/if_em.h Thu Mar 12 06:24:00 2009 (r189722) @@ -36,6 +36,7 @@ #ifndef _EM_H_DEFINED_ #define _EM_H_DEFINED_ +#define IFNET_MULTIQUEUE /* Tunables */ /* @@ -142,7 +143,7 @@ * This parameter controls when the driver calls the routine to reclaim * transmit descriptors. */ -#define EM_TX_CLEANUP_THRESHOLD (adapter->num_tx_desc / 8) +#define EM_TX_CLEANUP_THRESHOLD (adapter->num_tx_desc / 4) #define EM_TX_OP_THRESHOLD (adapter->num_tx_desc / 32) /* @@ -301,6 +302,9 @@ struct em_dma_alloc { /* Our adapter structure */ struct adapter { struct ifnet *ifp; +#ifdef IFNET_MULTIQUEUE + struct buf_ring *br; +#endif struct e1000_hw hw; /* FreeBSD operating-system-specific structures. */ @@ -339,10 +343,8 @@ struct adapter { struct task tx_task; struct taskqueue *tq; /* private task queue */ -#ifdef EM_HW_VLAN_SUPPORT eventhandler_tag vlan_attach; eventhandler_tag vlan_detach; -#endif /* Management and WOL features */ int wol; @@ -484,6 +486,7 @@ typedef struct _DESCRIPTOR_PAIR #define EM_RX_LOCK_DESTROY(_sc) mtx_destroy(&(_sc)->rx_mtx) #define EM_CORE_LOCK(_sc) mtx_lock(&(_sc)->core_mtx) #define EM_TX_LOCK(_sc) mtx_lock(&(_sc)->tx_mtx) +#define EM_TX_TRYLOCK(_sc) mtx_trylock(&(_sc)->tx_mtx) #define EM_RX_LOCK(_sc) mtx_lock(&(_sc)->rx_mtx) #define EM_CORE_UNLOCK(_sc) mtx_unlock(&(_sc)->core_mtx) #define EM_TX_UNLOCK(_sc) mtx_unlock(&(_sc)->tx_mtx) Modified: user/kmacy/releng_7_net_backport/sys/dev/e1000/if_igb.c ============================================================================== --- user/kmacy/releng_7_net_backport/sys/dev/e1000/if_igb.c Thu Mar 12 04:44:09 2009 (r189721) +++ user/kmacy/releng_7_net_backport/sys/dev/e1000/if_igb.c Thu Mar 12 06:24:00 2009 (r189722) @@ -63,6 +63,7 @@ #include #include #include +#include #include #include #include @@ -192,10 +193,8 @@ static void igb_print_hw_stats(struct ad static void igb_update_link_status(struct adapter *); static int igb_get_buf(struct rx_ring *, int); -#ifdef IGB_HW_VLAN_SUPPORT static void igb_register_vlan(void *, struct ifnet *, u16); static void igb_unregister_vlan(void *, struct ifnet *, u16); -#endif static int igb_xmit(struct tx_ring *, struct mbuf **); static int igb_dma_malloc(struct adapter *, bus_size_t, @@ -281,7 +280,7 @@ TUNABLE_INT("hw.igb.enable_aim", &igb_en static int igb_low_latency = IGB_LOW_LATENCY; TUNABLE_INT("hw.igb.low_latency", &igb_low_latency); static int igb_ave_latency = IGB_AVE_LATENCY; -TUNABLE_INT("hw.igb.ave_latency", &igb_ave_latency); +TUNABLE_INT("hw.igb.ave_latency", &igb_low_latency); static int igb_bulk_latency = IGB_BULK_LATENCY; TUNABLE_INT("hw.igb.bulk_latency", &igb_bulk_latency); @@ -572,13 +571,11 @@ igb_attach(device_t dev) if (eeprom_data) adapter->wol = E1000_WUFC_MAG; -#ifdef IGB_HW_VLAN_SUPPORT /* Register for VLAN events */ adapter->vlan_attach = EVENTHANDLER_REGISTER(vlan_config, igb_register_vlan, 0, EVENTHANDLER_PRI_FIRST); adapter->vlan_detach = EVENTHANDLER_REGISTER(vlan_unconfig, igb_unregister_vlan, 0, EVENTHANDLER_PRI_FIRST); -#endif /* Tell the stack that the interface is not active */ adapter->ifp->if_drv_flags &= ~(IFF_DRV_RUNNING | IFF_DRV_OACTIVE); @@ -639,13 +636,11 @@ igb_detach(device_t dev) igb_enable_wakeup(dev); } -#ifdef IGB_HW_VLAN_SUPPORT /* Unregister VLAN events */ if (adapter->vlan_attach != NULL) EVENTHANDLER_DEREGISTER(vlan_config, adapter->vlan_attach); if (adapter->vlan_detach != NULL) EVENTHANDLER_DEREGISTER(vlan_unconfig, adapter->vlan_detach); -#endif ether_ifdetach(adapter->ifp); @@ -809,7 +804,9 @@ igb_ioctl(struct ifnet *ifp, u_long comm { struct adapter *adapter = ifp->if_softc; struct ifreq *ifr = (struct ifreq *)data; +#ifdef INET struct ifaddr *ifa = (struct ifaddr *)data; +#endif int error = 0; if (adapter->in_detach) @@ -817,6 +814,7 @@ igb_ioctl(struct ifnet *ifp, u_long comm switch (command) { case SIOCSIFADDR: +#ifdef INET if (ifa->ifa_addr->sa_family == AF_INET) { /* * XXX @@ -833,6 +831,7 @@ igb_ioctl(struct ifnet *ifp, u_long comm } arp_ifinit(ifp, ifa); } else +#endif error = ether_ioctl(ifp, command, data); break; case SIOCSIFMTU: @@ -921,12 +920,10 @@ igb_ioctl(struct ifnet *ifp, u_long comm ifp->if_capenable ^= IFCAP_VLAN_HWTAGGING; reinit = 1; } -#ifdef IGB_HW_VLAN_SUPPORT if (mask & IFCAP_VLAN_HWFILTER) { ifp->if_capenable ^= IFCAP_VLAN_HWFILTER; reinit = 1; } -#endif if (reinit && (ifp->if_drv_flags & IFF_DRV_RUNNING)) igb_init(adapter); VLAN_CAPABILITIES(ifp); @@ -1128,15 +1125,14 @@ igb_init_locked(struct adapter *adapter) E1000_WRITE_REG(&adapter->hw, E1000_VET, ETHERTYPE_VLAN); -#ifndef IGB_HW_VLAN_SUPPORT /* Vlan's enabled but HW Filtering off */ - if (ifp->if_capenable & IFCAP_VLAN_HWTAGGING) { + if ((ifp->if_capenable & IFCAP_VLAN_HWTAGGING) && + ((ifp->if_capenable & IFCAP_VLAN_HWFILTER) == 0)) { u32 ctrl; ctrl = E1000_READ_REG(&adapter->hw, E1000_CTRL); ctrl |= E1000_CTRL_VME; E1000_WRITE_REG(&adapter->hw, E1000_CTRL, ctrl); } -#endif /* Set hardware offload abilities */ ifp->if_hwassist = 0; @@ -2499,16 +2495,11 @@ igb_setup_interface(device_t dev, struct * Tell the upper layer(s) what we support. */ ifp->if_data.ifi_hdrlen = sizeof(struct ether_vlan_header); - ifp->if_capabilities |= IFCAP_VLAN_HWTAGGING; + ifp->if_capabilities |= IFCAP_VLAN_HWTAGGING | IFCAP_VLAN_HWFILTER; ifp->if_capabilities |= IFCAP_VLAN_MTU; - ifp->if_capenable |= IFCAP_VLAN_HWTAGGING; + ifp->if_capenable |= IFCAP_VLAN_HWTAGGING | IFCAP_VLAN_HWFILTER; ifp->if_capenable |= IFCAP_VLAN_MTU; -#ifdef IGB_HW_VLAN_SUPPORT - ifp->if_capabilities |= IFCAP_VLAN_HWFILTER; - ifp->if_capenable |= IFCAP_VLAN_HWFILTER; -#endif - /* * Specify the media types supported by this adapter and register * callbacks to update media and link information @@ -4071,7 +4062,6 @@ igb_rx_checksum(u32 staterr, struct mbuf return; } -#ifdef IGB_HW_VLAN_SUPPORT /* * This routine is run via an vlan * config EVENT @@ -4140,7 +4130,6 @@ igb_unregister_vlan(void *unused, struct adapter->max_frame_size); } } -#endif /* IGB_HW_VLAN_SUPPORT */ static void igb_enable_intr(struct adapter *adapter) Modified: user/kmacy/releng_7_net_backport/sys/dev/e1000/if_igb.h ============================================================================== --- user/kmacy/releng_7_net_backport/sys/dev/e1000/if_igb.h Thu Mar 12 04:44:09 2009 (r189721) +++ user/kmacy/releng_7_net_backport/sys/dev/e1000/if_igb.h Thu Mar 12 06:24:00 2009 (r189722) @@ -378,12 +378,8 @@ struct adapter { struct task link_task; struct task rxtx_task; struct taskqueue *tq; /* private task queue */ - -#ifdef IGB_HW_VLAN_SUPPORT eventhandler_tag vlan_attach; eventhandler_tag vlan_detach; -#endif - /* Management and WOL features */ int wol; int has_manage; Modified: user/kmacy/releng_7_net_backport/sys/dev/firewire/firewirereg.h ============================================================================== --- user/kmacy/releng_7_net_backport/sys/dev/firewire/firewirereg.h Thu Mar 12 04:44:09 2009 (r189721) +++ user/kmacy/releng_7_net_backport/sys/dev/firewire/firewirereg.h Thu Mar 12 06:24:00 2009 (r189722) @@ -47,6 +47,7 @@ typedef struct proc fw_proc; #endif #include +#include #include #include Modified: user/kmacy/releng_7_net_backport/sys/dev/mxge/eth_z8e.h ============================================================================== --- user/kmacy/releng_7_net_backport/sys/dev/mxge/eth_z8e.h Thu Mar 12 04:44:09 2009 (r189721) +++ user/kmacy/releng_7_net_backport/sys/dev/mxge/eth_z8e.h Thu Mar 12 06:24:00 2009 (r189722) @@ -1,6 +1,6 @@ /******************************************************************************* -Copyright (c) 2006-2009, Myricom Inc. +Copyright (c) 2006-2008, Myricom Inc. All rights reserved. Redistribution and use in source and binary forms, with or without @@ -28,6951 +28,7074 @@ POSSIBILITY OF SUCH DAMAGE. $FreeBSD$ ***************************************************************************/ -static unsigned int eth_z8e_uncompressed_length = 357812 ; -static unsigned int eth_z8e_length = 111096 ; -static unsigned char eth_z8e[111096 + 1] = - "\x78\x9c\xec\xbd\x7f\x78\x54\xd5\xb5\x37\xbe\x72\x32\xc0\x24\x0d" - "\xcc\x88\x29\x1d\x11\x75\x50\xb4\xd1\xf2\x23\x2a\xb6\x68\x41\xa3" - "\x80\xc5\x5e\x7e\xa4\x8a\x6d\xaa\x68\x82\x26\x34\x68\x84\x08\x11" - "\x07\x08\x99\x61\xc0\x36\x41\x20\x51\x02\x44\x08\x49\x6c\x43\x8b" - "\x14\x24\x56\xda\xd2\xb7\x56\xa7\x25\xbe\x0f\xbd\x0d\x19\x6e\xbf" - "\xd0\x37\x57\xf1\x76\xe4\x46\x9a\x72\x13\x18\xc9\x40\xc6\x64\x66" - "\xf6\xfb\x59\x7b\x9f\x93\xcc\x0c\x13\x94\xdb\xfb\x7c\xdf\x7f\x9a" - "\xe7\x99\x9c\x73\xf6\x8f\xb5\xd7\x5e\x7b\xed\xb5\xd7\xda\x3f\xd6" - "\x26\xfa\x07\xfe\xb4\xbd\xbe\x7f\x24\xfb\x3f\xff\xfe\xf9\xf7\xcf" - "\xbf\x7f\xfe\xfd\xf3\xef\x9f\x7f\xff\xfc\xfb\x7f\xf3\x77\x5e\x33" - "\xd1\x1f\xaa\x88\x7a\xdc\x66\x9b\x8f\xba\xde\xd9\xbe\x45\x84\x10" - "\x9c\xe4\x23\xb3\x8d\x9f\xfa\x8f\x5e\x45\xb8\x56\x45\xe6\x1b\xad" - "\x94\x36\x7d\x17\x51\xf5\x28\xd1\xb9\x65\x9b\xf0\xaf\xdb\x26\x3a" - "\x67\xec\x26\x6a\x1e\x47\xb4\x65\x94\x08\x00\xce\x02\x1f\x7d\x7f" - "\x1c\xc3\x59\x87\x6f\x8e\x5f\x3f\x4a\xf8\x11\x5e\x82\xf0\x5a\x0e" - "\x5f\x3b\x0a\xb0\xd2\x89\xdc\xdb\x44\x30\x0a\xae\x99\xf3\x33\xcc" - "\x19\x63\x25\x3e\x8d\x71\x70\x18\xc6\x21\x1f\x3d\x96\x7e\x19\x18" - "\x69\x06\x5e\x01\x8d\x92\x18\x5e\xb7\x9b\x6c\x01\xb7\xe7\xcb\xc8" - "\x1b\x40\x9d\x32\x38\x6f\x25\xd2\x08\x37\x25\x37\x3b\x42\x64\xbf" - "\x91\x92\x4e\x53\xca\xdf\xf1\xd4\xf0\xfc\x88\xeb\xbb\x4e\xe5\x1b" - "\xc7\x30\x90\x37\xa9\xc7\x9d\x92\xd9\x9f\x17\xb0\xed\x65\x64\x42" - "\xda\xb7\x02\x9a\x47\x53\x69\xad\x29\x7a\x5a\x0d\x69\x17\x18\x69" - "\x55\x9c\xf6\x90\x1e\xf7\x25\xc4\x39\x62\xe3\x4c\xaf\xea\x71\x69" - "\x88\xab\x8e\xc3\xcf\xe4\xed\x0d\x11\xca\x61\x5c\xec\x3e\x3c\x0f" - "\xa3\x65\x74\xdc\x18\xa7\x66\xa4\x77\x71\xfa\x19\x76\x11\x9a\x6f" - "\x27\x89\x0b\xd3\x0e\x69\x67\x1d\x6e\x50\x69\xf1\x3e\x86\xf3\xeb" - "\xef\x76\xbc\xcb\x70\xbd\xdc\xab\x7a\xdc\xa9\x69\xb1\x38\x11\xe9" - "\x71\x23\x11\x97\x11\x1b\xf7\x6e\xa6\x1e\xf7\x15\xc4\xcd\x88\x8d" - "\x4b\x32\xf2\xd9\x10\x97\x67\xc4\x45\xb7\x93\xe2\x38\x13\x7e\x43" - "\xcc\x44\x43\xf1\x1b\x66\x36\xda\x6e\xb9\x4d\x44\x9c\xd7\x90\x49" - "\x6c\xd8\xd2\x11\x71\x0b\xf2\x3a\x82\x64\x1f\x4d\xce\x53\x94\x7a" - "\x0c\x70\x69\xf3\x2a\x32\x3b\x8b\x45\xd0\xeb\xe8\xa4\x56\x7f\x27" - "\x39\xfd\xa2\xc3\x1b\xba\x40\x65\x17\xc8\xec\x0d\x75\x51\xd9\xf3" - "\x64\x6b\x2e\xfd\x84\x12\xf1\x45\x44\x13\xe4\x1c\xc3\x79\xdb\xa9" - "\xb5\xb6\x9d\x9c\xb5\xb1\x79\x9d\xd7\x91\xed\x28\xbe\x41\x73\x0b" - "\xe3\xd1\x6c\x0f\x51\x28\x75\x4b\x47\xe9\x6b\x64\x72\x8e\x25\xed" - "\x68\xbe\x47\xc7\xe5\x4b\x35\x8c\xcb\xfa\x33\x64\xfe\xc9\x22\xb4" - "\xfd\x19\xc6\x77\x67\xc7\x81\x55\x41\xed\xb0\x6d\x36\x1d\xb6\x9d" - "\xa4\x66\xdb\x34\x6a\x76\xcc\xa0\xcd\x67\x28\xed\x70\x70\x2a\x35" - "\x9b\x1e\x44\xdf\x98\x41\xde\x4e\xbc\xdb\xc3\x48\x13\x20\xfb\x0a" - "\x42\xbb\x7e\xa9\xbc\xfa\x19\x32\xfb\x14\x4c\xb4\xe7\x97\xaa\x7f" - "\x5f\x42\xc4\x34\xe3\xef\x44\xf5\x58\x7e\x0d\xd9\x80\x5f\x07\x70" - "\xb9\x1b\xb8\x1c\x1d\x67\xa3\x4c\xe0\x3c\xcc\x5b\x13\x22\x53\x29" - "\xa5\x0c\xd2\x27\xd2\x23\x6e\xd9\x37\x3b\xeb\xb6\x89\x0e\xe6\xad" - "\xee\xd5\x39\xe8\x5f\x69\x26\x94\xdd\xc8\xe5\x6d\x46\x1f\x75\xbe" - "\x4e\xa6\xee\x17\x73\x92\xea\xb7\x89\x76\xc4\xd9\x8d\x38\xf0\x7b" - "\x3b\xe2\x3b\x26\xa5\x93\xd5\x1b\xca\xa2\xf7\x7a\x3b\x4c\x0c\x63" - "\x44\x80\x92\x18\x9e\xc5\x41\xc9\xa8\xcf\x10\xe0\xf3\x69\x3d\xc2" - "\x6f\x42\x3a\xe4\x47\xfb\x57\x04\x38\xbf\xf8\xca\xe3\x9f\x46\xbe" - "\xf2\xb8\x3f\xb2\xfd\xf1\xf3\x62\xfb\xe3\xdd\xe1\xed\x8f\x07\x9c" - "\x2b\xc9\x1c\xfe\xca\xe3\x17\x5a\x8b\x65\x1b\x58\x5b\x8b\xd1\x06" - "\x61\x32\xaf\xe9\x22\xeb\x93\xcf\xa3\xed\x43\x1f\xd1\x9a\xc5\x64" - "\x8b\xa4\xec\x68\xf0\x86\x4e\xd0\x93\xa5\x24\xf0\xde\x94\xa8\x7e" - "\xdd\xa9\xb5\x19\x8a\x67\xcd\x5c\xa7\x36\x9f\xf6\xaa\x8f\xcb\xf5" - "\xa7\x34\x66\xe0\x37\x1e\xbf\x4c\xfc\x26\x8b\xd4\xda\xc9\xa0\x95" - "\x73\xc4\xda\x24\xaa\xeb\x25\x9a\x14\xa1\x24\x34\x51\x00\xf8\x5b" - "\x07\xa1\xdb\x98\xc8\x86\x37\x9b\xbe\xea\xa2\xb2\x9e\x9e\x42\x62" - "\x99\xc2\xf2\x84\xe5\x4b\x8f\x7b\x78\x96\x4f\xdb\x62\x97\xbc\xbf" - "\x4d\x04\x44\xea\x9b\x4d\x08\xef\x08\xac\x2e\x4c\xf2\xaf\x2e\xd4" - "\xba\x53\xdf\x7c\x1b\x69\xf2\x91\x26\x47\xa7\x61\x07\xc3\x42\x3f" - "\xf1\x0f\x0f\x51\x32\x60\x16\xff\xfa\x62\x9b\x69\xd7\x36\x71\x12" - "\xe9\x36\xf6\xc3\x02\x6c\xc0\x01\xfd\x87\x37\x18\x61\xa0\x75\xfb" - "\x26\xa4\xe3\xfc\xde\x60\x16\xcb\x5d\x9f\xb7\xa8\x83\x2c\x21\x4a" - "\x15\x7d\xaa\x3c\xa4\xe9\x60\xf9\x38\x3c\x48\x43\x7b\xdc\x94\xcd" - "\xb0\x39\x9f\xb7\xb3\x83\x90\xef\x6d\xe1\x2c\x84\x5c\xa2\xb9\x3d" - "\xa2\x30\x09\xb2\xb8\xfd\x30\xf2\xab\xb2\x47\x98\x0d\x1c\xb9\x0c" - "\x6e\x6b\x89\x27\xf8\xe1\x70\x51\x90\x86\xd7\x50\x32\xf2\x3d\xc2" - "\xf0\x18\x16\xf8\xc0\x87\xba\xbe\x7d\xb8\xc8\x4f\x11\x11\x03\xd3" - "\xa7\xc3\xcb\x89\x81\x87\x70\x01\x78\xcc\x7f\xcd\xc8\x33\xbc\x41" - "\xc2\x7b\xf8\xd7\x11\x86\x17\x24\x93\x5d\xe2\xfb\x5d\x86\xd1\xc3" - "\x32\x0d\x30\x3d\x2b\x1e\xa0\x4e\x1a\xe1\xf1\x3b\x0b\x93\x5b\x4b" - "\x89\x38\xff\x81\xb2\x8e\x21\xa2\x3b\x27\x99\x79\x8e\xe3\xbd\xa1" - "\xf3\x9c\xe6\x75\xd1\x5d\x98\x3c\xbc\x93\x4c\x8c\x33\xf2\x3b\x18" - "\xcf\xe8\xb6\x7c\x78\xe6\x77\xa7\xd1\x9c\xfb\xa7\x4f\xa3\xec\xef" - "\x3d\x8c\x7f\x73\xa7\xd1\x23\xf8\x65\xde\x3d\x21\xf3\xce\x6f\x4c" - "\xb9\x93\x72\x1e\x7c\x08\xa1\xd3\xa7\xdd\x9e\xf9\xad\x09\xd9\xd3" - "\x1f\x9a\x49\xdf\x99\x7f\x47\xe6\x1d\x77\xd0\xfd\x33\x67\xdf\x9e" - "\x99\xa9\x3f\x6f\xcf\xe4\x24\x8f\x4d\x99\xf9\xc8\x84\xec\x65\x4b" - "\x4b\x96\x4e\x98\xfb\xd0\xf4\xd8\xf1\xd0\x16\x59\x11\xa1\x3a\xf0" - "\x86\xe8\x9e\x45\x02\xf2\x01\xfd\xc0\xcf\x7d\xc1\x53\x76\x1e\xfd" - "\xdc\x7a\x73\x3d\xb7\x8f\x94\x91\x23\x4e\xa2\x6f\x9b\x7a\xdc\x16" - "\x17\xe8\x54\xc3\x74\xc2\xb8\x83\x34\xe9\xaf\x21\xee\x63\x5d\x2e" - "\x73\x7c\x43\x5c\xfc\x1a\xc4\x9f\x8e\x8a\xf7\xc4\xc5\x2f\x44\xfc" - "\x7f\xe9\xf1\xa0\xb1\xc5\x17\x1b\x7f\x15\xe4\xfe\x88\x73\x9b\x11" - "\x3f\xa2\x98\x92\x81\xab\x7f\x9d\x1c\xab\xad\xe6\x7e\x3e\x03\x1f" - "\x37\x97\x66\x91\xf8\xc9\xac\x24\xb4\x4b\x12\xc6\x38\xe4\xb3\x14" - "\x82\xdf\x02\x91\xd4\xc6\x29\xa0\x3f\xa9\x30\xeb\x7c\xc1\xdf\x1b" - "\x1a\xef\x16\x4e\x84\xad\x92\x61\x8f\x72\x18\xda\x20\xb9\xa7\xbb" - "\x90\xc4\x6a\x19\x9e\x8c\xf0\x3f\xd6\x33\x0f\x70\xfa\x3e\x99\x7f" - "\x18\xc2\xde\xc0\xf7\xdd\x80\x79\x8f\x0e\x13\xe3\x6e\xfa\x21\xc0" - "\xfb\x66\x44\xe4\x90\x30\x9f\x6b\xc3\xfb\x54\xcf\xaa\x4e\x3a\x5d" - "\x4c\x9a\x0f\x71\x11\x27\x60\xf6\xf5\x97\xef\xe0\xbc\x28\xcb\xd4" - "\xd3\x57\x88\xb1\xce\x5a\xca\x63\x36\xc2\xee\x8e\xc2\xb1\x90\xcb" - "\xe4\xfe\x86\x7a\x77\x83\x26\x29\xa8\x6b\x20\x8e\x26\x56\xce\x53" - "\x29\x79\xba\xf1\x6e\xc0\xc9\x47\x7f\x82\x0c\x21\x8d\xeb\xe0\x1b" - "\x80\xa1\xd3\xf4\xaa\xc9\x71\xf9\xb3\x01\x9b\xfb\x27\xcb\x90\x64" - "\x1f\x59\x82\x46\x3b\xab\x36\xba\x2a\x3f\x36\xfd\xc8\xf1\xdd\x6e" - "\x4b\x12\xd3\x19\xcf\xe1\x48\x33\x0c\x7d\xd8\xc4\xf2\xf6\x70\x29" - "\xeb\x3b\x57\x55\xc7\xc1\x3f\x88\x74\xe9\x8c\xe3\x00\x4e\x96\xa0" - "\xae\x9f\xb4\x23\xbf\x19\x79\x8e\xc4\xe5\xe9\x40\x9e\x31\x42\xe5" - "\x49\x56\xf4\xb9\x24\x4f\x28\x0e\xaf\x31\x92\x76\x1b\x64\x1e\x13" - "\xfa\x60\x7f\x1e\xd9\x27\x63\xcb\xe5\xba\x41\x8f\x19\x99\x15\xc7" - "\x7f\xd0\x31\x2c\xe3\x98\x16\xa2\x6f\xd6\x97\xd0\x06\x77\x20\x6c" - "\x38\xf0\x98\xc6\xed\xc6\x7c\xe7\xf5\x07\x21\x33\x66\xa5\xa9\xb1" - "\x6f\xe4\xeb\x96\x52\xe2\xf7\x09\xfc\xce\xb0\x45\xdf\x6c\x9d\xe7" - "\x46\xbe\x8e\x27\x87\x97\x73\x38\x68\x8b\xb8\x7f\x89\x28\x98\x23" - "\xdf\x87\x2c\xd1\xf0\x1d\xd6\xcb\x18\x82\xef\x24\xe0\x7e\x0f\xe4" - "\x11\x78\x64\x16\xb7\xff\xe4\xd3\x74\xb5\x1e\x7f\xf5\x05\x4e\x8f" - "\xf7\xdb\xf5\xf7\xa4\x58\xbe\xbb\xba\x4b\x96\x2d\x79\x4f\xe5\x8f" - "\x28\x3e\x9b\x8e\xb8\x7f\xc7\xf3\x21\x3c\xdf\xc7\xf3\x3b\x78\xbe" - "\xee\xbc\x40\x36\x67\x18\xe3\xaf\xfa\xde\x84\xe7\xc3\x78\xae\xc4" - "\xf3\x11\x3c\x0b\x98\x5f\x20\x8f\x89\xdb\x18\x6d\xab\x78\x02\xb2" - "\x34\xa2\xfa\xc6\x30\x45\xcb\xab\xe7\xeb\x65\xaa\xfe\x22\xa2\xc2" - "\x54\x3a\x4d\xb5\x9b\x1e\xd6\x37\x8b\xe9\x92\x0d\xf8\x99\x5c\xbe" - "\x0e\x6b\x48\x02\x58\xa6\x04\xb0\x92\xa2\x61\xe1\x69\x2a\x0b\x08" - "\xe1\xa3\x91\x7e\xa6\x2b\xbe\x03\xa0\x09\xf4\x80\x91\xcd\x4c\xa7" - "\x81\xf4\x23\xf3\xa2\xda\x1b\x7a\x60\x7a\x66\x6c\x7b\x5b\x82\x4c" - "\xb3\x4a\x5d\x36\x30\xff\x4b\xbc\x85\xec\x3f\x43\x0d\x9e\x61\x19" - "\xc8\xb4\x48\x2e\xe5\xfe\x90\x0e\xfd\xff\x27\x7e\x86\xc1\x71\x81" - "\x94\x03\x99\x9c\x3f\xd9\x21\xe3\xaa\xa0\x6f\xb4\x19\x71\x5c\x76" - "\x54\xbe\x7d\x46\xbe\x48\x6a\xb5\x55\xe6\x5d\x5e\x98\xcc\x63\x25" - "\x8f\x79\x18\x7b\x3a\x90\xe6\x98\x8f\x86\x5b\x07\xb3\x0b\xfa\xb4" - "\xf4\xdf\x43\xaf\x3c\xdf\xe7\xcc\x20\x51\x5e\x4d\x13\x88\xb4\xf1" - "\x2e\x4a\xf1\x86\x8e\xd3\xbc\x90\x08\xe3\xd7\x97\xe1\xa2\xab\xbc" - "\xa1\x16\xfa\x2a\xd1\x58\x6f\x68\x23\xc6\x98\x12\x8e\x7b\xef\x26" - "\x4a\x4a\xc2\xd3\x79\x1b\x69\x49\xde\xd0\x64\x84\x37\xd2\x4d\x2e" - "\x53\xd2\x83\x2f\x89\x1e\x6f\x68\x2a\xbe\x8b\x68\xc6\x4b\xe2\xaf" - "\xb9\x61\xb2\xce\x1e\x22\x9c\xde\xd0\x6c\x7a\x70\x48\x44\x78\x43" - "\xcd\x88\xcb\xa7\x79\xe1\xcf\xc4\xbc\x70\x8f\x10\xe6\x6a\xeb\xbc" - "\xf0\x39\xbc\xff\x55\x80\xd6\x78\xbe\x27\x58\x97\x9d\x17\x76\x0a" - "\x51\x51\x4d\xb9\x2b\x35\xea\xc3\x38\x29\x52\xaa\xad\x62\x43\xb5" - "\xbd\x4f\x14\x26\x8b\xd4\xea\x1b\xfa\xfa\xf0\xdc\x50\x7d\xbd\xfc" - "\x2e\xaf\xce\x04\x1c\xfb\x04\x17\x74\x3e\xe0\x1e\x81\x9c\xf1\x86" - "\x4e\xa2\x9c\x4f\x68\xde\x4a\xbf\x60\xfc\x47\xac\x15\x78\x7f\x4f" - "\x60\xac\xb4\xcc\x5b\xe9\x14\xb9\x21\x32\x03\xa6\xdd\x1b\xea\x24" - "\x94\x93\x09\x98\x13\x24\xcc\xf2\xea\x6c\xa4\xf5\x73\x3a\x86\x65" - "\xc0\x61\x18\x9c\x76\x5e\x98\x2c\x48\x9f\xdd\x57\x51\x9d\x85\x5f" - "\x1e\x7e\x55\xc8\xfb\xe3\xbe\xd5\x92\x86\x4d\x78\xf7\x7c\x06\x7e" - "\x91\x34\x0c\xd3\x30\xa4\xe5\x31\x78\x46\x8f\xc2\xd7\x27\xf1\xdd" - "\x50\xfd\xd7\xcf\x54\x3d\xfe\x43\xaf\xc7\x47\x1c\x0e\x9e\x1a\x22" - "\x36\x6c\xa5\x80\x53\xc6\x09\xe4\x9b\x2f\xf3\x95\x6f\x85\xfc\xdf" - "\x6a\x05\x7d\x92\xe7\x85\x85\x8b\x69\x08\xba\xba\x98\x8e\x4c\x2b" - "\x51\x81\xf8\x94\xad\xa0\xcf\xd6\x3b\xfa\x2a\xb6\x82\x46\xc0\x25" - "\x75\x6b\xd6\x67\x12\xf6\xd6\xfb\x00\x67\x41\x0f\x97\x67\xde\x9a" - "\x05\x58\xd9\x9f\x69\x76\xd0\x42\x04\xe7\x85\xd6\x86\x72\x57\x52" - "\x72\x06\xb9\x80\xef\x56\xc0\x2a\x42\x1d\xd7\xe3\x39\x1b\xf1\x74" - "\x35\xca\x7a\x0f\x70\xb3\xb8\x3c\x94\x91\x0d\x98\x73\x00\x2b\x9f" - "\x71\xea\x75\x93\x15\xdf\x79\xbd\x0a\x3f\x57\xa4\x7c\x6b\x43\xc4" - "\xbc\xb5\x2a\x9a\x77\x14\xcd\x98\x67\xf6\x73\x98\xd5\xe0\x93\x70" - "\xf9\xd6\xe2\xaf\x11\x59\xe7\x06\x44\x88\x79\x65\x12\x15\x27\xb5" - "\x06\x5a\x28\x37\x64\xa6\xd6\xe2\x83\x74\x1b\xb1\xfd\x11\xa0\xd6" - "\xc0\x46\x7c\xef\xc2\xb3\x84\x8e\x76\x36\x12\xe3\x38\xb7\x38\xb0" - "\x36\x6c\xde\xea\x3f\xda\x39\x93\x90\xff\x3d\xe0\x18\x79\xb2\xd8" - "\xe4\x6a\x2d\x0e\xf0\xb7\xf3\x68\x27\xf8\x33\x2c\xc2\xa1\xf2\xad" - "\x79\x21\xf3\x36\x9a\x7b\x41\xf8\xe7\x74\xba\x86\x20\xac\xcf\x92" - "\x24\x42\x16\x87\x53\x1c\xed\x5c\x4f\x4f\x5e\xa0\xa4\xa3\x85\x07" - "\x25\x9f\x3e\x59\x5c\x4c\x32\xff\x85\x90\xe5\x89\x4e\x17\x3d\x51" - "\x48\x23\x90\xfe\x1c\xf3\xac\x18\xe1\xa2\x96\xf6\x7c\x9a\xd3\x15" - "\x4a\x9e\x7b\xa1\x4f\xb4\xe4\x6d\xa4\xa3\x85\x1b\x99\x1e\x2e\xd6" - "\xd3\xe7\x74\x75\x8b\xb9\x17\x7a\xc4\xd1\xc2\xfd\xd4\x92\x77\x90" - "\x66\x7f\xe2\xb1\x84\x2b\xb6\x16\x47\x52\xb6\x56\x45\x2a\xb6\x36" - "\x84\x2a\xb6\xe6\x85\x53\xb6\xfa\x43\x29\xdb\xa0\xb3\x6d\x2b\x06" - "\xfd\x52\x64\x5b\xa4\x6e\x5b\x82\x77\xbb\x6c\x5f\xf3\x36\x17\x74" - "\x70\xc9\xff\x5e\xd8\xde\xa2\x7c\x5b\x83\x48\xd9\xe6\xea\xab\xd8" - "\x56\xa5\xf8\x13\xdf\xa9\xdb\x1a\x14\xaf\x6c\x6b\x52\x7d\x60\xdb" - "\x01\x6e\x5f\xa4\xf1\xe0\x77\x0c\x3f\xe8\x94\xdb\x33\x01\xf3\x2a" - "\x86\x1f\x31\x6f\xcf\x8c\x94\x6f\xcf\x12\xe6\xed\xd9\x80\xad\xcd" - "\x7d\x3e\x08\x3a\x82\x86\x0e\xd0\x9f\x6d\x23\x47\x18\xdf\x61\x7a" - "\xf2\x79\x72\x7a\x1d\x27\xf1\x7e\x92\xc4\xbb\x55\x34\xf7\x79\xee" - "\x7f\x61\x3c\x9d\x02\x34\xb2\x44\x52\x00\xa7\x02\x70\x52\x00\x67" - "\xc3\xf6\x62\x5d\x36\x03\x8f\xed\x4b\x15\x1e\xdb\x8b\xfb\xfa\x32" - "\x58\xbf\x33\x21\x8d\x0b\xe1\xe7\xe5\x78\xc2\x3c\x58\xbe\xdd\x3f" - "\xe7\x25\xe1\x17\xe6\x9a\xec\xc8\x50\x92\x7d\x29\xf2\xae\x10\xaa" - "\x3f\x75\x82\x87\x47\xbb\x72\x1d\xd4\x20\x2a\xb6\xfb\x45\x4a\x0d" - "\xe0\xef\x78\x15\x70\x92\x85\x94\x47\x3b\xaa\xfa\x2a\x76\x34\xe1" - "\xd7\x30\xd0\x07\x99\x16\x3b\xaa\x62\x6d\xe7\xc4\x76\x73\x8f\xfb" - "\x9a\x16\x1f\xed\x3f\xc6\xb2\x0f\xef\x6d\x3e\x7a\xb3\x51\x7f\x6f" - "\xf7\x51\xb5\xb4\xc1\x59\xe6\x15\x97\xd1\x97\xcf\xd0\xe8\x1a\xd0" - "\x84\xdf\xd3\xf0\x5e\x3b\xef\xd6\xf7\x44\xa4\xfc\x43\x33\x78\xa0" - "\x87\x65\x90\x70\x4f\x66\xf9\x9d\x05\x7b\xc7\x2c\x7a\x32\xd2\x30" - "\x86\x6c\x16\x7d\x36\xb6\xcd\x2c\xf8\x1e\x01\xfa\x8e\xc3\x73\xe4" - "\xae\x8b\x94\x8e\x9f\x6d\x97\x3b\xe2\x62\x59\x8d\xf7\x4c\xf1\xa2" - "\x2d\x75\xf3\x0a\x1a\x6f\x09\x90\xb9\xde\x1d\xc9\xb1\xac\xb5\xb2" - "\x8d\x92\xce\xef\xc2\x5d\x33\xbb\xfe\x22\x99\x78\xcc\x89\xa4\xa0" - "\x3c\x87\x45\x88\xe5\x19\x54\xbf\x0c\xb2\xc9\x4d\xb6\x7a\xb7\x68" - "\x0a\xf7\x64\x68\x8c\xa7\x81\x0b\xe3\x06\x3c\xaf\x03\x9e\xfb\x1e" *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***