]> CyberLeo.Net >> Repos - FreeBSD/stable/9.git/log
FreeBSD/stable/9.git
5 years agoMFC r343905:
hselasky [Fri, 15 Feb 2019 09:25:52 +0000 (09:25 +0000)]
MFC r343905:
Improve Bluetooth device discovery support for Android and Microsoft devices.

Tested using the virtual_bt_speaker(8) tool from the virtual_oss(8)
project at github.com.

PR: 210089
Sponsored by: Mellanox Technologies

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

5 years agoMFC r343572:
hselasky [Fri, 8 Feb 2019 10:31:45 +0000 (10:31 +0000)]
MFC r343572:
Add support for Audio Sink and Audio Source profiles to sdpd(8).

This allows user-space programs like virtual_oss(8) to act
as a Bluetooth speaker device.

Sponsored by: Mellanox Technologies

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

5 years agoMFC r342549:
hselasky [Thu, 3 Jan 2019 09:30:10 +0000 (09:30 +0000)]
MFC r342549:
Add USB quirk for SPL Crimson Rev 1.

PR: 234380
Sponsored by: Mellanox Technologies

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

5 years agoMFC r342456:
hselasky [Thu, 3 Jan 2019 09:29:37 +0000 (09:29 +0000)]
MFC r342456:
Fix reading of USB sample rate descriptor for SPL Crimson Rev 1.

Read first one entry, then try to read the full rate descriptor table.

PR: 234380
Sponsored by: Mellanox Technologies

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

5 years agoMFC r340248:
hselasky [Sun, 11 Nov 2018 12:35:30 +0000 (12:35 +0000)]
MFC r340248:
Don't read the USB audio sync endpoint when we don't use it to save
isochronous bandwidth.

Sponsored by: Mellanox Technologies

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

5 years agoMFC r339366
davidcs [Mon, 29 Oct 2018 21:46:12 +0000 (21:46 +0000)]
MFC r339366
Add support for Error Recovery

Submitted by:Vaishali.Kulkarni@cavium.com

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

5 years agoMFC r338734
davidcs [Mon, 29 Oct 2018 21:36:10 +0000 (21:36 +0000)]
MFC r338734

Fixed isses:
  State check before enqueuing transmit task in bxe_link_attn() routine.
  State check before invoking bxe_nic_unload in bxe_shutdown().

Submitted by:Vaishali.Kulkarni@cavium.com

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

5 years agoMFC r339587:
hselasky [Mon, 29 Oct 2018 12:13:05 +0000 (12:13 +0000)]
MFC r339587:
Added support for formula-based arbitrary baud rates, in contrast to
the current fixed values, which enables use of rates above 1 Mbps.
Improved the detection of HXD chips, and the status flag handling as
well.

Submitted by: Gabor Simon <gabor.simon75@gmail.com>
PR: 225932
Differential revision: https://reviews.freebsd.org/D16639
Sponsored by: Mellanox Technologies

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

5 years agoMFC r339582:
hselasky [Thu, 25 Oct 2018 14:57:33 +0000 (14:57 +0000)]
MFC r339582:
Drop sequencer mutex around uiomove() and make sure we don't move more bytes
than is available, else a panic might happen.

Found by: Peter Holm <peter@holm.cc>
Sponsored by: Mellanox Technologies

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

5 years agoMFC r339581:
hselasky [Thu, 25 Oct 2018 14:36:56 +0000 (14:36 +0000)]
MFC r339581:
Fix off-by-one which can lead to panics.

Found by: Peter Holm <peter@holm.cc>
Sponsored by: Mellanox Technologies

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

5 years agoMFC r339509: Fix loader.conf(5) "password" feature
dteske [Wed, 24 Oct 2018 23:31:33 +0000 (23:31 +0000)]
MFC r339509: Fix loader.conf(5) "password" feature

Restore the ability to prevent the user from interrupting the boot process
without first entering the password stored in loader.conf(5).

PR: kern/207069
Reported by: david@dcrosstech.com
Sponsored by: Smule, Inc.

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

5 years agoMFC r338200: Adding device ID for Terratec SiXPack 5.1+.
avatar [Wed, 10 Oct 2018 22:45:08 +0000 (22:45 +0000)]
MFC r338200: Adding device ID for Terratec SiXPack 5.1+.

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

5 years agoMFC r338993:
hselasky [Fri, 5 Oct 2018 07:52:28 +0000 (07:52 +0000)]
MFC r338993:
When multiple threads are involved receiving completion events in LibUSB
make sure there is always a master polling thread, by setting the "ctx_handler"
field in the context. Else the reception of completion events can stop.
This happens if event threads are created and destroyed during runtime.

Found by: Ludovic Rousseau <ludovic.rousseau+freebsd@gmail.com>
PR: 231742
Sponsored by: Mellanox Technologies

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

5 years agoMFC r338679:
hselasky [Wed, 19 Sep 2018 08:13:58 +0000 (08:13 +0000)]
MFC r338679:
Improve LibUSB debugging by simultaneously allowing both function
and transfer prints. Make sure the debug level comes from the
correct USB context.

Found by: Ludovic Rousseau <ludovic.rousseau+freebsd@gmail.com>
PR: 231264
Sponsored by: Mellanox Technologies

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

5 years agoMFC r338616:
hselasky [Wed, 19 Sep 2018 08:09:59 +0000 (08:09 +0000)]
MFC r338616:
Fix issues about cancelling USB transfers in LibUSB when the USB device has
been detached. When a USB device has been detached the kernel file handle
stops responding to commands. USB applications which continue to run after
the USB device has been detached, depend on LibUSB generated events to tear
down its pending USB transfers. Add code to handle the needed cleanup when
processing the USB transfer(s) fails and prevent new USB transfer(s) from
being submitted.

Found by: Ludovic Rousseau <ludovic.rousseau+freebsd@gmail.com>
PR: 231076
Sponsored by: Mellanox Technologies

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

5 years agoMFC r309748 (by glebius):
dim [Tue, 18 Sep 2018 20:46:55 +0000 (20:46 +0000)]
MFC r309748 (by glebius):

Treat R_X86_64_PLT32 relocs as R_X86_64_PC32.

If we load a binary that is designed to be a library, it produces
relocatable code via assembler directives in the assembly itself
(rather than compiler options).  This emits R_X86_64_PLT32 relocations,
which are not handled by the kernel linker.

