]> CyberLeo.Net >> Repos - FreeBSD/stable/8.git/log
FreeBSD/stable/8.git
14 years agoMFC r200696,200740,200756,200758-200759,200972
yongari [Sat, 9 Jan 2010 00:26:57 +0000 (00:26 +0000)]
MFC r200696,200740,200756,200758-200759,200972

r200696:
  Add rudimentary WOL support. While I'm here remove enabling
  busmastering/memory address in resume path. Bus driver will handle
  that.

r200740:
  Swap VGE_TXQTIMER and VGE_RXQTIMER register definition. Pending
  timer for Tx queue is at 0x3E.

r200756:
  Correct fragment bit definition in comments.

r200758:
  VT6130 datasheet was wrong. If VT6130 receive a jumbo frame the
  controller will split the jumbo frame into multiple RX buffers.
  However it seems the hardware always dma the frame to 8 bytes
  boundary for the split frames. Only the first part of the fragment
  can have 4 byte alignment and subsequent buffers should be 8 bytes
  aligned. Change RX buffer the alignment requirement to 8 bytes from
  4 bytes.

r200759:
  Disable jumbo frame support for PCIe VT6130/VT6132 controllers.
  Quite contrary to VT6130 datasheet which says it supports up to 8K
  jumbo frame, VT6130 does not seem to send jumbo frame that is
  larger than 4K in length. Trying to send a frame that is larger
  than 4K cause TX MAC hang.
  Even though it's possible to allow 4K jumbo frame for VT6130, I
  think it's meaningless to allow 4K jumbo frame. I'm not sure VT6132
  also has the same limitation but I guess it uses the same MAC of
  VT6130.

r200972:
  Remove wrong assertion.

git-svn-id: svn://svn.freebsd.org/base/stable/8@201871 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoMFC r200638:
yongari [Sat, 9 Jan 2010 00:17:43 +0000 (00:17 +0000)]
MFC r200638:
  Implement interrupt moderation scheme supported by VT61xx
  controllers. TX/RX interrupt mitigation is controlled by
  VGE_TXSUPPTHR and VGE_RXSUPPTHR register. These registers suppress
  generation of interrupts until the programmed frames counter equals
  to the registers. VT61xx also supports interrupt hold off timer
  register. If this interrupt hold off timer is active all interrupts
  would be disabled until the timer reaches to 0. The timer value is
  reloaded whenever VGE_ISR register written. The timer resolution is
  about 20us.

  Previously vge(4) used single shot timer to reduce Tx completion
  interrupts. This required VGE_CRS1 register access in Tx
  start/completion handler to rearm new timeout value and it did not
  show satisfactory result(more than 50k interrupts under load). Rx
  interrupts was not moderated at all such that vge(4) used to
  generate too many interrupts which in turn made polling(4) better
  approach under high network load.

  This change activates all interrupt moderation mechanism and
  initial values were tuned to generate interrupt less than 8k per
  second. That number of interrupts wouldn't add additional packet
  latencies compared to polling(4). These interrupt parameters could
  be changed with sysctl.
  dev.vge.%d.int_holdoff
  dev.vge.%d.rx_coal_pkt
  dev.vge.%d.tx_coal_pkt
  Interface has be brought down and up again before change take
  effect.

  With interrupt moderation there is no more need to loop in
  interrupt handler. This loop always added one more register access.
  While I'm here remove dead code which tried to implement subset of
  interrupt moderation.

git-svn-id: svn://svn.freebsd.org/base/stable/8@201868 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoMFC r200616-200617,200635,200639,200644
yongari [Sat, 9 Jan 2010 00:12:59 +0000 (00:12 +0000)]
MFC r200616-200617,200635,200639,200644

r200616:
  Add new flag VGE_FLAG_SUSPENDED to mark suspended state and
  remove suspended member in softc.

r200617:
  Add "Velocity" to probe message which will make it clearer which
  ethernet controller was recognized. VIA consistently calls
  "Velocity" family for gigabit ethernet controllers. For fast
  ethernet controllers they uses "Rhine" family(vr(4) controllers))
  and vr(4) already shows "Rhine" in probe message.

r200635:
  Remove unused VGE_ETHER_ALIGN definition.

r200639:
  Actually clear interrupts. Writing 0 has no effect.

r200644:
  Remove unused member variable of softc.

git-svn-id: svn://svn.freebsd.org/base/stable/8@201866 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoMFC 200615:
yongari [Sat, 9 Jan 2010 00:07:03 +0000 (00:07 +0000)]
MFC 200615:
  Add hardware MAC statistics support. This statistics could be
  extracted from dev.vge.%d.stats sysctl node.

git-svn-id: svn://svn.freebsd.org/base/stable/8@201862 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoMFC r200551-200552,200555,200558,200609,200613
yongari [Sat, 9 Jan 2010 00:02:40 +0000 (00:02 +0000)]
MFC r200551-200552,200555,200558,200609,200613

r200551:
  Whenever link state change interrupt is raised, vge_tick() is
  called and vge(4) used to drive auto-negotiation timer(mii_tick) in
  vge_tick(). Therefore the mii_tick was not called for every hz such
  that auto-negotiation complete was never handled in vge(4).
  Use mii_pollstat to extract current negotiated speed/duplex instead
  of mii_tick. The latter is valid only for auto-negotiation case.
  While I'm here change the confusing function name vge_tick() to
  vge_link_statchg().

r200552:
  Report media change result to caller instead of returning success
  without regard to the result.

r200555:
  Don't report current link status if interface is not UP.
  If interface is not UP, the current link status wouldn't
  reflect the negotiated status.

r200558:
  Tell upper layer vge(4) supports long frames. This should be done
  after ether_ifattach(), as ether_ifattach() initializes it with
  ETHER_HDR_LEN.
  While I'm here remove setting if_mtu, it's already handled in
  ether_ifattach().

r200609:
  All vge(4) controllers support RX/TX checksum offloading for VLAN
  tagged frames so add checksum offloading capabilities. Also add
  missing VLAN hardware tagging control in ioctl handler and let
  upper stack know current VLAN capabilities.

r200613:
  Rewrite RX filter setup and simplify code.
  Now promiscuous mode and multicast handling is performed in single
  function, vge_rxfilter().

git-svn-id: svn://svn.freebsd.org/base/stable/8@201860 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoMFC r200538,200540-200541,200543,200545,200548
yongari [Fri, 8 Jan 2010 22:26:24 +0000 (22:26 +0000)]
MFC r200538,200540-200541,200543,200545,200548

r200538:
  Introduce vge_flags member in softc. The vge_flags member will
  record device specific bits. Remove vge_link and use vge_flags.
  While here, move clearing link state before mii_mediachg() as
  mii_mediachg() may affect link state.

r200540:
  Save PHY address by reading VGE_MIICFG register. For PCIe
  controllers(VT613x), we assume the PHY address is 1.
  Use the saved PHY address in MII register access routines and
  remove accessing VGE_MIICFG register.
  While I'm here save PCI express capability register which will be
  used in near future.

r200541:
  Add MSI support for VT613x controllers.

r200543:
  Increase output queue size from 64 to 255.

r200545:
  We don't have to reload EEPROM in vge_reset(). Because vge_reset()
  is called in vge_init_lock(), vge(4) always used to reload EEPROM.
  Also add more comment why vge(4) clears VGE_CHIPCFG0_PACPI bit.
  While I'm here add missing new line in vge_reset().

