1. 24 Apr, 2021 3 commits
    • Hans Petter Selasky's avatar
      Allow the tcp_lro_flush_all() function to be called when the control · a9b66dbd
      Hans Petter Selasky authored
      structure is zeroed, by setting the VNET after checking the mbuf count
      for zero. It appears there are some cases with early interrupts on some
      network devices which still trigger page-faults on accessing a NULL "ifp"
      pointer before the TCP LRO control structure has been initialized.
      This basically preserves the old behaviour, prior to
      9ca874cf .
      
      No functional change.
      
      Reported by:	rscheff@
      Differential Revision:	https://reviews.freebsd.org/D29564
      MFC after:	2 weeks
      Sponsored by:	Mellanox Technologies // NVIDIA Networking
      a9b66dbd
    • Alexander Motin's avatar
      mpr/mps(4): Make device mapping some more robust. · b99419ae
      Alexander Motin authored
      Allow new enclosure to replace previously existing one if there is
      no completely unused table entry, same as it is done for devices.
      
      If we can not process DPM due to corruption -- wipe it and restart
      from scratch.  Otherwise I don't see a way to recover persistence if
      something go wrong and there is no BIOS to recover it for us.
      
      Together this solves a problem that appeared when 9300-8i firmware
      update to 16.00.10.00 somehow switched its mapping mode from Device
      Persistence to Enclosure/Slot without wiping the DPM table.  It made
      HBA completely unusable, since overflowed and conflicting mapping
      table was unable to map any of enclosures and so devices.
      
      Also while there make some enclosure mapping errors more informative.
      
      MFC after:	1 month
      Sponsored by:	iXsystems, Inc.
      b99419ae
    • Tai-hwa Liang's avatar
      sound(4): fixing panic for INVARIANTS kernel · 2acbe677
      Tai-hwa Liang authored
      3e7bae08 turns the BUS_READ_IVAR() failure from a warning into a
      KASSERT.  For certain PCI audio devices such like snd_csa(4) and
      snd_emu10kx(4), the ac97_create() keeps the device handler generated
      by device_add_child(pci_dev, "pcm"), which is not really a PCI device
      handler.  This in turn causes the subsequent pci_get_subdevice()
      inside ac97_initmixer() triggering a panic.
      
      This patch tries to put a bandaid for the aforementioned pcm device
      children such that they can use the correct PCI handler(from parent)
      to avoid a KASSERT panic in the INVARIANTS kernel.
      
      Tested with:	snd_csa(4), snd_ich(4), snd_emu10kx(4)
      Reviewed by:	imp
      MFC after:	1 month
      2acbe677
  2. 23 Apr, 2021 10 commits
    • Rick Macklem's avatar
      nfsd: fix session slot handling for failed callbacks · 4281bfec
      Rick Macklem authored
      When the NFSv4.1/4.2 server does a callback to a client
      on the back channel, it will use a session slot in the
      back channel session. If the back channel has failed,
      the callback will fail and, without this patch, the
      session slot will not be released.
      As more callbacks are attempted, all session slots
      can become busy and then the nfsd thread gets stuck
      waiting for a back channel session slot.
      
      This patch frees the session slot upon callback
      failure to avoid this problem.
      
      Without this patch, the problem can be avoided by leaving
      delegations disabled in the NFS server.
      
      MFC after:	2 weeks
      4281bfec
    • Ed Maste's avatar
      openssh: add a note about pushing vendor updates · 576b477b
      Ed Maste authored
      Sponsored by:	The FreeBSD Foundation
      576b477b
    • Navdeep Parhar's avatar
      cxgbe(4): hw.cxgbe.panic_on_fatal_err can be changed any time. · 50f5d13e
      Navdeep Parhar authored
      MFC after:	2 weeks
      Sponsored by:	Chelsio Communications
      50f5d13e
    • John Baldwin's avatar
      etcupdate: Remove the old pre-world tree when rotating for -p. · b0df3658
      John Baldwin authored
      This fixes a bug in an earlier change to move tree rotation to
      the end of the update where the step to make room for the new
      preworld tree was deleting the old "current" tree instead of
      the old "preworld" tree.
      
      Reported by:	olivier, dhw
      Fixes:		0611aec3
      MFC after:	2 weeks
      b0df3658
    • Mark Johnston's avatar
      dtrace tests: Fix tst.system.d after ping/ping6 unification · d500a85e
      Mark Johnston authored
      MFC after:	1 week
      Sponsored by:	The FreeBSD Foundation
      d500a85e
    • Mark Johnston's avatar
      Re-enable network ioctls in capability mode · 8e8f1cc9
      Mark Johnston authored
      This reverts a portion of 27457983 ("capsicum: Limit socket
      operations in capability mode") as at least rtsol and dhcpcd rely on
      being able to configure network interfaces while in capability mode.
      
      Reported by:	bapt, Greg V
      Sponsored by:	The FreeBSD Foundation
      8e8f1cc9
    • Alex Richardson's avatar
      Correctly skip rtsock_l3 test when if_epair is not available · 69440752
      Alex Richardson authored
      This logic was accidentally changed in 67f2f67f
      
      Reported By:	olivier
      X-MFC-With:	67f2f67f
      Tested By:	kp
      Reviewed By:	kp, melifaro
      Fixes:		67f2f67f ("Update rtsock_l3 test after 2fe5a794")
      Differential Revision: https://reviews.freebsd.org/D29944
      69440752
    • Andrew Gallatin's avatar
      iflib: initialize LRO unconditionally · 3183d0b6
      Andrew Gallatin authored
      Changes to the LRO code have exposed a bug in iflib where devices
      which are not capable of doing LRO are still calling
      tcp_lro_flush_all(), even when they have not initialized the LRO
      context. This used to be mostly harmless, but the LRO code now sets
      the VNET based on the ifp in the lro context and will try to access it
      through a NULL ifp resulting in a panic at boot.
      
      To fix this, we unconditionally initializes LRO so that we have a
      valid LRO context when calling tcp_lro_flush_all(). One alternative is
      to check the device capabilities before calling tcp_lro_flush_all() or
      adding a new state flag in the ctx. However, it seems unwise to add an
      extra, mostly useless test for higher performance devices when we can
      just initialize LRO for all devices.
      
      Reviewed by: erj, hselasky, markj, olivier
      Sponsored by: Netflix
      Differential Revision: https://reviews.freebsd.org/D29928
      3183d0b6
    • Navdeep Parhar's avatar
      cxgbe(4): Move the hw-specific parts of VXLAN setup to a separate function. · 5f00292f
      Navdeep Parhar authored
      It can be called to (re)apply the settings in the driver softc to the
      hardware.
      
      MFC after:	2 weeks
      Sponsored by:	Chelsio Communications
      5f00292f
    • Navdeep Parhar's avatar
      cxgbe(4): Add flag to reliably stop the driver from accessing hw stats. · b47b28e5
      Navdeep Parhar authored
      There are two kinds of routines in the driver that read statistics from
      the hardware: the cxgbe_* variants read the per-port MPS/MAC registers
      and the vi_* variants read the per-VI registers.  They can be called
      from the 1Hz callout or if_get_counter.  All stats collection now takes
      place under the callout lock and there is a new flag to indicate that
      these routines should not access any hardware register.
      
      MFC after:	2 weeks
      Sponsored by:	Chelsio Communications
      b47b28e5
  3. 22 Apr, 2021 15 commits
  4. 19 Apr, 2021 1 commit
  5. 21 Apr, 2021 11 commits