Submitted by: gallatin
Reviewed by: kib
PR: 231451

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

5 years agoMFC r338038: Extending the delay cycles to give the codec more time to pump ADC data...
avatar [Sun, 26 Aug 2018 13:05:12 +0000 (13:05 +0000)]
MFC r338038: Extending the delay cycles to give the codec more time to pump ADC data across the AC-link.

Without this patch, some CS4614 cards will need users to reload the driver manually or
the hardware won't be initialised properly. Something like:

# kldload snd_csa
# kldunload snd_csa
# kldload snd_csa

Tested with: Terratec SiXPack 5.1+

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

5 years agoMFC SVN r336350: Send sysrc(8) error message to stderr (not stdout)
dteske [Fri, 10 Aug 2018 20:07:59 +0000 (20:07 +0000)]
MFC SVN r336350: Send sysrc(8) error message to stderr (not stdout)

PR: bin/229806
Reported by: Andreas Sommer <andreas.sommer87@googlemail.com>
Sponsored by: Smule, Inc.

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

5 years agoMFC r336438
davidcs [Thu, 9 Aug 2018 00:52:38 +0000 (00:52 +0000)]
MFC r336438

Fixes for  the following issues:
1. Fix taskqueues drain/free to fix panic seen when interface is being
   bought down and in parallel asynchronous link events happening.

2. Fix bxe_ifmedia_status()

Submitted by:Vaishali.Kulkarni@cavium.com and Anand.Khoje@cavium.com

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

5 years agoMFC r336632:
hselasky [Mon, 30 Jul 2018 09:29:32 +0000 (09:29 +0000)]
MFC r336632:
Update modify counter when setting a mixer control.

PR: 229969

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

5 years agoMFC r335700:
hselasky [Mon, 30 Jul 2018 09:22:21 +0000 (09:22 +0000)]
MFC r335700:
Improve the kernel's USB descriptor reading function.
Some USB devices does not allow a partial descriptor readout.

Found by: bz@
Sponsored by: Mellanox Technologies

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

5 years agoMFC r335669:
hselasky [Mon, 30 Jul 2018 09:18:45 +0000 (09:18 +0000)]
MFC r335669:
Improve the userspace USB string reading function in LibUSB.
Some USB devices does not allow a partial descriptor readout.

Found by: bz @
Sponsored by: Mellanox Technologies

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

5 years agoMFC r333004
davidcs [Wed, 9 May 2018 20:22:09 +0000 (20:22 +0000)]
MFC r333004
Fix Issue with adding MUltiCast Addresses. When multicast addresses are
added/deleted, the delete the multicast addresses previously programmed
in HW and reprogram the new set of multicast addresses.

Submitted by:Vaishali.Kulkarni@cavium.com

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

5 years agoMFC r333003
davidcs [Wed, 9 May 2018 18:39:31 +0000 (18:39 +0000)]
MFC r333003
Upgraded FW Related Files to version 5.4.67

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

6 years agoMFC r331739
davidcs [Thu, 5 Apr 2018 00:03:38 +0000 (00:03 +0000)]
MFC r331739
1. Add additional debug prints.
2. Break transmit when IFF_DRV_RUNNING is OFF.
3. set desc_count=0 for default case in switch in ql_rcv_isr()

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

6 years agoMFC r329855
davidcs [Tue, 6 Mar 2018 23:28:12 +0000 (23:28 +0000)]
MFC r329855
  1. Added support to offline a port if is error recovery on successful.
  2. Sysctls to enable/disable driver_state_dump and error_recovery.
  3. Sysctl to control the delay between hw/fw reinitialization and
     restarting the fastpath.
  4. Stop periodic stats retrieval if interface has IFF_DRV_RUNNING flag off.
  5. Print contents of PEG_HALT_STATUS1 and PEG_HALT_STATUS2 on heartbeat
     failure.
  6. Speed up slowpath shutdown during error recovery.
  7. link_state update using atomic_store.
  8. Added timestamp information on driver state and minidump captures.
  9. Added support for Slowpath event logging
  10.Added additional failure injection types to simulate failures.

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

6 years agoAvoid using the C++11 auto keyword, which was introduced in r328555, as
dim [Tue, 27 Feb 2018 19:02:49 +0000 (19:02 +0000)]
Avoid using the C++11 auto keyword, which was introduced in r328555, as
part of an upstream change.  This is not supported by gcc 4.2.1, which
is still the default system compiler for some architectures.

Direct commit to stable/9 and stable/10, since this does not apply to
stable/11 and head.

Reported by: jau@iki.fi
PR: 202665,226068

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

6 years agoMFC r328623:
hselasky [Thu, 1 Feb 2018 13:17:42 +0000 (13:17 +0000)]
MFC r328623:
Properly implement the cond_resched() function macro in the LinuxKPI.

Sponsored by: Mellanox Technologies

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

6 years agoPull in r217197 from upstream clang trunk (by Richard Smith):
dim [Mon, 29 Jan 2018 18:11:27 +0000 (18:11 +0000)]
Pull in r217197 from upstream clang trunk (by Richard Smith):

  PR20844: If we fail to list-initialize a reference, map to the
  referenced type before retrying the initialization to produce
  diagnostics. Otherwise, we may fail to produce any diagnostics, and
  silently produce invalid AST in a -Asserts build. Also add a note to
  this codepath to make it more clear why we were trying to create a
  temporary.

This should fix assertions when parsing some forms of incomplete list
intializers.

Direct commit to stable/9 and stable/10, since stable/11 and head
already have this upstream fix.

Reported by: ajcbowhill@gmail.com
PR: 202665

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

6 years agoMFC r289410:
bdrewery [Wed, 10 Jan 2018 21:59:21 +0000 (21:59 +0000)]
MFC r289410:

  Avoid warning race with creating 'ldscripts' directory during build.

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

6 years agoMFC r327164:
dim [Mon, 1 Jan 2018 20:39:12 +0000 (20:39 +0000)]
MFC r327164:

Fix clang 6.0.0 compiler warnings in binutils

Latest clang git has a warning -Wnull-pointer-arithmetic which will
trigger a -Werror failure. Addition and subtraction from a null pointer
is undefined behaviour and could be optimized into anything.