r200548:
  Sort function prototyes.

git-svn-id: svn://svn.freebsd.org/base/stable/8@201840 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoMFC r200526-200527,200529,200531-200533,200536
yongari [Fri, 8 Jan 2010 22:08:18 +0000 (22:08 +0000)]
MFC r200526-200527,200529,200531-200533,200536

r200526:
  Use PCIR_BAR instead of hard-coded value.

r200527:
  Fix typo in register definition.

r200529:
  Clear VGE_TXDESC_Q bit for transmitted frames. The VGE_TXDESC_Q bit
  seems to work like a tag that indicates 'not list end' of queued
  frames. Without having a VGE_TXDESC_Q bit indicates 'list end'. So
  the last frame of multiple queued frames has no VGE_TXDESC_Q bit.
  The hardware has peculiar behavior for VGE_TXDESC_Q bit handling.
  If the VGE_TXDESC_Q bit of descriptor was set the controller would
  fetch next descriptor. However if next descriptor's OWN bit was
  cleared but VGE_TXDESC_Q was set, it could confuse controller.
  Clearing VGE_TXDESC_Q bit for transmitted frames ensure correct
  behavior.

r200531:
  Use ANSI function definations.

r200532:
  Remove unnecessary return statement.

r200533:
  s/u_intXX_t/uintXX_t/g

r200536:
  style(9).

git-svn-id: svn://svn.freebsd.org/base/stable/8@201837 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoMFC r201352
brooks [Fri, 8 Jan 2010 21:58:12 +0000 (21:58 +0000)]
MFC r201352

  If a filter has already been added, actually return EEXIST when trying
  at add it again.

git-svn-id: svn://svn.freebsd.org/base/stable/8@201835 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoMFC r200525:
yongari [Fri, 8 Jan 2010 21:37:16 +0000 (21:37 +0000)]
MFC r200525:
  Overhaul bus_dma(9) usage and fix various things.
   o Separate TX/RX buffer DMA tag from TX/RX descriptor ring DMA tag.
   o Separate RX buffer DMA tag from common buffer DMA tag. RX DMA
     tag has different restriction compared to TX DMA tag.
   o Add 40bit DMA address support.
   o Adjust TX/RX descriptor ring alignment to 64 bytes from 256
     bytes as documented in datasheet.
   o Added check to ensure TX/RX ring reside within a 4GB boundary.
     Since TX/RX ring shares the same high address register they
     should have the same high address.
   o TX/RX side bus_dmamap_load_mbuf_sg(9) support.
   o Add lock assertion to vge_setmulti().
   o Add RX spare DMA map to recover from DMA map load failure.
   o Add optimized RX buffer handler, vge_discard_rxbuf which is
     activated when vge(4) sees bad frames.
   o Don't blindly update VGE_RXDESC_RESIDUECNT register. Datasheet
     says the register should be updated only when number of
     available RX descriptors are multiple of 4.
   o Use __NO_STRICT_ALIGNMENT instead of defining VGE_FIXUP_RX which
     is only set for i386 architecture. Previously vge(4) also
     performed expensive copy operation to align IP header on amd64.
     This change should give RX performance boost on amd64
     architecture.
   o Don't reinitialize controller if driver is already running. This
     should reduce number of link state flipping.
   o Since vge(4) drops a driver lock before passing received frame
     to upper layer, make sure vge(4) is still running after
     re-acquiring driver lock.
   o Add second argument count to vge_rxeof(). The argument will
     limit number of packets could be processed in RX handler.
   o Rearrange vge_rxeof() not to allocate RX buffer if received
     frame was bad packet.
   o Removed if_printf that prints DMA map failure. This type of
     message shouldn't be used in fast path of driver.
   o Reduce number of allowed TX buffer fragments to 6 from 7. A TX
     descriptor allows 7 fragments of a frame. However the CMZ field
     of descriptor has just 3bits and the controller wants to see
     fragment + 1 in the field. So if we have 7 fragments the field
     value would be 0 which seems to cause unexpected results under
     certain conditions. This change should fix occasional TX hang
     observed on vge(4).
   o Simplify vge_stat_locked() and add number of available TX
     descriptor check.
   o vge(4) controllers lack padding short frames. Make sure to fill
     zero for the padded bytes. This closes unintended information
     disclosure.
   o Don't set VGE_TDCTL_JUMBO flag. Datasheet is not clear whether
     this bit should be set by driver or write-back status bit after
     transmission. At least vendor's driver does not set this bit so
     remove it. Without this bit vge(4) still can send jumbo frames.
   o Don't start driver when vge(4) know there are not enough RX
     buffers.
   o Remove volatile keyword in RX descriptor structure. This should
     be handled by bus_dma(9).
   o Collapse two 16bits member of TX/RX descriptor into single 32bits
     member.
   o Reduce number of RX descriptors to 252 from 256. The
     VGE_RXDESCNUM is 16bits register but only lower 8bits are valid.
     So the maximum number of RX descriptors would be 255. However
     the number of should be multiple of 4 as controller wants to
     update 4 RX descriptors at a time. This limits the maximum
     number of RX descriptor to be 252.

PR: kern/141276, kern/141414

git-svn-id: svn://svn.freebsd.org/base/stable/8@201832 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoMFC r201349:
brooks [Fri, 8 Jan 2010 21:27:09 +0000 (21:27 +0000)]
MFC r201349:
Ignore .glimpse_* files as generated by the glimpse target.  Also ignore
cscope.* files.

git-svn-id: svn://svn.freebsd.org/base/stable/8@201826 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoMFC r200519-200522
yongari [Fri, 8 Jan 2010 21:25:52 +0000 (21:25 +0000)]
MFC r200519-200522

r200519:
  Remove register keyword.

r200520:
  Prefer device_printf(9) to printf(9).

r200521:
  Fix spelling in comment.

r200522:
  Prefer bus_alloc_resource_any(9) to bus_alloc_resource(9).

git-svn-id: svn://svn.freebsd.org/base/stable/8@201825 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoMFC r198987,199414,199543,200422
yongari [Fri, 8 Jan 2010 21:15:09 +0000 (21:15 +0000)]
MFC r198987,199414,199543,200422

Partial merge r198987:
  Use device_printf() and if_printf() instead of printf() with an explicit
  unit number and remove 'unit' members from softc.

Partial merge r199414:
  Use the bus_*() routines rather than bus_space_*() for register operations.

r199543:
  Several fixes to this driver:
  - Overhaul the locking to avoid recursion and add missing locking in a few
    places.
  - Don't schedule a task to call vge_start() from contexts that are safe to
    call vge_start() directly.  Just invoke the routine directly instead
    (this is what all of the other NIC drivers I am familiar with do).  Note
    that vge(4) does not use an interrupt filter handler which is the primary
    reason some other drivers use tasks.
  - Add a new private timer to drive the watchdog timer instead of using
    if_watchdog and if_timer.
  - Fixup detach by calling ether_ifdetach() before stopping the interface.

r200422:
  Remove driver lock assertion in MII register access. This change
  was made in r199543 to remove MTX_RECURSE. These routines can be
  called in device attach phase(e.g. mii_phy_probe()) so checking
  assertion here is not right as caller does not hold a driver lock.