Furthermore, using the difference between two pointers and casting the
result back to a pointer is not portable since the size of ptrdiff_t
does not necessary have to be the same as size of void* (this happens
e.g. on CHERI). Using intptr_t instead fixes this portability issue and
the compiler warning.

Submitted by; Alexander Richardson
Obtained from: CheriBSD
Differential Revision: https://reviews.freebsd.org/D12928

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

6 years agoMFC r327167:
dim [Mon, 1 Jan 2018 20:24:16 +0000 (20:24 +0000)]
MFC r327167:

Remove obsolete register keyword from opensolaris's sysmacros.h.  When
compiling zfsd with recent clang, it leads to a warning about the
register storage class being incompatible with C++17.

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

6 years agoMFC r326880:
dim [Tue, 19 Dec 2017 11:44:24 +0000 (11:44 +0000)]
MFC r326880:

Pull in r320755 from upstream clang trunk (by me):

  Don't trigger -Wuser-defined-literals for system headers

  Summary:
  In D41064, I proposed adding `#pragma clang diagnostic ignored
  "-Wuser-defined-literals"` to some of libc++'s headers, since these
  warnings are now triggered by clang's new `-std=gnu++14` default:

  $ cat test.cpp
  #include <string>

  $ clang -std=c++14 -Wsystem-headers -Wall -Wextra -c test.cpp
  In file included from test.cpp:1:
  In file included from /usr/include/c++/v1/string:470:
  /usr/include/c++/v1/string_view:763:29: warning: user-defined literal suffixes not starting with '_' are reserved [-Wuser-defined-literals]
      basic_string_view<char> operator "" sv(const char *__str, size_t __len)
                              ^
  /usr/include/c++/v1/string_view:769:32: warning: user-defined literal suffixes not starting with '_' are reserved [-Wuser-defined-literals]
      basic_string_view<wchar_t> operator "" sv(const wchar_t *__str, size_t __len)
                                 ^
  /usr/include/c++/v1/string_view:775:33: warning: user-defined literal suffixes not starting with '_' are reserved [-Wuser-defined-literals]
      basic_string_view<char16_t> operator "" sv(const char16_t *__str, size_t __len)
                                  ^
  /usr/include/c++/v1/string_view:781:33: warning: user-defined literal suffixes not starting with '_' are reserved [-Wuser-defined-literals]
      basic_string_view<char32_t> operator "" sv(const char32_t *__str, size_t __len)
                                  ^
  In file included from test.cpp:1:
  /usr/include/c++/v1/string:4012:24: warning: user-defined literal suffixes not starting with '_' are reserved [-Wuser-defined-literals]
      basic_string<char> operator "" s( const char *__str, size_t __len )
                         ^
  /usr/include/c++/v1/string:4018:27: warning: user-defined literal suffixes not starting with '_' are reserved [-Wuser-defined-literals]
      basic_string<wchar_t> operator "" s( const wchar_t *__str, size_t __len )
                            ^
  /usr/include/c++/v1/string:4024:28: warning: user-defined literal suffixes not starting with '_' are reserved [-Wuser-defined-literals]
      basic_string<char16_t> operator "" s( const char16_t *__str, size_t __len )
                             ^
  /usr/include/c++/v1/string:4030:28: warning: user-defined literal suffixes not starting with '_' are reserved [-Wuser-defined-literals]
      basic_string<char32_t> operator "" s( const char32_t *__str, size_t __len )
                             ^
  8 warnings generated.

  Both @aaron.ballman and @mclow.lists felt that adding this workaround
  to the libc++ headers was the wrong way, and it should be fixed in
  clang instead.

  Here is a proposal to do just that.  I verified that this suppresses
  the warning, even when -Wsystem-headers is used, and that the warning
  is still emitted for a declaration outside of system headers.

  Reviewers: aaron.ballman, mclow.lists, rsmith

  Reviewed By: aaron.ballman

  Subscribers: mclow.lists, aaron.ballman, andrew, emaste, cfe-commits

  Differential Revision: https://reviews.llvm.org/D41080

This will allow to compile some of the libc++ headers in C++14 mode
(which is the default for gcc 6 and higher, and will be the default for
clang 6.0.0 and higher), with -Wsystem-headers and -Werror enabled.

Reported by: andrew

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

6 years agoMFC r326362:
hselasky [Fri, 8 Dec 2017 15:30:59 +0000 (15:30 +0000)]
MFC r326362:
Disallow TUN and TAP character device IOCTLs to modify the network device
type to any value. This can cause page faults and panics due to accessing
uninitialized fields in the "struct ifnet" which are specific to the network
device type.

Found by: jau@iki.fi
PR: 223767
Sponsored by: Mellanox Technologies

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

6 years agoMFC r326161:
hselasky [Mon, 4 Dec 2017 09:48:31 +0000 (09:48 +0000)]
MFC r326161:
Implement atomic_fetchadd_64() for i386. This function is needed by the
atomic64 header file in the LinuxKPI for i386.

Reviewed by: kib
Sponsored by: Mellanox Technologies

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

6 years agoMFC r326392:
hselasky [Mon, 4 Dec 2017 09:36:47 +0000 (09:36 +0000)]
MFC r326392:
Properly define the VLAN_XXX() function macros to avoid miscompilation when
used inside "if" statements comparing with another value.

Detailed explanation:
"if (a ? b : c != 0)" is not the same like "if ((a ? b : c) != 0)"
which is the expected behaviour of a function macro.

Affects:
toecore, linuxkpi and ibcore.

Reviewed by: kib
Sponsored by: Mellanox Technologies

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

6 years agoMFC r325533:
hselasky [Fri, 17 Nov 2017 15:32:27 +0000 (15:32 +0000)]
MFC r325533:
Make the dma_alloc_coherent() function in the LinuxKPI NULL safe with regard
to the "dev" argument.

Submitted by: Krishnamraju Eraparaju @ Chelsio
Sponsored by: Chelsio Communications

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

6 years agoMFC r324445:
hselasky [Fri, 20 Oct 2017 10:07:17 +0000 (10:07 +0000)]
MFC r324445:
When showing the sleepqueues from the in-kernel debugger,
properly dump all the sleepqueues and not just the first one

History:
It appears that in the commit which introduced the code,
r165272, the array indexes of "sq_blocked[0]" and "td_name[i]"
were interchanged. In r180927 "td_name[i]" was corrected to
"td_name[0]", but "sq_blocked[0]" was left unchanged.

PR: 222624
Discussed with: kmacy @
Sponsored by: Mellanox Technologies

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

6 years agoMFC r324538
davidcs [Thu, 19 Oct 2017 17:57:38 +0000 (17:57 +0000)]
MFC r324538
Added support driver state capture/retrieval

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

6 years agoMFC r324535
davidcs [Thu, 19 Oct 2017 17:40:51 +0000 (17:40 +0000)]
MFC r324535
Add sanity checks in ql_hw_send() qla_send() to ensure that empty slots
in Tx Ring map to empty slot in Tx_buf array before Transmits. If the
checks fail further Transmission on that Tx Ring is prevented.

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

6 years agoMFC r324065
davidcs [Thu, 5 Oct 2017 19:03:50 +0000 (19:03 +0000)]
MFC r324065
Tx Ring Shadow Consumer Index Register needs to be cleared prior
to passing it's physical address to the FW during Tx Create Context.

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

6 years agoMFC r324026
davidcs [Thu, 5 Oct 2017 19:01:47 +0000 (19:01 +0000)]
MFC r324026
Fix delete all multicast addresses

Submitted by: Anand.Khoje@cavium.com

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

6 years agoMFC r323824
davidcs [Tue, 26 Sep 2017 22:32:08 +0000 (22:32 +0000)]
MFC r323824
1. ql_hw.c:
 In ql_hw_send() return EINVAL when TSO framelength exceeds max
 supported length by HW.(davidcs)
2. ql_os.c:
 In qla_send() call bus_dmamap_unload before freeing mbuf or
 recreating dmmamap.(davidcs)
 In qla_fp_taskqueue() Add additional checks for IFF_DRV_RUNNING
 Fix qla_clear_tx_buf() call bus_dmamap_sync() before freeing
 mbuf.

Submitted by: David.Bachu@netapp.com

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

6 years agoMFC r323782
davidcs [Tue, 26 Sep 2017 22:29:43 +0000 (22:29 +0000)]
MFC r323782
Add sysctl "enable_minidump" to turn on/off automatic minidump retrieval

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

6 years agoMFC r323781
davidcs [Tue, 26 Sep 2017 22:28:00 +0000 (22:28 +0000)]
MFC r323781
Update minidump template for version 5.4.66

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

6 years agoMFC r322530 and r323220:
hselasky [Wed, 20 Sep 2017 14:46:24 +0000 (14:46 +0000)]
MFC r322530 and r323220:
Add new USB quirk(s).

PR: 221775
PR: 221328
Sponsored by: Mellanox Technologies

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

6 years agoMFC r323001:
dim [Tue, 5 Sep 2017 17:35:33 +0000 (17:35 +0000)]
MFC r323001:

In compiler-rt, a few assembler implementations for i386 floating point
conversion functions use SSE2 instructions, but these are not guarded by
#ifdef __SSE2__, and there is no implementation using general purpose
registers.  For these functions, use the generic C variants instead,
otherwise they will cause SIGILL on older processors.

Reported by:  bsdpr@phoe.frmug.org
PR:           221733

MFC r323014:

Follow-up to r323001: if the actually selected CPUTYPE is capable of
SSE2 instructions, we can use them.

Suggested by: jkim

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

6 years agoMFC 322771
davidcs [Mon, 28 Aug 2017 18:01:36 +0000 (18:01 +0000)]
MFC 322771

Upgrade FW to 5.4.66
sysctls to display stats, stats polled every 2 seconds
Modify QLA_LOCK()/QLA_UNLOCK() to not sleep after acquiring mtx_lock
Add support to turn OFF/ON error recovery following heartbeat failure for
debug purposes.
Set default max values to 32 Tx/Rx/SDS rings

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

6 years agoMFC r322248:
hselasky [Tue, 15 Aug 2017 12:28:16 +0000 (12:28 +0000)]
MFC r322248:
Fix for mlx4en(4) to properly call m_defrag().

The m_defrag() function can only defrag mbuf chains which have a valid
mbuf packet header. In r291699 when the mlx4en(4) driver was converted
into using BUSDMA(9), the call to m_defrag() was moved after the part
of the transmit routine which strips the header from the mbuf chain.
This effectivly disabled the mbuf defrag mechanism and such packets
simply got dropped.

This patch removes the stripping of mbufs from a chain and loads all
mbufs using busdma. If busdma finds there are no segments, unload
the DMA map and free the mbuf right away, because that means all
data in the mbuf has been inlined in the TX ring. Else proceed
as usual.

Add a per-ring rounter for the number of defrag attempts and
make sure the oversized_packets counter gets zeroed while at it.

The counters are per-ring to avoid excessive cache misses in the
TX path.

Submitted by: mjoras@
Differential Revision: https://reviews.freebsd.org/D11683
Sponsored by: Mellanox Technologies

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

6 years agoMFC r322306:
hselasky [Mon, 14 Aug 2017 13:37:46 +0000 (13:37 +0000)]
MFC r322306:
Print maximum MTU when trying to set invalid MTU in the mlx4en(4) driver.
Useful for debugging.

Submitted by: Sepherosa Ziehau <sephe@dragonflybsd.org>
Sponsored by: Mellanox Technologies

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

6 years agoMFC r322304:
hselasky [Mon, 14 Aug 2017 13:27:08 +0000 (13:27 +0000)]
MFC r322304:
Add support for RX and TX statistics when the mlx4en(4) PCI device
is in VF or SRIOV mode typically in a virtual machine environment.

Submitted by: Sepherosa Ziehau <sephe@dragonflybsd.org>
Sponsored by: Mellanox Technologies

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

6 years agoMFC r289577:
hselasky [Mon, 14 Aug 2017 13:25:35 +0000 (13:25 +0000)]
MFC r289577:
Merge LinuxKPI changes from DragonflyBSD:
- Map more Linux compiler related defines to FreeBSD ones.

Sponsored by: Mellanox Technologies

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

6 years agoMFC r292537 and r314878:
hselasky [Mon, 14 Aug 2017 13:15:13 +0000 (13:15 +0000)]
MFC r292537 and r314878:
Implement ACCESS_ONCE(), WRITE_ONCE() and READ_ONCE().

Sponsored by: Mellanox Technologies

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