git-svn-id: svn://svn.freebsd.org/base/stable/8@201823 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoMFC: r200999
rmacklem [Fri, 8 Jan 2010 20:25:59 +0000 (20:25 +0000)]
MFC: r200999
Modify the experimental server so that it uses VOP_ACCESSX().
This is necessary in order to enable NFSv4 ACL support. The
argument to nfsvno_accchk() was changed to an accmode_t and
the function nfsrv_aclaccess() was no longer needed and,
therefore, deleted.

Reviewed by: trasz

git-svn-id: svn://svn.freebsd.org/base/stable/8@201819 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoMFC r201355: sh(1): document ulimit -w (swapuse rlimit).
jilles [Fri, 8 Jan 2010 14:33:03 +0000 (14:33 +0000)]
MFC r201355: sh(1): document ulimit -w (swapuse rlimit).

git-svn-id: svn://svn.freebsd.org/base/stable/8@201788 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoMFC r201354: sh(1): Correct two places where "$@" lacked necessary quotes.
jilles [Fri, 8 Jan 2010 14:30:03 +0000 (14:30 +0000)]
MFC r201354: sh(1): Correct two places where "$@" lacked necessary quotes.

git-svn-id: svn://svn.freebsd.org/base/stable/8@201787 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoMFC r200994:
gavin [Fri, 8 Jan 2010 10:13:27 +0000 (10:13 +0000)]
MFC r200994:
  Set the locally-assigned bit in the randomly generated Ethernet address
  if we end up having to generate one.

PR: kern/133239
Discussed with: yongari
Approved by: ed (mentor, implicit)

git-svn-id: svn://svn.freebsd.org/base/stable/8@201778 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoMFC r197816:
netchild [Fri, 8 Jan 2010 09:59:13 +0000 (09:59 +0000)]
MFC r197816:
---snip---
    Prevent paging pressure from draining arc too much
    - always drain arc if above arc_c_max - never drain arc if arc is below
      arc_c_max
---snip---

git-svn-id: svn://svn.freebsd.org/base/stable/8@201777 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoMFC r200129 to stable/8:
antoine [Thu, 7 Jan 2010 19:37:21 +0000 (19:37 +0000)]
MFC r200129 to stable/8:
  Remove trailing ";" in UMA_HASH_INSERT and UMA_HASH_REMOVE macros.

git-svn-id: svn://svn.freebsd.org/base/stable/8@201754 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoBump __FreeBSD_version to 800500 which should have happened already
bz [Thu, 7 Jan 2010 16:18:46 +0000 (16:18 +0000)]
Bump __FreeBSD_version to 800500 which should have happened already
after r198460 but was missed.

Note: that 800108 should have been 800501 with that but as there is no
functional problem here, it'll just stay as is. [1]

This will make pkg_add -r use packages-8-stable for stable/8 rather
than packages-8.0-release.

Reported by: Paride Legovini (pl ninthfloor.org) on stable@,
(pluknet gmail.com), jhb
Discussed with: rwatson [1]

git-svn-id: svn://svn.freebsd.org/base/stable/8@201749 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoMFC r200871:
bms [Thu, 7 Jan 2010 14:15:34 +0000 (14:15 +0000)]
MFC r200871:
 Use ALLOW_NEW_SOURCES and BLOCK_OLD_SOURCES to signal a join or leave
 with SSM MLDv2 by default.
 This is current practice and complies with RFC 4604, as well as being
 required by production IPv6 networks in Japan.
 The behaviour may be disabled by setting the net.inet6.mld.use_allow
 sysctl/tunable to 0.

Requested by: Hideki Yamamoto, dikshie

git-svn-id: svn://svn.freebsd.org/base/stable/8@201747 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoMFC r201347:
kib [Thu, 7 Jan 2010 11:41:47 +0000 (11:41 +0000)]
MFC r201347:
Allow swap out of the kernel stack for the thread with priority greater
or equial then PSOCK, not less or equial.

git-svn-id: svn://svn.freebsd.org/base/stable/8@201738 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoMFC r201504:
kib [Thu, 7 Jan 2010 11:33:57 +0000 (11:33 +0000)]
MFC r201504:
PG_NOSYNC is called VPO_NOSYNC for long time.

git-svn-id: svn://svn.freebsd.org/base/stable/8@201737 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoMFC r200088,200227-200228,200246,200264,201446
yongari [Thu, 7 Jan 2010 00:55:07 +0000 (00:55 +0000)]
MFC r200088,200227-200228,200246,200264,201446

r200088:
  Add workaround to overcome hardware limitation which allows only a
  single outstanding DMA read operation. Most controllers targeted to
  client with PCIe bus interface(e.g. BCM5761) may have this
  limitation. All controllers for servers does not have this
  limitation.
  Collapsing mbuf chains to reduce number of memory reads before
  transmitting was most effective way to workaround this. I got about
  940Mbps from 850Mbps with mbuf collapsing on BCM5761. However it
  takes a lot of CPU cycles to collapse mbuf chains so add tunable to
  control the number of allowed TX buffers before collapsing. The
  default value is 0 which effectively disables the forced collapsing.
  For most cases 2 would yield best performance(about 930Mbps)
  without much sacrificing CPU cycles.
  Note the collapsing is only activated when the controller is on
  PCIe bus and the frame does not need TSO operation. TSO does not
  seem to suffer from the hardware limitation because the payload
  size is much bigger than normal IP datagram.
  Thanks to davidch@ who told me the limitation of client controllers
  and actually gave possible workarounds to mitigate the limitation.

r200227:
  Remove PHY isolate/power down code in bge_stop(). The isolation
  handler in brgphy(4) does not exist and brgphy(4) just resets the
  PHY and returns EINVAL as it has no isolation handler. I also agree
  on Marius's opinion that stop handler of every NIC driver seems to
  be the wrong place for implementing PHY isolate/power down.
  If we need PHY isolate/power down it should be implemented in
  brgphy(4) and users should administratively down the PHY.

r200228:
  Don't access jumbo frame related registers if controller lacks the
  feature. These registers are reserved on controllers that have no
  support for jumbo frame.
  Only BCM5700 has mini ring so do not poke mini ring related
  registers if controller is not BCM5700.

r200246:
  Partially revert r200228. For mini RCB case, bge(4) still have to
  disable mini ring withtout regard to mini ring support.

r200264:
  Create sysctl node(dev.bge.%d.focred_collapse) instead of
  hw.bge.forced_collapse. hw.bge.forced_collapse affects all bge(4)
  controllers on system which may not desirable behavior of the
  sysctl node. Also allow the sysctl node could be modified at any
  time.

r201446:
  Fix regression introduced in r198318. BCM5754/BCM5754M uses the
  same ASIC ID of BCM5758 such that r198318 incorecctly enabled TSO
  on BCM5754.BCM5754M controllers. BCM5754/BCM5754M needs a special
  firmware to enable TSO and bge(4) does not support firmware based
  TSO.

git-svn-id: svn://svn.freebsd.org/base/stable/8@201706 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoMFC r199670-199671,199674,199679,199761,199807-199808
yongari [Thu, 7 Jan 2010 00:44:54 +0000 (00:44 +0000)]
MFC r199670-199671,199674,199679,199761,199807-199808

r199670:
  Fix two long standing bugs on bge(4). Most pre BCM5755 controllers
  have a DMA bug when buffer address crosses a multiple of the 4GB
  boundary(e.g. 4GB, 8GB, 12GB etc). Limit DMA address to be within
  4GB address for these controllers. The second DMA bug limits DMA
  address to be within 40bit address space. This bug applies to
  BCM5714 and BCM5715 and 5708(bce(4) controller). This is not
  actually a MAC controller bug but an issue with the embedded PCIe
  to PCI-X bridge in the device. So for BCM5714/BCM5715 controllers
  also limit the DMA address to be within 40bit address space.
  Special thanks to davidch@ who gave me detailed errata information.
  I think this change will fix long standing bge(4) instability
  issues on systems with more than 4GB memory.

r199671:
  Implement TSO for BCM5755 or newer controllers. Some controllers
  seem to require a special firmware to use TSO. But the firmware is
  not available to FreeBSD and Linux claims that the TSO performed by
  the firmware is slower than hardware based TSO. Moreover the
  firmware based TSO has one known bug which can't handle TSO if
  ethernet header + IP/TCP header is greater than 80 bytes. The
  workaround for the TSO bug exist but it seems it's too expensive
  than not using TSO at all. Some hardwares also have the TSO bug so
  limit the TSO to the controllers that are not affected TSO issues
  (e.g. 5755 or higher).
  While I'm here set VLAN tag bit to all descriptors that belengs to
  a frame instead of the first descriptor of a frame. The datasheet
  is not clear how to handle VLAN tag bit but it worked either way in
  my testing. This makes it simplify TSO configuration a little bit.

  Big thanks to davidch@ who sent me detailed TSO information.
  Without this I was not able to implement it.

r199674:
  Add missing function prototype in r199671.

r199679:
  Reduce status block size DMAed by controller. bge(4) uses single
  Tx/Rx/Rx return ring such that large part of status block was not
  used at all. All bge(4) controllers except BCM5700 AX/BX has a
  feature to control the size of status block. So use minimum status
  block size allowed in controller. This reduces number of DMAed
  status block size to 32 bytes from 80 bytes.

r199761:
  BGE_FLAG_40BIT_BUG should be set before creating DMA tags.

r199807:
  Make sure one shot MSI is enabled.

r199808:
  Fix typo which inversed the logic which in turn disabled MSI.

git-svn-id: svn://svn.freebsd.org/base/stable/8@201702 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoMFC r199667-199668
yongari [Wed, 6 Jan 2010 23:42:15 +0000 (23:42 +0000)]
MFC r199667-199668

r199667:
  Cache Rx producer/Tx consumer index as soon as we know status block
  update and then clear status block. Previously it used to access
  these index without synchronization which may cause problems when
  bounce buffers are used. Also add missing bus_dmamap_sync(9) in
  polling handler. Since we now update status block in driver, adjust
  bus_dmamap_sync(9) for status block.

r199668:
  For MSI case, interrupt is not shared and we don't need to force
  PCI flush to get correct status block update. Add an optimized
  interrupt handler that is activated for MSI case. Actual interrupt
  handling is done by taskqueue such that the handler does not
  require driver lock for Rx path. The MSI capable bge(4) controllers
  automatically disables further interrupt once it enters interrupt
  state so we don't need PIO access to disable interrupt in interrupt
  handler.

git-svn-id: svn://svn.freebsd.org/base/stable/8@201697 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoMFC 199663-199666
yongari [Wed, 6 Jan 2010 23:34:53 +0000 (23:34 +0000)]
MFC 199663-199666

r199663:
  Due to newly added PCIe capabilities fallback code for finding the
  PCIe capability did not work right on recent controllers. Remove
  FreeBSD 6.x support code.

r199664:
  Use capability pointer to access PCIe registers rather than
  directly access them at fixed address. While I'm here don't touch
  other bits of PCIe device control register except max payload size.

r199665:
  Controller does not write Rx descriptors, remove BUS_DMASYNC_PREREAD.

r199666:
  Rearrange bge_start_locked to see we can send more frames by
  checking IFF_DRV_RUNNING and IFF_DRV_OACTIVE flags. Also if we
  have less than 16 free send BDs set IFF_DRV_OACTIVE and try it
  later. Previously bge(4) used to reserve 16 free send BDs after
  loading dma maps but hardware just need one reserved send BD. If
  prouder index has the same value of consumer index it means the Tx
  queue is empty.
  While I'm here check IFQ_DRV_IS_EMPTY first to save one lock
  operation.

git-svn-id: svn://svn.freebsd.org/base/stable/8@201694 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoMFC r199065,199115-199116,199153,199661-199662
yongari [Wed, 6 Jan 2010 23:26:09 +0000 (23:26 +0000)]
MFC r199065,199115-199116,199153,199661-199662

r199065:
  Correct disabling checksum offloading for BCM5700 B0.

r199115:
  Add missing bus_dmamap_sync(9) before issuing kick command.

r199116:
  Zero out Tx/Rx descriptors before using them. Also add missing
  bus_dmamap_sync(9) after Tx descriptor initialization.

r199153:
  Controller does not update Tx descriptors(send BDs) after sending
  frames so remove unnecessary BUS_DMASYNC_PREREAD and
  BUS_DMASYNC_POSTREAD of bus_dmamap_sync(9).

r199661:
  Remove extra white space.

r199662:
  Fix typo introduced in r199011.

git-svn-id: svn://svn.freebsd.org/base/stable/8@201692 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoMFC r198967,199009-199011,199014,199020,199035-199036,199054
yongari [Wed, 6 Jan 2010 23:02:35 +0000 (23:02 +0000)]
MFC r198967,199009-199011,199014,199020,199035-199036,199054

r198967:
  Correct MSI mode register bits.

r199009:
  bge(4) already switched to use UMA backed page allocator and local
  memory allocator for jumbo frame was removed long time ago. Remove
  no more used macros.

r199010:
  Do bus_dmamap_sync call only if frame size is greater than
  standard buffer size. If controller is not capable of handling
  jumbo frame, interface MTU couldn't be larger than standard MTU
  which in turn the received should be fit in standard buffer. This
  fixes bus_dmamap_sync call for jumbo ring is called even if
  interface is configured to use standard MTU.
  Also if total frame size could be fit into standard buffer don't
  use jumbo buffers.

r199011:
  Reimplement Rx buffer allocation to handle dma map load failure.
  Introduce two spare dma maps for standard buffer and jumbo buffer
  respectively. If loading a dma map failed reuse previously loaded
  dma map. This should fix unloaded dma map is used in case of dma
  map load failure. Also don't blindly unload dma map and defer
  dma map sync and unloading operation until we know dma map for new
  buffer is successfully loaded. This change saves unnecessary dma
  load/unload operation. Previously bge(4) tried to reuse mbuf
  with unloaded dma map which is really bad thing in bus_dma(9)
  perspective.
  While I'm here update if_iqdrops if we can't allocate Rx buffers.

r199014:
  Fix I mssied in r199011. Rx ring index also should be updated.
  If we fill Rx ring full instead of half we can simplify this logic
  but this requires more experimentation.

r199020:
  Tell upper layer we support long frames. ether_ifattach()
  initializes it to ETHER_HDR_LEN so we have to override it after
  calling ether_ifattch().
  While I'm here remove setting if_mtu value, it's initialized in
  ether_ifattach().