6 years agoMFC r321782:
hselasky [Mon, 7 Aug 2017 13:27:35 +0000 (13:27 +0000)]
MFC r321782:
Remove some dead statistics related code and a structure field from the
mlx4en driver which is used by its Linux counterpart, but not under
FreeBSD.

Sponsored by: Mellanox Technologies

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

6 years agoMFC r321772:
hselasky [Mon, 7 Aug 2017 13:17:57 +0000 (13:17 +0000)]
MFC r321772:
Fix broken usage of the mlx4_read_clock() function:
 - return value has too small width
 - cycle_t is unsigned and cannot be less than zero

Sponsored by: Mellanox Technologies

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

6 years agoMFC r321780:
hselasky [Mon, 7 Aug 2017 13:07:58 +0000 (13:07 +0000)]
MFC r321780:
Make sure on-stack buffer is properly aligned.

Sponsored by: Mellanox Technologies

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

6 years agoMFC r321986:
hselasky [Mon, 7 Aug 2017 12:59:32 +0000 (12:59 +0000)]
MFC r321986:
Change reject message type when destroying cm_id in ibore.

This patch fixes an interopability issue between FreeBSD and non-FreeBSD
systems when the connection establishment is aborted. Refer to the
initial commit in Linux, drivers/infiniband/core/cm.c,
for a more detailed description.

Obtained from: Linux
Sponsored by: Mellanox Technologies

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

6 years agoMFC r321985:
hselasky [Mon, 7 Aug 2017 12:56:03 +0000 (12:56 +0000)]
MFC r321985:
Ticks are 32-bit in FreeBSD.

Sponsored by: Mellanox Technologies

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

6 years agoMFC r320941: Fix GRE over IPv6 tunnels with IPFW
philip [Tue, 1 Aug 2017 13:40:37 +0000 (13:40 +0000)]
MFC r320941: Fix GRE over IPv6 tunnels with IPFW

Previously, GRE packets in IPv6 tunnels would be dropped by IPFW (unless
net.inet6.ip6.fw.deny_unknown_exthdrs was unset).

PR: 220640
Submitted by: Kun Xie <kxie@xiplink.com>

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

6 years agoMFC 321233
davidcs [Wed, 26 Jul 2017 01:48:57 +0000 (01:48 +0000)]
MFC 321233
Raise the watchdog timer interval to 2 ticks, there by guaranteeing
that it fires between 1ms and 2ms. `
Treat two consecutive occurrences of Heartbeat failures as a legitimate
Heartbeat failure

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

6 years agoMFC 320705
davidcs [Wed, 26 Jul 2017 01:46:25 +0000 (01:46 +0000)]
MFC 320705
Release mtx hw_lock before calling pause() in qla_stop() and
qla_error_recovery()

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

6 years agoMFC 320694
davidcs [Wed, 26 Jul 2017 01:43:44 +0000 (01:43 +0000)]
MFC 320694
Allow MTU changes without ifconfig down/up

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

6 years agoMFC r320876:
hselasky [Thu, 13 Jul 2017 15:12:01 +0000 (15:12 +0000)]
MFC r320876:
Make sure the mlx4en RX DMA ring gets stamped with software ownership
in order to prevent the flow of QP to error in the firmware once
UPDATE_QP is called.

Sponsored by: Mellanox Technologies

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

6 years agoMFC r320494: Fix double free by reverting r300385 and r300624 which was
delphij [Mon, 3 Jul 2017 02:18:10 +0000 (02:18 +0000)]
MFC r320494: Fix double free by reverting r300385 and r300624 which was
false positive reported by cppcheck.

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

6 years agoMFC r320175
davidcs [Mon, 26 Jun 2017 19:40:10 +0000 (19:40 +0000)]
MFC r320175
Add pkts_cnt_oversized to stats.

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

6 years agoMFC r320216: Fix use-after-free introduced in r300388.
delphij [Sun, 25 Jun 2017 06:55:42 +0000 (06:55 +0000)]
MFC r320216: Fix use-after-free introduced in r300388.

In r300388, endnetconfig() was called on nc_handle which would release
the associated netconfig structure, which means tmpnconf->nc_netid
would be a use-after-free.

Solve this by doing endnetconfig() in return paths instead.

Reported by: jemalloc via kevlo
Reviewed by: cem, ngie (earlier version)

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

6 years agoMFC r319972:
hselasky [Sun, 18 Jun 2017 11:50:09 +0000 (11:50 +0000)]
MFC r319972:
Use static device numbering instead of dynamic one when creating
mlx4en network interfaces. This prevents infinite unit number growth
typically when the mlx4en driver is used inside virtual machines which
support runtime PCI attach and detach.

Sponsored by: Mellanox Technologies

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

6 years agoMFC r319413:
hselasky [Sun, 4 Jun 2017 08:48:26 +0000 (08:48 +0000)]
MFC r319413:
Free hardware queue resource after port is stopped in the mlx4en(4)
driver. Else if the port is up the resource might still be busy and
the MTT free will fail.

PR: 216493
Sponsored by: Mellanox Technologies

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

6 years agoMFC r319414:
hselasky [Sun, 4 Jun 2017 08:30:55 +0000 (08:30 +0000)]
MFC r319414:
Allow communication between functions on the same host when using the
mlx4en(4) driver in SRIOV mode.

Place a copy of the destination MAC address in the send WQE only under
SRIOV/eSwitch configuration or when the device is in selftest. This
allows communication between functions on the same host.

PR: 216493
Sponsored by: Mellanox Technologies

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

6 years agoMFC r318860:
hselasky [Sun, 28 May 2017 10:45:28 +0000 (10:45 +0000)]
MFC r318860:
Declare the "snd_fxdiv_table" once. This shaves around 24Kbytes of
binary data from sound.ko and the kernel.

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

6 years agoMFC r318820:
hselasky [Sat, 27 May 2017 08:28:51 +0000 (08:28 +0000)]
MFC r318820:
Increase the allowed maximum number of audio channels from 31 to 127
in the PCM feeder mixer. Without this change a value of 32 channels is
treated like zero, due to using a mask of 0x1f, causing a kernel
assert when trying to playback bitperfect 32-channel audio. Also
update the AWK script which is generating the division tables to
handle more than 18 channels. This commit complements r282650.

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

6 years agoMFC r318531:
hselasky [Mon, 22 May 2017 08:20:50 +0000 (08:20 +0000)]
MFC r318531:

mlx4: Use the CQ quota for SRIOV when creating completion EQs

When creating EQs to handle CQ completion events for the PF or for
VFs, we create enough EQE entries to handle completions for the max
number of CQs that can use that EQ.

When SRIOV is activated, the max number of CQs a VF (or the PF) can
obtain is its CQ quota (determined by the Hypervisor resource
tracker).  Therefore, when creating an EQ, the number of EQE entries
that the VF should request for that EQ is the CQ quota value (and not
the total number of CQs available in the firmware).

Under SRIOV, the PF, also must use its CQ quota, because the resource
tracker also controls how many CQs the PF can obtain.

Using the firmware total CQs instead of the CQ quota when creating EQs
resulted wasting MTT entries, due to allocating more EQEs than were
needed.

Sponsored by: Mellanox Technologies

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

6 years agoMFC r317505:
hselasky [Fri, 19 May 2017 13:05:40 +0000 (13:05 +0000)]
MFC r317505:
Don't free uninitialized sysctl contexts in the mlx4en driver. This
can cause NULL pointer panics during failed device attach.

Differential Revision: https://reviews.freebsd.org/D8876
Sponsored by: Mellanox Technologies

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

6 years agoMFC r313555:
hselasky [Fri, 19 May 2017 12:56:18 +0000 (12:56 +0000)]
MFC r313555:
Flexible and asymmetric allocation of EQs and MSI-X vectors for PF/VFs.

Previously, the mlx4 driver queried the firmware in order to get the
number of supported EQs. Under SRIOV, since this was done before the
driver notified the firmware how many VFs it actually needs, the
firmware had to take into account a worst case scenario and always
allocated four EQs per VF, where one was used for events while the
others were used for completions. Now, when the firmware supports the
asymmetric allocation scheme, denoted by exposing num_sys_eqs > 0 (-->
MLX4_DEV_CAP_FLAG2_SYS_EQS), we use the QUERY_FUNC command to query
the firmware before enabling SRIOV. Thus we can get more EQs and MSI-X
vectors per function. Moreover, when running in the new
firmware/driver mode, the limitation that the number of EQs should be
a power of two is lifted.

Obtained from: Linux (dual BSD/GPLv2 licensed)
Submitted by: Dexuan Cui @ microsoft . com
Differential Revision: https://reviews.freebsd.org/D8867
Sponsored by: Mellanox Technologies

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

6 years agoMFC r313556:
hselasky [Fri, 19 May 2017 12:42:33 +0000 (12:42 +0000)]
MFC r313556:
Change mlx4 QP allocation scheme.

When using Blue-Flame, BF, the QPN overrides the VLAN, CV, and SV
fields in the WQE. Thus, BF may only be used for QPNs with bits 6,7
unset.

The current ethernet driver code reserves a TX QP range with 256b
alignment.

This is wrong because if there are more than 64 TX QPs in use, QPNs >=
base + 65 will have bits 6/7 set.

This problem is not specific for the Ethernet driver, any entity that
tries to reserve more than 64 BF-enabled QPs should fail. Also, using
ranges is not necessary here and is wasteful.

The new mechanism introduced here will support reservation for "Eth
QPs eligible for BF" for all drivers: bare-metal, multi-PF, and VFs
(when hypervisors support WC in VMs). The flow we use is:

1. In mlx4_en, allocate Tx QPs one by one instead of a range allocation,
   and request "BF enabled QPs" if BF is supported for the function

2. In the ALLOC_RES FW command, change param1 to:
a. param1[23:0]  - number of QPs
b. param1[31-24] - flags controlling QPs reservation

Bit 31 refers to Eth blueflame supported QPs. Those QPs must have bits
6 and 7 unset in order to be used in Ethernet.

Bits 24-30 of the flags are currently reserved.

When a function tries to allocate a QP, it states the required
attributes for this QP. Those attributes are considered "best-effort".
If an attribute, such as Ethernet BF enabled QP, is a must-have
attribute, the function has to check that attribute is supported
before trying to do the allocation.

In a lower layer of the code, mlx4_qp_reserve_range masks out the bits
which are unsupported. If SRIOV is used, the PF validates those
attributes and masks out unsupported attributes as well. In order to
notify VFs which attributes are supported, the VF uses QUERY_FUNC_CAP
command. This command's mailbox is filled by the PF, which notifies
which QP allocation attributes it supports.

Obtained from: Linux (dual BSD/GPLv2 licensed)
Submitted by: Dexuan Cui @ microsoft . com
Differential Revision: https://reviews.freebsd.org/D8868
Sponsored by: Mellanox Technologies

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

6 years agoMFC r317584:
hselasky [Tue, 16 May 2017 07:22:41 +0000 (07:22 +0000)]
MFC r317584:
Correct manual page link to usbdi(9).

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

6 years agoMFC r317996
davidcs [Mon, 15 May 2017 18:24:14 +0000 (18:24 +0000)]
MFC r317996
Fix bug where MTX_DEF lock was held while taskqueue_drain() was invoked.
Check IFF_DRV_RUNNING flag is set prior to calling ql_hw_set_multi()

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

6 years agoMFC r317180
davidcs [Mon, 8 May 2017 22:44:16 +0000 (22:44 +0000)]
MFC r317180
Cleanup QLA_LOCK/QLA_UNLOCK macros
remove unused QLA_TX_LOCK/QLA_TX_UNLOCK macros
format qla_error_recovery()

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

6 years agoMFC: r317236
rmacklem [Sun, 7 May 2017 20:32:07 +0000 (20:32 +0000)]
MFC: r317236
Fix the setting of atime for Linux client NFSv4 mounts.

The FreeBSD NFSv4 server did not set the attribute bit for TimeAccess in
the reply to an Open with exclusive_create, as required by the RFCs.
(This is required since the FreeBSD NFS server stores the create_verifier
 in the va_atime attribute.)
As such, the Linux NFSv4 client did not set the TimeAccess (atime) in
the Setattr done in an RPC after the one with the Open/exclusive_create.
This patch fixes the server to set the TimeAccess bit in the reply.

I believe that storing the create_verifier in an extended attribute for
file systems that support extended attributes might be a good idea,
but I will wait for a discussion of this on the freebsd-fs@ email list
before considering committing a patch to do this.

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

7 years agoMFC: r316667
rmacklem [Wed, 26 Apr 2017 23:32:57 +0000 (23:32 +0000)]
MFC: r316667
Fix the NFSv4 client hndling of a stale write verifier in the Commit operation.

When the NFSv4 client Commit operation encountered a stale write verifier,
it erroneously mapped that to EIO. This could have caused recently written
data to be lost when a server crashes/reboots between an UNSTABLE write
and the subsequent commit. This patch fixes this.
The bug was only for the NFSv4 client and did not affect NFSv3.

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

7 years agoMFC r316183
davidcs [Thu, 20 Apr 2017 04:36:49 +0000 (04:36 +0000)]
MFC r316183
Upgrade firmware and other related files to version 5.4.64

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

7 years agoMFC r316310
davidcs [Wed, 19 Apr 2017 03:03:46 +0000 (03:03 +0000)]
MFC r316310
  Update man page for commit r316309 "Add support for optional Soft LRO".
  The driver provides the ability to select either HW or Software LRO, when
  LRO is enabled (default HW LRO).

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

7 years agoMFC r316309
davidcs [Wed, 19 Apr 2017 03:02:23 +0000 (03:02 +0000)]
MFC r316309
Add support for optional Soft LRO

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

7 years agoSynchronize libcxxrt in stable/9 with stable/{10,11} and head.
dim [Sat, 1 Apr 2017 12:27:02 +0000 (12:27 +0000)]
Synchronize libcxxrt in stable/9 with stable/{10,11} and head.

MFC r284549 (by emaste):

Import libcxxrt master e64e93fe5bba67a6d52cbe5a97f8770c054bfa65

This includes a number of fixes to the C++ demangler (obtained from
upstream ELF Tool Chain).

MFC r284551 (by emaste):

Import libcxxrt master e64e93fe5bba67a6d52cbe5a97f8770c054bfa65.

This includes a number of demangler fixes obtained from upstream
ELF Tool Chain.

PR: 200913
Sponsored by: The FreeBSD Foundation

MFC r284553 (by emaste):

Update libcxxrt upgrade instructions

The typeinfo file no longer exists upstream.

MFC r288830:

Add std::uncaught_exceptions() to libcxxrt (C++17, see N4152 and N4259).
This has also been submitted upstream.

MFC r288830:

Add std::uncaught_exceptions() to libcxxrt (C++17, see N4152 and N4259).
This has also been submitted upstream.

MFC r297299:

Compile libcxxrt as C++11, since it is only really used in combination
with libc++, which is also C++11.  Also change one _Static_assert (which
is really C11) back into static_assert, like upstream.

This should help when compiling libcxxrt with newer versions of gcc,
which refuse to recognize any form of static assertions, if not
compiling for C++11 or higher.

While here, add -nostdinc++ to CFLAGS, to prevent picking up any C++
headers outside the source tree.

MFC r299144:

Import libcxxrt master 516a65c109eb0a01e5e95fbef455eb3215135cef.

Interesting fixes:
3adaa2e Fix _Unwind_Exception cleanup functions
286776c Check exception cleanup function ptr before calling
edda626 Correct exception specifications on new and delete operators

MFC r303157 (by emaste):

libcxxrt: add padding in __cxa_allocate_* to fix alignment

The addition of the referenceCount to __cxa_allocate_exception put the
unwindHeader at offset 0x58 in __cxa_exception, but it requires 16-byte
alignment. In order to avoid changing the current __cxa_exception ABI
(and thus breaking its consumers), add explicit padding in the
allocation routines (and account for it when freeing).

This is intended as a lower-risk change for FreeBSD 11. A "more correct"
fix should be prepared for upstream and -CURRENT.

Reviewed by: dim
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D7271

MFC r303400 (by emaste):

libcxxrt: fix demangling of wchar_t

'wchar_t' is 7 characters long, not 6. r303297 fixed this in libelftc,
but not the second copy of this file that we have in libcxxrt.

PR: 208661
Submitted by: Daniel McRobb
Obtained from: ELF Tool Chain r3480

MFC r305396:

Add _US_ACTION_MASK to libcxxrt's arm-specific unwind header.  This
value is used in newer versions of compiler-rt.

MFC r315947 | dim | 2017-03-25 14:17:48 +0100 (Sat, 25 Mar 2017) | 8 lines

Import libcxxrt master 8a853717e61d5d55cbdf74d9d0a7545da5d5ff92.

Interesting fixes which were not already merged:
0c7c611 Merge C++ demangler bug fixes from ELF Tool Chain (#40)
2b208d9 __cxa_demangle_gnu3: demangle 'z' as '...', not 'ellipsis' (#41)

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

7 years agoMFC r315745:
dim [Sat, 25 Mar 2017 12:29:15 +0000 (12:29 +0000)]
MFC r315745:

Cherry-pick libcxxrt commit 8a853717e61d5d55cbdf74d9d0a7545da5d5ff92:

Author: David Chisnall <theraven@FreeBSD.org>
Date:   Wed Mar 22 12:27:08 2017 +0000

    Simplify some code.

    realloc() with a null pointer is equivalent to malloc, so we don't need
    to handle the two cases independently.

    Fixes #46

This should help with lang/beignet and other programs, which expect
__cxa_demangle(name, NULL, NULL, &status) to return zero in status.

PR: 213732

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

7 years agoPull in r283944 from upstream libc++ trunk (by Eric Fiselier):
dim [Fri, 24 Mar 2017 18:28:13 +0000 (18:28 +0000)]
Pull in r283944 from upstream libc++ trunk (by Eric Fiselier):

  Fix std::pair on FreeBSD

  Summary:
  FreeBSD ships an old ABI for std::pair which requires that it have
  non-trivial copy/move constructors. Currently the non-trivial
  copy/move is achieved by providing explicit definitions of the
  constructors. This is problematic because it means the constructors
  don't SFINAE properly. In order to SFINAE copy/move constructors they
  have to be explicitly defaulted and hense non-trivial.

  This patch attempts to provide SFINAE'ing copy/move constructors for
  std::pair while still making them non-trivial. It does this by adding
  a base class with a non-trivial copy constructor and then allowing
  pair's constructors to be generated by the compiler. This also allows
  the constructors to be constexpr.

  Reviewers: emaste, theraven, rsmith, dim

  Subscribers: cfe-commits

  Differential Revision: https://reviews.llvm.org/D25389

This should fix building www/chromium 57.0.2987.110 on stable/10 and
stable/9 without having to use -D_LIBCPP_TRIVIAL_PAIR_COPY_CTOR=1 (which
changes the ABI).  Direct commit to stable/10 and stable/9, since head
already has libc++ 4.0, which includes this fix.

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

7 years agoMFC r314365
davidcs [Fri, 24 Mar 2017 03:17:59 +0000 (03:17 +0000)]
MFC r314365
    1. state checks in bxe_tx_mq_start_locked() and bxe_tx_mq_start() to
       sync threads during interface down or detach.
    2. add sysctl to set pause frame parameters
    3. increase max segs for TSO packets to BXE_TSO_MAX_SEGMENTS (32)
    4. add debug messages for PHY
    5. HW LRO support restricted to FreeBSD versions 8.x and above.

Submitted by: Vaishali.Kulkarni@cavium.com

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

7 years agoMFC r315206:
ngie [Mon, 20 Mar 2017 03:18:16 +0000 (03:18 +0000)]
MFC r315206:

bsnmpd: fix segfault when trans_insert_port(..) is called with multiple
out of order addresses

Move `port->transport` initialization before the TAILQ_FOREACH(..) loop
to ensure that the value is properly initialized before it's inserted
into the TAILQ.

PR: 217760

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

7 years agoMFC r314553:
hselasky [Tue, 14 Mar 2017 16:01:36 +0000 (16:01 +0000)]
MFC r314553:

Implement taskqueue_poll_is_busy() for use by the LinuxKPI.
Refer to comment above function for a detailed description.

Discussed with: kib @
Sponsored by: Mellanox Technologies

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

7 years agoMFC r314328:
hselasky [Tue, 14 Mar 2017 15:57:21 +0000 (15:57 +0000)]
MFC r314328:

Fix startup race initialising ACPI CM battery structures on MacBookPro.

During acpi_cmbat_attach() the acpi_cmbat_init_battery() notification
handler is registered. It has been observed this notification handler
can be called instantly, before the attach routine has returned. In
the notification handler there is a call to device_is_attached() which
returns false. Because the softc is set we know an attach is in
progress and the fix is simply to wait and try again in this case.

Reviewed by: avg @

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

7 years agoMFC r313941:
hselasky [Tue, 14 Mar 2017 15:52:01 +0000 (15:52 +0000)]
MFC r313941:

Make sure the thread constructor and destructor eventhandlers are
called for all threads belonging to a procedure. Currently the first
thread in a procedure is kept around as an optimisation step and is
never freed. Because the first thread in a procedure is never freed
nor allocated, its destructor and constructor callbacks are never
called which means per thread structures allocated by dtrace and the
Linux emulation layers for example, might be present for threads which
don't need these structures.

This patch adds a thread construction and destruction call for the
first thread in a procedure.

Tested: dtrace, linux emulation
Reviewed by: kib @
Sponsored by: Mellanox Technologies

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

7 years agoMFC r313778:
hselasky [Tue, 14 Mar 2017 15:47:17 +0000 (15:47 +0000)]
MFC r313778:

Improve code readability and fix compilation error when using clang 4.x.

Found by: emaste @
Sponsored by: Mellanox Technologies

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

7 years agoMFC r312424:
hselasky [Tue, 14 Mar 2017 15:30:46 +0000 (15:30 +0000)]
MFC r312424:

Fix problem with suspend and resume when using Skylake chipsets. Make
sure the XHCI controller is reset after halting it. The problem is
clearly a BIOS bug as the suspend and resume is failing without
loading the XHCI driver. The same happens when using Linux and the
XHCI driver is not loaded.

Submitted by: Yanko Yankulov <yanko.yankulov@gmail.com>
PR: 216261

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

7 years agoMFC r312338:
hselasky [Tue, 14 Mar 2017 15:25:49 +0000 (15:25 +0000)]
MFC r312338:

Add USB audio support for S/PDIF output with C-Media CM6206 devices.

Submitted by: Julien Nadeau <vedge@hypertriton.com>
PR: 216131

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

7 years agoMFC r314062
davidcs [Mon, 6 Mar 2017 20:47:53 +0000 (20:47 +0000)]
MFC r314062
add bus_dmamap_unload in ql_free_dmabuf()

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

7 years agoMFC r314572:
mm [Sun, 5 Mar 2017 21:43:07 +0000 (21:43 +0000)]
MFC r314572:

Fix null pointer dereference in zfs_freebsd_setacl().

Prevents unprivileged users from panicking the kernel by calling
__acl_delete_*() on files or directories inside a ZFS mount.

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

7 years agoPull in r242377 from upstream libc++ trunk (by Marshall Clow):
dim [Sat, 18 Feb 2017 14:44:14 +0000 (14:44 +0000)]
Pull in r242377 from upstream libc++ trunk (by Marshall Clow):

  Make sure that __libcpp_compressed_pair_imp default-constructs its'
  members, rather than value-initializing them. Fixes PR#24137

This ensures std::make_shared<>'s default constructor properly
initializes to zero.

Direct commit to stable/9 and stable/10, since stable/11 and head
already have a newer version of libc++, including this fix.

Reported by: martin.beran@kernun.cz
PR: 217200

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

7 years agoMFC r312728
davidcs [Thu, 2 Feb 2017 00:37:21 +0000 (00:37 +0000)]
MFC r312728
    Added support for if_transmit and if_qflush
    Removed if_start
    updated version to 3.10.33

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

7 years agoMFC r312426: fix a thread preemption regression in schedulers introduced
avg [Tue, 24 Jan 2017 12:15:10 +0000 (12:15 +0000)]
MFC r312426: fix a thread preemption regression in schedulers introduced
in r270423

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

7 years agoMFC r311688:
dim [Wed, 11 Jan 2017 21:01:49 +0000 (21:01 +0000)]
MFC r311688:

Fix logic error in gvinum's gv_set_sd_state()

With clang 4.0.0, I'm getting the following warnings:

    sys/geom/vinum/geom_vinum_state.c:186:7: error: logical not is only
    applied to the left hand side of this bitwise operator
    [-Werror,-Wlogical-not-parentheses]
                    if (!flags & GV_SETSTATE_FORCE)
                        ^      ~

The logical not operator should obiously be called after masking.

Reviewed by: mav, pfg
Differential Revision: https://reviews.freebsd.org/D9093

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