r199035:
  Don't count input errors twice, we always read input errors from
  MAC in bge_tick. Previously it used to show more number of input
  errors. I noticed actual input errors were less than 8% even for
  64 bytes UDP frames generated by netperf.
  Since we always access BGE_RXLP_LOCSTAT_IFIN_DROPS register in
  bge_tick, remove useless code protected by #ifdef notyet.

r199036:
  Count number of inbound packets which were chosen to be discarded
  as input errors. Also count out of receive BDs as input errors.

r199054:
  Partially revert r199035.
  Revision 1.158 says only lower ten bits of
  BGE_RXLP_LOCSTAT_IFIN_DROPS register is valid. For BCM5761 case it
  seems the controller maintains 16bits value for the register.
  However 16bits are still too small to count all dropped packets
  happened in a second. To get a correct counter we have to read the
  register in bge_rxeof() which would be too expensive.

git-svn-id: svn://svn.freebsd.org/base/stable/8@201687 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoMFC r198923-198924,198927-198928
yongari [Wed, 6 Jan 2010 22:45:49 +0000 (22:45 +0000)]
MFC r198923-198924,198927-198928

r198923:
  Use correct dma tag for jumbo buffer.

r198924:
  Covert bge_newbuf_std to use bus_dmamap_load_mbuf_sg(9). Note,
  bge_newbuf_std still has a bug for handling dma map load failure
  under high network load. Just reusing mbuf is not enough as driver
  already unloaded the dma map of the mbuf. Graceful recovery needs
  more work.
  Ideally we can just update dma address part of a Rx descriptor
  because the controller never overwrite the Rx descriptor. This
  requires some Rx initialization code changes and it would be done
  later after fixing other incorrect bus_dma(9) usages.

r198927:
  Remove common DMA tag used for TX/RX mbufs and create Tx DMA tag
  and Rx DMA tag separately. Previously it used a common mbuf DMA tag
  for both Tx and Rx path but Rx buffer(standard ring case) should
  have a single DMA segment and maximum buffer size of the segment
  should be less than or equal to MCLBYTES. This change also make it
  possible to add TSO with minor changes.

r198928:
  Make bge_newbuf_std()/bge_newbuf_jumbo() returns actual error code
  for buffer allocation. If driver know we are out of Rx buffers let
  controller stop. This should fix panic when interface is run even
  if it had no configured Rx buffers.

git-svn-id: svn://svn.freebsd.org/base/stable/8@201685 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoFix BIND named(8) cache poisoning with DNSSEC validation.
simon [Wed, 6 Jan 2010 21:45:30 +0000 (21:45 +0000)]
Fix BIND named(8) cache poisoning with DNSSEC validation.
[SA-10:01]

Fix ntpd mode 7 denial of service. [SA-10:02]

Fix ZFS ZIL playback with insecure permissions. [SA-10:03]

Various FreeBSD 8.0-RELEASE improvements. [EN-10:01]

Security: FreeBSD-SA-10:01.bind
Security: FreeBSD-SA-10:02.ntpd
Security: FreeBSD-SA-10:03.zfs
Errata: FreeBSD-EN-10:01.freebsd
Approved by: so (simon)

git-svn-id: svn://svn.freebsd.org/base/stable/8@201679 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoMFC r200819:
gavin [Wed, 6 Jan 2010 20:54:04 +0000 (20:54 +0000)]
MFC r200819:

  Grammar and minor tweaks to powerd(8) man page.

PR: docs/133186
Approved by: ed (mentor, implicit)

git-svn-id: svn://svn.freebsd.org/base/stable/8@201672 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoMFC r200820:
gavin [Wed, 6 Jan 2010 20:40:41 +0000 (20:40 +0000)]
MFC r200820:

  Support the tablet in (at least) the Toshiba Portege M200 Tablet PC.
  This device only appears on the ACPI bus, so isn't caught by the current
  entry for it in the uart(4) ISA attachment.

PR: kern/140172
Reviewed by: jhb, marcel
Approved by: ed (mentor, implicit)

git-svn-id: svn://svn.freebsd.org/base/stable/8@201667 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoMFC: r200251
jkim [Wed, 6 Jan 2010 20:28:47 +0000 (20:28 +0000)]
MFC: r200251

- Try pre-allocating all FIBs upfront.  Previously we tried pre-allocating
128 FIBs first and allocated more later if necessary.  Remove now unused
definitions from the header file[1].
- Force sequential bus scanning.  It seems parallel scanning is in fact
slower and causes more harm than good[1].  Adjust a comment to reflect that.

git-svn-id: svn://svn.freebsd.org/base/stable/8@201665 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoMFC r201290: Treat an empty argument as an error, instead of
ru [Wed, 6 Jan 2010 08:26:43 +0000 (08:26 +0000)]
MFC r201290: Treat an empty argument as an error, instead of
fetching the contents of the root directory.

git-svn-id: svn://svn.freebsd.org/base/stable/8@201634 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoAccording to basic instructions from jhb clean-up mergeinfo from r201614.
bz [Tue, 5 Jan 2010 23:03:59 +0000 (23:03 +0000)]
According to basic instructions from jhb clean-up mergeinfo from r201614.

git-svn-id: svn://svn.freebsd.org/base/stable/8@201622 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoMFC r201319
qingli [Tue, 5 Jan 2010 22:37:05 +0000 (22:37 +0000)]
MFC r201319

Remove a deleted comment line that was brought back by
my previous commit.

git-svn-id: svn://svn.freebsd.org/base/stable/8@201617 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoMFC r201285
qingli [Tue, 5 Jan 2010 22:33:10 +0000 (22:33 +0000)]
MFC r201285

Consolidate the route message generation code for when address
aliases were added or deleted. The announced route entry for
an address alias is no longer empty because this empty route
entry was causing some route daemon to fail and exit abnormally.

git-svn-id: svn://svn.freebsd.org/base/stable/8@201616 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoMFC r201284
qingli [Tue, 5 Jan 2010 22:28:23 +0000 (22:28 +0000)]
MFC r201284

Multiple IPv6 addresses of the same prefix can be installed on the
same interface. The first address will install the prefix route into
the kernel routing table and that prefix will be marked as on-link.
Without RADIX_MPATH enabled, the other address aliases of the same
prefix will update the prefix reference count but no other routes
will be installed. Consequently the prefixes associated with these
addresses would not be marked as on-link. As such, incoming packets
destined to these address aliases will fail the ND6 on-link check
on input. This patch fixes the above problem by searching the kernel
routing table and try to find an on-link prefix on the given interface.

git-svn-id: svn://svn.freebsd.org/base/stable/8@201615 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoMFC r201282, r201543
qingli [Tue, 5 Jan 2010 22:14:55 +0000 (22:14 +0000)]
MFC r201282, r201543

r201282
-------
The proxy arp entries could not be added into the system over the
IFF_POINTOPOINT link types. The reason was due to the routing
entry returned from the kernel covering the remote end is of an
interface type that does not support ARP. This patch fixes this
problem by providing a hint to the kernel routing code, which
indicates the prefix route instead of the PPP host route should
be returned to the caller. Since a host route to the local end
point is also added into the routing table, and there could be
multiple such instantiations due to multiple PPP links can be
created with the same local end IP address, this patch also fixes
the loopback route installation failure problem observed prior to
this patch. The reference count of loopback route to local end would
be either incremented or decremented. The first instantiation would
create the entry and the last removal would delete the route entry.

r201543
-------
The IFA_RTSELF address flag marks a loopback route has been installed
for the interface address. This marker is necessary to properly support
PPP types of links where multiple links can have the same local end
IP address. The IFA_RTSELF flag bit maps to the RTF_HOST value, which
was combined into the route flag bits during prefix installation in
IPv6. This inclusion causing the prefix route to be unusable. This
patch fixes this bug by excluding the IFA_RTSELF flag during route
installation.

PR: ports/141342, kern/141134

git-svn-id: svn://svn.freebsd.org/base/stable/8@201614 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoMFC 201196:
jhb [Tue, 5 Jan 2010 18:25:41 +0000 (18:25 +0000)]
MFC 201196:
Change vlan interfaces to cope more usefully with the parent interface being
renamed.  Previously the vlan interfaces would lose their configuration as if
the parent interface had been physically removed.  Now vlan interfaces ignore
rename events.
- Add a new ifnet flag (IFF_RENAMING) that is set while an ifnet is being
  renamed.  This flag can be checked in ifnet departure/arrival event
  handlers to treat rename events differently.
- Change the ifnet departure event handler in the if_vlan(4) driver to
  ignore departure events due to a trunk interface being renamed.

git-svn-id: svn://svn.freebsd.org/base/stable/8@201597 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoMFC 200847:
jhb [Tue, 5 Jan 2010 17:04:14 +0000 (17:04 +0000)]
MFC 200847:
- Rename the __tcpi_(snd|rcv)_mss fields of the tcp_info structure to remove
  the leading underscores since they are now implemented.
- Implement the tcpi_rto and tcpi_last_data_recv fields in the tcp_info
  structure.

git-svn-id: svn://svn.freebsd.org/base/stable/8@201593 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoMFC 200977:
mav [Tue, 5 Jan 2010 14:03:46 +0000 (14:03 +0000)]
MFC 200977:
Avoid false positive probe on ICH6 chipsets.

git-svn-id: svn://svn.freebsd.org/base/stable/8@201588 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoMFC 200991:
mav [Tue, 5 Jan 2010 14:02:12 +0000 (14:02 +0000)]
MFC 200991:
Teach twe driver to report array stripe size to GEOM.

git-svn-id: svn://svn.freebsd.org/base/stable/8@201587 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoMFC 200969:
mav [Tue, 5 Jan 2010 13:58:18 +0000 (13:58 +0000)]
MFC 200969:
Report stripe size only if physical sector size is not equal to logical.

git-svn-id: svn://svn.freebsd.org/base/stable/8@201586 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoMFC 200968:
mav [Tue, 5 Jan 2010 13:56:58 +0000 (13:56 +0000)]
MFC 200968:
Make diskinfo report disk stripe size and offset. It should help users to
make file systems optimally aligned and tuned for better performance.

git-svn-id: svn://svn.freebsd.org/base/stable/8@201585 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoMFC r196799:
mav [Tue, 5 Jan 2010 13:55:49 +0000 (13:55 +0000)]
MFC r196799:
Don't bother obtaining the ident if we are not going to print it.

git-svn-id: svn://svn.freebsd.org/base/stable/8@201584 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoMFC r200934:
mav [Tue, 5 Jan 2010 13:51:23 +0000 (13:51 +0000)]
MFC r200934:
Add two disk ioctls, giving user-level tools information about disk/array
stripe (optimal access block) size and offset.

git-svn-id: svn://svn.freebsd.org/base/stable/8@201583 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoMFC r200942:
mav [Tue, 5 Jan 2010 13:50:14 +0000 (13:50 +0000)]
MFC r200942:
Make geom_concat to passthrough stripe parameters of the first component,
hoping that rest will fit.

git-svn-id: svn://svn.freebsd.org/base/stable/8@201582 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoMFC r200940:
mav [Tue, 5 Jan 2010 13:49:18 +0000 (13:49 +0000)]
MFC r200940:
As soon as geom_raid3 reports it's own stripe as sector size, report largest
underlying provider's stripe, multiplied by number of data disks in array,
due to transformation done, as array stripe.

git-svn-id: svn://svn.freebsd.org/base/stable/8@201581 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoMFC r200935:
mav [Tue, 5 Jan 2010 13:47:55 +0000 (13:47 +0000)]
MFC r200935:
As soon as mirror has no own stripes, report largest stripe of unrerlying
components, hoping others fit, if they are not equal.

git-svn-id: svn://svn.freebsd.org/base/stable/8@201580 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoMFC r200933:
mav [Tue, 5 Jan 2010 13:46:39 +0000 (13:46 +0000)]
MFC r200933:
Make geom_stripe report it's stripe size to upper layers.

git-svn-id: svn://svn.freebsd.org/base/stable/8@201579 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoMFC r201400:
kib [Tue, 5 Jan 2010 12:34:16 +0000 (12:34 +0000)]
MFC r201400:
Remove reference to the bug in FreeBSD 2.0.

git-svn-id: svn://svn.freebsd.org/base/stable/8@201576 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoMFC r201194:
kib [Tue, 5 Jan 2010 12:32:09 +0000 (12:32 +0000)]
MFC r201194:
Use clock_gettime(CLOCK_SECOND) instead of gettimeofday(2) for
implementation of time(3). CLOCK_SECOND is much faster.

git-svn-id: svn://svn.freebsd.org/base/stable/8@201574 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoMFC 201351:
jhb [Mon, 4 Jan 2010 22:44:48 +0000 (22:44 +0000)]
MFC 201351:
Use stricter checking to match possible vlan clones by not allowing extra
garbage characters around or within the tag.

git-svn-id: svn://svn.freebsd.org/base/stable/8@201540 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoRevert 201158. DEFAULTS isn't for this kind of thing.a
imp [Mon, 4 Jan 2010 21:33:10 +0000 (21:33 +0000)]
Revert 201158.  DEFAULTS isn't for this kind of thing.a

git-svn-id: svn://svn.freebsd.org/base/stable/8@201535 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoMFC r200775:
kensmith [Mon, 4 Jan 2010 19:57:35 +0000 (19:57 +0000)]
MFC r200775:

Add FreeBSD- to the beginning of the ISO image filenames.

git-svn-id: svn://svn.freebsd.org/base/stable/8@201529 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoMFC 201216:
jhb [Mon, 4 Jan 2010 19:27:17 +0000 (19:27 +0000)]
MFC 201216:
Remove a trailing reference to the obsolete vaps_<IF> variable.

git-svn-id: svn://svn.freebsd.org/base/stable/8@201528 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoMFC r201254:
syrinx [Mon, 4 Jan 2010 15:58:36 +0000 (15:58 +0000)]
MFC r201254:
Make sure the multicast forwarding cache entry's stall queue is properly
initialized before trying to insert an entry into it.

PR: kern/142052
Reviewed by: bms

git-svn-id: svn://svn.freebsd.org/base/stable/8@201515 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoMFC r200055, r200102:
ume [Mon, 4 Jan 2010 15:22:38 +0000 (15:22 +0000)]
MFC r200055, r200102:
- Teach an IPv6 to the debug prints.
- Use INET_ADDRSTRLEN and INET6_ADDRSTRLEN rather than hard
  coded number.

git-svn-id: svn://svn.freebsd.org/base/stable/8@201509 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoMFC r200027: Teach an IPv6 to send_pkt() and ipfw_tick().
ume [Mon, 4 Jan 2010 15:05:11 +0000 (15:05 +0000)]
MFC r200027: Teach an IPv6 to send_pkt() and ipfw_tick().
It fixes the issue which keep-alive doesn't work for an IPv6.

git-svn-id: svn://svn.freebsd.org/base/stable/8@201507 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoMFC r198940:
jh [Mon, 4 Jan 2010 14:35:36 +0000 (14:35 +0000)]
MFC r198940:

File flags handling fixes for ext2fs:

- Disallow setting of flags not supported by ext2fs.
- Map EXT2_APPEND_FL to SF_APPEND.
- Map EXT2_IMMUTABLE_FL to SF_IMMUTABLE.
- Map EXT2_NODUMP_FL to UF_NODUMP.

Note that ext2fs doesn't support user settable append and immutable flags.
EXT2_NODUMP_FL is an user settable flag also on Linux.

PR: kern/122047
Approved by: trasz (mentor)

git-svn-id: svn://svn.freebsd.org/base/stable/8@201497 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoMFC r201137:
delphij [Mon, 4 Jan 2010 01:09:59 +0000 (01:09 +0000)]
MFC r201137:

Grammar fix.

Submitted by: Kenyon Ralph <kenyon kenyonralph com>

git-svn-id: svn://svn.freebsd.org/base/stable/8@201459 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoPlug a memory leak.
delphij [Mon, 4 Jan 2010 01:08:27 +0000 (01:08 +0000)]
Plug a memory leak.

PR: bin/141835
Submitted by: Henning Petersen <henning.petersen t-online.de>

git-svn-id: svn://svn.freebsd.org/base/stable/8@201458 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoMFC r200793:
delphij [Mon, 4 Jan 2010 01:07:32 +0000 (01:07 +0000)]
MFC r200793:

Plug a memory leak.

PR: bin/141836
Submitted by: Henning Petersen <henning.petersen at t-online.de>

git-svn-id: svn://svn.freebsd.org/base/stable/8@201457 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoMFC r200727:
delphij [Sun, 3 Jan 2010 03:10:28 +0000 (03:10 +0000)]
MFC r200727:

Apply fix for Solaris bug 6764159: restore_object() makes a call
that can block while having a tx open but not yet committed
(onnv revision 7994)

Submitted by: mm
Approved by: pjd
Obtained from: OpenSolaris

git-svn-id: svn://svn.freebsd.org/base/stable/8@201412 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoMFC r200726:
delphij [Sun, 3 Jan 2010 03:05:30 +0000 (03:05 +0000)]
MFC r200726:

Apply fix for Solaris bug 6801979: zfs recv can fail with E2BIG
(onnv revision 8986)

PR: kern/141355
Requested by: mm
Submitted by: pjd
Obtained from: OpenSolaris

git-svn-id: svn://svn.freebsd.org/base/stable/8@201411 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoMFC r200724:
delphij [Sun, 3 Jan 2010 02:58:05 +0000 (02:58 +0000)]
MFC r200724:

Apply fix for Solaris bug  6462803 zfs snapshot -r failed because
filesystem was busy.

PR: kern/141387
Submitted by: mm
Approved by: pjd
Obtained from: OpenSolaris (onnv 8989:cfce31f4eebf)

git-svn-id: svn://svn.freebsd.org/base/stable/8@201409 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoMFC r200516:
delphij [Sun, 3 Jan 2010 00:27:35 +0000 (00:27 +0000)]
MFC r200516:

Add an option to specify that the received ZFS should not be automatically
mounted (receive -u).

Obtained from: OpenSolaris (onnv revision 8584:327a1b6dd944)
Approved by: pjd

git-svn-id: svn://svn.freebsd.org/base/stable/8@201407 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoWelcome to 2010.
imp [Sat, 2 Jan 2010 20:34:13 +0000 (20:34 +0000)]
Welcome to 2010.

git-svn-id: svn://svn.freebsd.org/base/stable/8@201403 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoMFC r200993: Small spelling fix, "Ethetnet" -> "Ethernet"
gavin [Sat, 2 Jan 2010 13:07:14 +0000 (13:07 +0000)]
MFC r200993:  Small spelling fix, "Ethetnet" -> "Ethernet"

Approved by: ed (mentor)

git-svn-id: svn://svn.freebsd.org/base/stable/8@201393 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoMFC: r201126
marius [Fri, 1 Jan 2010 17:30:42 +0000 (17:30 +0000)]
MFC: r201126

Account for firmware versions which include the CDMA interrupts in
the OFW device tree.

git-svn-id: svn://svn.freebsd.org/base/stable/8@201364 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoMFC r201201:
kib [Fri, 1 Jan 2010 11:43:09 +0000 (11:43 +0000)]
MFC r201201:
Document CLOCK_SECOND, add cross-reference from time(3) to clock_gettime(2).

MFC r201204:
Document _FAST and _PRECISE clocks.

git-svn-id: svn://svn.freebsd.org/base/stable/8@201362 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoMFC 200637:
gavin [Thu, 31 Dec 2009 12:58:08 +0000 (12:58 +0000)]
MFC 200637:

Don't panic due to unlocking an unowned mutex if we fail during attach.

PR: kern/139053
Reviewed by: scottl
Approved by: ed (mentor)

git-svn-id: svn://svn.freebsd.org/base/stable/8@201341 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoMFC r201134:
kib [Thu, 31 Dec 2009 11:49:13 +0000 (11:49 +0000)]
MFC r201134:
Add a knob to allow reclaim of the directory vnodes that are source of
the namecache records.

git-svn-id: svn://svn.freebsd.org/base/stable/8@201338 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoMFC r198185:
ed [Thu, 31 Dec 2009 10:53:04 +0000 (10:53 +0000)]
MFC r198185:

  Print backspaces after echoing an EOF.

  Applications like shells expect EOF to give no graphical output, while
  our implementation prints ^D by default (tunable with stty echoctl).
  Make the new implementation behave like the old TTY code. Print two
  backspaces afterwards.

I totally forgot to MFC this, because the 8.0 freeze took a little
longer than I expected.

Reminded by: koitsu

git-svn-id: svn://svn.freebsd.org/base/stable/8@201337 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoHappy New Year 2010! :-)
obrien [Thu, 31 Dec 2009 10:00:49 +0000 (10:00 +0000)]
Happy New Year 2010! :-)

git-svn-id: svn://svn.freebsd.org/base/stable/8@201335 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoMFC r198291:
jh [Thu, 31 Dec 2009 07:34:38 +0000 (07:34 +0000)]
MFC r198291:

Unloading of the nfscl module is unsupported because newnfslock doesn't
support unloading. It's not trivial to implement newnfslock unloading so
for now just admit that unloading is unsupported and refuse to attempt
unload in all nfscl module event handlers.

Approved by: trasz (mentor)

git-svn-id: svn://svn.freebsd.org/base/stable/8@201331 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoMFC r198290:
jh [Thu, 31 Dec 2009 07:32:04 +0000 (07:32 +0000)]
MFC r198290:

Fix ordering of nfscl_modevent() and ncl_uninit(). nfscl_modevent() must
be called after ncl_uninit() when unloading the nfscl module because
ncl_uninit() uses ncl_iod_mutex which is destroyed in nfscl_modevent().

Approved by: trasz (mentor)

git-svn-id: svn://svn.freebsd.org/base/stable/8@201330 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoMFC r198289:
jh [Thu, 31 Dec 2009 07:28:43 +0000 (07:28 +0000)]
MFC r198289:

Fix comment typos.

Approved by: trasz (mentor)

git-svn-id: svn://svn.freebsd.org/base/stable/8@201329 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoSync usbdevs to fix the build.
thompsa [Thu, 31 Dec 2009 06:59:15 +0000 (06:59 +0000)]
Sync usbdevs to fix the build.

Pointy hat: me

git-svn-id: svn://svn.freebsd.org/base/stable/8@201327 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoMFC r201071
thompsa [Thu, 31 Dec 2009 00:30:45 +0000 (00:30 +0000)]
MFC r201071

 Compact USB_VENDOR_X and USB_PRODUCT_Y in the quirk tables.

git-svn-id: svn://svn.freebsd.org/base/stable/8@201317 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoMFC r201028
thompsa [Thu, 31 Dec 2009 00:20:54 +0000 (00:20 +0000)]
MFC r201028

 Use macros to strip off USB_VENDOR_ and USB_PRODUCT_ from some id tables to make
 them more compact and readable.

git-svn-id: svn://svn.freebsd.org/base/stable/8@201316 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoMFC r200887
thompsa [Thu, 31 Dec 2009 00:19:52 +0000 (00:19 +0000)]
MFC r200887

 Shorten the USB_QUIRK_ENTRY macro and undef it at the end, its only internal.

git-svn-id: svn://svn.freebsd.org/base/stable/8@201315 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoMFC r200886
thompsa [Thu, 31 Dec 2009 00:19:16 +0000 (00:19 +0000)]
MFC r200886

 Move all Mass Storage Quirks over to the USB quirk module.

Submitted by: Hans Petter Selasky

git-svn-id: svn://svn.freebsd.org/base/stable/8@201314 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoMFC r200885
thompsa [Thu, 31 Dec 2009 00:18:38 +0000 (00:18 +0000)]
MFC r200885

 Sync usb vendor/product defines to p4

git-svn-id: svn://svn.freebsd.org/base/stable/8@201313 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoMFC r200827
thompsa [Thu, 31 Dec 2009 00:17:59 +0000 (00:17 +0000)]
MFC r200827

 Add missed usb product define in r200826.

git-svn-id: svn://svn.freebsd.org/base/stable/8@201312 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoMFC r200826
thompsa [Thu, 31 Dec 2009 00:17:09 +0000 (00:17 +0000)]
MFC r200826

 add new ID to UFTDI driver.

Submitted by: YAMAMOTO, Shigeru

git-svn-id: svn://svn.freebsd.org/base/stable/8@201311 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoMFC r200825
thompsa [Thu, 31 Dec 2009 00:15:36 +0000 (00:15 +0000)]
MFC r200825

 - add support for more than 2 audio channels. [1]
 - add support for more sample rates

Submitted by: [1] ariff (earlier version), Hans Petter Selasky

git-svn-id: svn://svn.freebsd.org/base/stable/8@201310 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoMFC r200823
thompsa [Thu, 31 Dec 2009 00:14:37 +0000 (00:14 +0000)]
MFC r200823

 Add more OHCI pci ids.

git-svn-id: svn://svn.freebsd.org/base/stable/8@201309 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoMFC r200822
thompsa [Thu, 31 Dec 2009 00:14:02 +0000 (00:14 +0000)]
MFC r200822

 Add more EHCI pci ids.

git-svn-id: svn://svn.freebsd.org/base/stable/8@201308 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoMFC r200658
thompsa [Thu, 31 Dec 2009 00:13:24 +0000 (00:13 +0000)]
MFC r200658

 Keep list sorted.

git-svn-id: svn://svn.freebsd.org/base/stable/8@201307 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoMFC r200657
thompsa [Thu, 31 Dec 2009 00:12:38 +0000 (00:12 +0000)]
MFC r200657

 Add a bunch of new 3G ids obtained from from various operating systems and
 Internet sources.

git-svn-id: svn://svn.freebsd.org/base/stable/8@201306 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoMFC r200653
thompsa [Thu, 31 Dec 2009 00:10:26 +0000 (00:10 +0000)]
MFC r200653

 Use the EVENTHANDLER system to hook into the usb device configuration and
 perform a function such as ejecting a 3G autoinstaller disk. The eventhandler
 system properly tracks threads and is safe to unload, remove the
 setting/clearing of a function pointer in the kernel by u3g(4) which included a
 tsleep for safety.

git-svn-id: svn://svn.freebsd.org/base/stable/8@201305 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoMFC r200652
thompsa [Thu, 31 Dec 2009 00:09:47 +0000 (00:09 +0000)]
MFC r200652

 If the runcount is non-zero in eventhandler_deregister() then one or more
 threads are executing the eventhandler, sleep in this case to make it safe for
 module unload. If the runcount was up then an entry would have been marked
 EHE_DEAD_PRIORITY so use this as a trigger to do the wakeup in
 eventhandler_prune_list().

git-svn-id: svn://svn.freebsd.org/base/stable/8@201304 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoMFC r200396
thompsa [Thu, 31 Dec 2009 00:08:59 +0000 (00:08 +0000)]
MFC r200396

 Wrap long lines.

git-svn-id: svn://svn.freebsd.org/base/stable/8@201303 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoMFC r200395
thompsa [Thu, 31 Dec 2009 00:08:17 +0000 (00:08 +0000)]
MFC r200395

 Add a quirk for the Curitel UM175 where setting multiplexing for call
 management over the data endpoint causes communication to die.

 Take this one step further and model it on the existing NetBSD quirk and import
 other device IDs from them.

Obtained from: NetBSD

git-svn-id: svn://svn.freebsd.org/base/stable/8@201302 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoMFC r200308
thompsa [Thu, 31 Dec 2009 00:07:37 +0000 (00:07 +0000)]
MFC r200308

 Fix hardware issue with FTDI chips: avoid sending a zero length packet due to
 hardware sending garbage on ZLPs.

Reported by: Corey Smith
Submitted by: HPS

git-svn-id: svn://svn.freebsd.org/base/stable/8@201301 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoMFC r200307
thompsa [Thu, 31 Dec 2009 00:06:52 +0000 (00:06 +0000)]
MFC r200307

 Fix dwSignature for NCM mode and add extra debug output.

git-svn-id: svn://svn.freebsd.org/base/stable/8@201299 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoMFC r200306
thompsa [Thu, 31 Dec 2009 00:06:12 +0000 (00:06 +0000)]
MFC r200306

 Add new device ids.

PR: usb/140951, usb/140923
Submitted by: Romain Tartiere, Brett Glass

git-svn-id: svn://svn.freebsd.org/base/stable/8@201298 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f

14 years agoMFC r200305
thompsa [Thu, 31 Dec 2009 00:05:28 +0000 (00:05 +0000)]
MFC r200305

 Correct name, 82801IJ -> 82801JI

git-svn-id: svn://svn.freebsd.org/base/stable/8@201297 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f