]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/log
FreeBSD/FreeBSD.git
8 years agoMerge ^/head r304236 through r304536.
Dimitry Andric [Sat, 20 Aug 2016 18:52:03 +0000 (18:52 +0000)]
Merge ^/head r304236 through r304536.

8 years agoUpdate build glue for lldb. Also comment out parts of the
Dimitry Andric [Sat, 20 Aug 2016 18:45:25 +0000 (18:45 +0000)]
Update build glue for lldb.  Also comment out parts of the
initialization and termination code which reference plugins and
components that we don't use.

8 years agoImport Dragonfly Mail Agent snapshort from 20160806 aka v0.11+
Baptiste Daroussin [Sat, 20 Aug 2016 16:36:05 +0000 (16:36 +0000)]
Import Dragonfly Mail Agent snapshort from 20160806 aka v0.11+

Most important change being:
dma - Fix security hole (#46)

Affecting DragonFly 4.6 and earlier, Matt Dillon fixed this in base after
finding out from BSDNow Episode 152. Comments following were from his commit
which explains better than I. Just taking his change and putting it here as well.

* dma makes an age-old mistake of not properly checking whether a file
owned by a user is a symlink or not, a bug which the original mail.local
also had.

* Add O_NOFOLLOW to disallow symlinks.

Thanks-to: BSDNow Episode 152, made me dive dma to check when they talked
about the mail.local bug.

MFC After: 2 days

8 years agoImport Dragonfly Mail agent snapshot from 2016-08-16
Baptiste Daroussin [Sat, 20 Aug 2016 16:28:17 +0000 (16:28 +0000)]
Import Dragonfly Mail agent snapshot from 2016-08-16

8 years agoloader is filling fixed length command_errbuf with sprintf() and is trusting
Toomas Soome [Sat, 20 Aug 2016 16:23:19 +0000 (16:23 +0000)]
loader is filling fixed length command_errbuf with sprintf() and is trusting
strings provided by user/config files. This update is replacing sprintf with
snprintf for cases the command_errbuf is built from dynamic content.

PR: 211958
Reported by: ecturt@gmail.com
Reviewed by: imp, allanjude
Approved by: imp (mentor), allanjude (mentor)
Differential Revision: https://reviews.freebsd.org/D7563

8 years agoCleanup some left-over CMakeLists.txt files.
Dimitry Andric [Sat, 20 Aug 2016 15:20:01 +0000 (15:20 +0000)]
Cleanup some left-over CMakeLists.txt files.

8 years agoPull in r265122 from upstream llvm trunk (by James Molloy):
Dimitry Andric [Sat, 20 Aug 2016 14:04:51 +0000 (14:04 +0000)]
Pull in r265122 from upstream llvm trunk (by James Molloy):

  Fix for pr24346: arm asm label calculation error in sub

  Some ARM instructions encode 32-bit immediates as a 8-bit integer
  (0-255) and a 4-bit rotation (0-30, even) in its least significant 12
  bits. The original fixup, FK_Data_4, patches the instruction by the
  value bit-to-bit, regardless of the encoding. For example, assuming
  the label L1 and L2 are 0x0 and 0x104 respectively, the following
  instruction:

    add r0, r0, #(L2 - L1) ; expects 0x104, i.e., 260

  would be assembled to the following, which adds 1 to r0, instead of
  260:

    e2800104 add r0, r0, #4, 2 ; equivalently 1

  The new fixup kind fixup_arm_mod_imm takes care of the encoding:

    e2800f41 add r0, r0, #260

  Patch by Ting-Yuan Huang!

This fixes label calculation for ARM assembly, and is needed to enable
ARM assembly sources for OpenSSL.

Requested by: jkim
MFC after: 3 days

8 years agoJMicron JMB361 has only a single SATA port
Andriy Gapon [Sat, 20 Aug 2016 09:13:14 +0000 (09:13 +0000)]
JMicron JMB361 has only a single SATA port

Discussed with: mav
MFC after: 3 days

8 years agofix bug introduced in r297521, set canmount=on doesn't mount filesystem
Andriy Gapon [Sat, 20 Aug 2016 09:12:01 +0000 (09:12 +0000)]
fix bug introduced in r297521, set canmount=on doesn't mount filesystem

There are two cases where changing canmount should result in an action:
- canmount is set to off for a mounted filesystem
- canmount is set to on for an unmounted filesystem
Before r297521 we could unmount and re-mount a filesystem when that was
not necessary, but after r297521 we only handled the first of the above
cases.

MFC after: 5 days

8 years agoSkip HID1 initialization on e6500 cores, it doesn't exist.
Justin Hibbits [Sat, 20 Aug 2016 00:55:58 +0000 (00:55 +0000)]
Skip HID1 initialization on e6500 cores, it doesn't exist.

With this, and some drivers removed, a T2080 dev board boots to mountroot.

Submitted by: Ivan Krivonos <int0dster_AT_gmail.com>

8 years agoRemove the ie(4) driver for Intel 82586 ISA Ethernet adapters.
John Baldwin [Sat, 20 Aug 2016 00:49:29 +0000 (00:49 +0000)]
Remove the ie(4) driver for Intel 82586 ISA Ethernet adapters.

This driver only supports 10Mb Ethernet using PIO (the hardware supports
DMA, but the driver only does PIO).  There are not any PCCard adapters
supported by this driver, only ISA cards.  In addition, it does not use
bus_space but instead uses bcopy with volatile pointers triggering a
host of warnings.  (if_ie.c is one of 3 files always built with
-Wno-error)

Relnotes: yes

8 years agoixlv(4): Fix ixlv(4) not loading when loaded as a kernel module and netmap is enabled.
Eric Joyner [Sat, 20 Aug 2016 00:08:10 +0000 (00:08 +0000)]
ixlv(4): Fix ixlv(4) not loading when loaded as a kernel module and netmap is enabled.

Define (unused) netmap variables; ixlv(4) doesn't support netmap yet.

Reported by: sergey.kozlov@intel.com
Sponsored by: Intel Corporation

8 years agoif_emac: Before generating a random MAC address, try using the SID rootkey
Emmanuel Vadot [Fri, 19 Aug 2016 23:44:07 +0000 (23:44 +0000)]
if_emac: Before generating a random MAC address, try using the SID rootkey
to generate one. This is was U-Boot does to generate a random MAC so we end
up with the same MAC address as if U-Boot did generate it.

MFC after: 1 week

8 years agoRemove the spic(4) driver for the Sony Vaoi Jogdial.
John Baldwin [Fri, 19 Aug 2016 23:39:08 +0000 (23:39 +0000)]
Remove the spic(4) driver for the Sony Vaoi Jogdial.

This hardware is not present on any modern systems.  The driver is quite
hackish (raw inb/outb instead of bus_space, and raw inb/outb to random
I/O ports to enable ACPI since it predated proper ACPI support).

Relnotes: yes

8 years agoRemove the wl(4) driver and wlconfig(8) utility.
John Baldwin [Fri, 19 Aug 2016 22:27:14 +0000 (22:27 +0000)]
Remove the wl(4) driver and wlconfig(8) utility.

The wl(4) driver supports pre-802.11 PCCard wireless adapters that
are slower than 802.11b.  They do not work with any of the 802.11
framework and the driver hasn't been reported to actually work in a
long time.

Relnotes: yes

8 years agoRemove mentions of the mcd(4), scd(4), and si(4) drivers.
John Baldwin [Fri, 19 Aug 2016 22:13:01 +0000 (22:13 +0000)]
Remove mentions of the mcd(4), scd(4), and si(4) drivers.

Relnotes: yes

8 years agoRemove stale drivers (amd(4) and asr(4)) from the SCSI controller regex.
John Baldwin [Fri, 19 Aug 2016 22:05:22 +0000 (22:05 +0000)]
Remove stale drivers (amd(4) and asr(4)) from the SCSI controller regex.

8 years agoRemove the wds(4) driver for the WD700 ISA SCSI HBA.
John Baldwin [Fri, 19 Aug 2016 21:51:42 +0000 (21:51 +0000)]
Remove the wds(4) driver for the WD700 ISA SCSI HBA.

While this driver does do DMA, it bounce buffers all transactions through
a single 64k buffer.  It also does not have a manpage.

Relnotes: yes

8 years agoRemove the si(4) driver and sicontrol(8) for Specialix serial cards.
John Baldwin [Fri, 19 Aug 2016 21:14:27 +0000 (21:14 +0000)]
Remove the si(4) driver and sicontrol(8) for Specialix serial cards.

The si(4) driver supported multiport serial adapters for ISA, EISA, and
PCI buses.  This driver does not use bus_space, instead it depends on
direct use of the pointer returned by rman_get_virtual().  It is also
still locked by Giant and calls for patch testing to convert it to use
bus_space were unanswered.

Relnotes: yes

8 years agoRemove doxygen files for mcd(4) and scd(4) drivers.
John Baldwin [Fri, 19 Aug 2016 20:53:55 +0000 (20:53 +0000)]
Remove doxygen files for mcd(4) and scd(4) drivers.

Submitted by: ak

8 years agoRemove the scd(4) driver for Sony CDU31/33 CD-ROM drives.
John Baldwin [Fri, 19 Aug 2016 19:31:55 +0000 (19:31 +0000)]
Remove the scd(4) driver for Sony CDU31/33 CD-ROM drives.

This is a driver for a pre-ATAPI ISA CD-ROM adapter.  The driver only
uses PIO.

8 years agoMove cxgb and cxgbe down to the non-mii PCI NIC section.
John Baldwin [Fri, 19 Aug 2016 18:45:42 +0000 (18:45 +0000)]
Move cxgb and cxgbe down to the non-mii PCI NIC section.

8 years agoKeep boot parameters in ARM trampoline code
Emmanuel Vadot [Fri, 19 Aug 2016 18:02:36 +0000 (18:02 +0000)]
Keep boot parameters in ARM trampoline code

Currently boot parameters (r0 - r3) are forgotten in ARM trampoline code.
This patch save them at startup and restore them before jumping into kernel
_start() routine.
This is usefull when booting with Linux ABI and/or custom bootloader.

Submitted by: Grégory Soutadé <soutade@gmail.com>
Reviewed by: imp
Differential Revision: https://reviews.freebsd.org/D7395

8 years agoDon't set P2_PTRACE_FSTP in a process that invokes ptrace(PT_TRACE_ME).
Mark Johnston [Fri, 19 Aug 2016 17:57:14 +0000 (17:57 +0000)]
Don't set P2_PTRACE_FSTP in a process that invokes ptrace(PT_TRACE_ME).

Such processes are stopped synchronously by a direct call to
ptracestop(SIGTRAP) upon exec. P2_PTRACE_FSTP causes the exec()ing thread
to suspend itself while waiting for a SIGSTOP that never arrives.

Reviewed by: kib
MFC after: 3 days
Differential Revision: https://reviews.freebsd.org/D7576

8 years agoUpdate build glue for clang and the llvm/clang extras.
Dimitry Andric [Fri, 19 Aug 2016 17:55:34 +0000 (17:55 +0000)]
Update build glue for clang and the llvm/clang extras.

8 years agoReorder sysctls so that nodes shared with the VF driver are added first.
John Baldwin [Fri, 19 Aug 2016 17:54:51 +0000 (17:54 +0000)]
Reorder sysctls so that nodes shared with the VF driver are added first.

This permits a single early return for VF devices in the routines that
add sysctl nodes.

Reviewed by: np
Sponsored by: Chelsio Communications
Differential Revision: https://reviews.freebsd.org/D7512

8 years agoRegenerate system call table after r304483.
Ed Schouten [Fri, 19 Aug 2016 17:54:06 +0000 (17:54 +0000)]
Regenerate system call table after r304483.

8 years agoUse the proper value for svn:keywords.
Ed Schouten [Fri, 19 Aug 2016 17:53:37 +0000 (17:53 +0000)]
Use the proper value for svn:keywords.

Pointy hat to: me

8 years agoAdjust t4_port_init() to work with VF devices.
John Baldwin [Fri, 19 Aug 2016 17:52:48 +0000 (17:52 +0000)]
Adjust t4_port_init() to work with VF devices.

Specifically, the FW_PORT_CMD may or may not work for a VF (the PF
driver can choose whether or not to permit access to this command),
so don't attempt to fetch port information on a VF if permission is
denied by the PF.

Reviewed by: np
Sponsored by: Chelsio Communications
Differential Revision: https://reviews.freebsd.org/D7511

8 years agoAdd missing SVN keywords keyword.
Ed Schouten [Fri, 19 Aug 2016 17:51:52 +0000 (17:51 +0000)]
Add missing SVN keywords keyword.

8 years agoAdd structures for VF-specific adapter parameters.
John Baldwin [Fri, 19 Aug 2016 17:49:49 +0000 (17:49 +0000)]
Add structures for VF-specific adapter parameters.

While here, mark which parameters are PF-specific and which are
VF-specific.

Sponsored by: Chelsio Communications
Differential Revision: https://reviews.freebsd.org/D7508

8 years agoImport the new automatically generated system call table for CloudABI.
Ed Schouten [Fri, 19 Aug 2016 17:49:35 +0000 (17:49 +0000)]
Import the new automatically generated system call table for CloudABI.

Now that we've switched over to using the vDSO on CloudABI, it becomes a
lot easier for us to phase out old features. System call numbering is no
longer something that's part of the ABI. It's fully based on names. As
long as the numbering used by the kernel and the vDSO is consistent
(which it always is), it's all right.

Let's put this to the test by removing a system call (thread_tcb_set())
that's already unused for quite some time now, but was only left intact
to serve as a placeholder. Sync in the new system call table that uses
alphabetic sorting of system calls.

Obtained from: https://github.com/NuxiNL/cloudabi

8 years agoFix various nits in the aio operation manpages.
John Baldwin [Fri, 19 Aug 2016 17:37:32 +0000 (17:37 +0000)]
Fix various nits in the aio operation manpages.

- Avoid double use of "request" in a single sentence.  Instead, describe
  aio_sigevent as being used to request notification of the associated
  operation's completion.  This matches the language used to describe
  aio_sigevent in aio(4).
- Simplify the prohibition on modifying buffers while requests are in
  flight.
- Fix case mismatch.
- Drop note about not using stack variables. C programmers should be able
  to figure out if a stack variable is safe based on the later warning
  about the life cycle requirements of control blocks.
- Remove prohibition on modifying the I/O buffer for aio_fsync() since
  it does not use an I/O buffer.  For aio_mlock(), prohibit modifications
  to the mapping (e.g. due to mprotect, munmap, mmap, etc.) but do not
  prohibit modifications to the memory backing the buffer (stores into
  the pages backing the buffer).

Requested by: wblock (1,2), kib (4)
Reviewed by: kib, rpokala, wblock
MFC after: 3 days
Sponsored by: Chelsio Communications
Differential Revision: https://reviews.freebsd.org/D7462

8 years agoAllwinner: Move a10_padconf.c into a10 subdirectory.
Emmanuel Vadot [Fri, 19 Aug 2016 12:48:32 +0000 (12:48 +0000)]
Allwinner: Move a10_padconf.c into a10 subdirectory.

8 years agoTEGRA: Remove forgotten debug printf.
Michal Meloun [Fri, 19 Aug 2016 11:12:59 +0000 (11:12 +0000)]
TEGRA: Remove forgotten debug printf.

8 years agoTEGRA: Implement MSI/MSIX interrupts for pcie controller.
Michal Meloun [Fri, 19 Aug 2016 10:53:17 +0000 (10:53 +0000)]
TEGRA: Implement MSI/MSIX interrupts for pcie controller.

8 years agoINTRNG: Rework handling with resources. Partially revert r301453.
Michal Meloun [Fri, 19 Aug 2016 10:52:39 +0000 (10:52 +0000)]
INTRNG: Rework handling with resources. Partially revert r301453.
 - Read interrupt properties at bus enumeration time and store
   it into global mapping table.
 - At bus_activate_resource() time, given mapping entry is resolved and
   connected to real interrupt source. A copy of mapping entry is attached
   to given resource.
 - At bus_setup_intr() time, mapping entry stored in resource is used
   for delivery of requested interrupt configuration.
 - For MSI/MSIX interrupts, mapping entry is created within
   pci_alloc_msi()/pci_alloc_msix() call.
 - For legacy PCI interrupts, mapping entry must be created within
   pcib_route_interrupt() by pcib driver itself.

Reviewed by: nwhitehorn, andrew
Differential Revision: https://reviews.freebsd.org/D7493

8 years agoHost controller is byte oriented. Fix wrong assumption on big-endian
Pyun YongHyeon [Fri, 19 Aug 2016 10:51:30 +0000 (10:51 +0000)]
Host controller is byte oriented.  Fix wrong assumption on big-endian
systems.

Pointed out by: hselasky

8 years agohyperv/hn: Move RXBUF to hn_softc
Sepherosa Ziehau [Fri, 19 Aug 2016 05:43:28 +0000 (05:43 +0000)]
hyperv/hn: Move RXBUF to hn_softc

And don't recreate RXBUF for each primary channel open, it is now
created in device_attach DEVMETHOD and destroyed in device_detach
DEVMETHOD.

MFC after: 1 week
Sponsored by: Microsoft
Differential Revision: https://reviews.freebsd.org/D7556

8 years agohyperv/hn: Remove the useless num_channel
Sepherosa Ziehau [Fri, 19 Aug 2016 05:30:39 +0000 (05:30 +0000)]
hyperv/hn: Remove the useless num_channel

MFC after: 1 week
Sponsored by: Microsoft
Differential Revision: https://reviews.freebsd.org/D7555

8 years agohyperv/hn: Remove assign-only struct field
Sepherosa Ziehau [Fri, 19 Aug 2016 05:20:12 +0000 (05:20 +0000)]
hyperv/hn: Remove assign-only struct field

MFC after: 1 week
Sponsored by: Microsoft
Differential Revision: https://reviews.freebsd.org/D7554

8 years agoImprove the pattern matching so that internal *'s work, as well as
Warner Losh [Fri, 19 Aug 2016 04:30:29 +0000 (04:30 +0000)]
Improve the pattern matching so that internal *'s work, as well as
[set] notation. This fixes pattern matching for recently added drives
that would set the NCQ Trim being broken incorrectly.

PR: 210686
Tested-by: Tomoaki AOKI
MFC After: 3 days

8 years agohyperv/hn: Move NVS version to softc
Sepherosa Ziehau [Fri, 19 Aug 2016 03:32:04 +0000 (03:32 +0000)]
hyperv/hn: Move NVS version to softc

MFC after: 1 week
Sponsored by: Microsoft
Differential Revision: https://reviews.freebsd.org/D7553

8 years agoCorrect a check for P2_PTRACE_FSTP in ptracestop().
Mark Johnston [Fri, 19 Aug 2016 01:27:24 +0000 (01:27 +0000)]
Correct a check for P2_PTRACE_FSTP in ptracestop().

MFC after: 1 day

8 years agoFix build on big-endian systems.
Pyun YongHyeon [Fri, 19 Aug 2016 00:50:32 +0000 (00:50 +0000)]
Fix build on big-endian systems.

Reported by: bz

8 years agoFsck_ufs was using an int rather than a ufs2_daddr_t to store the
Kirk McKusick [Fri, 19 Aug 2016 00:03:41 +0000 (00:03 +0000)]
Fsck_ufs was using an int rather than a ufs2_daddr_t to store the
alternate superblock location when given in the -b option. When int
is 32-bits, block numbers larger than 2^32 would get truncated. This
commit changes the storage fpr the alternate superblock location
to a ufs2_daddr_t.

Submitted by: Dmitry Sivachenko <trtrmitya@gmail.com>

8 years agoFix unlocked access to ifnet address list
Ryan Stone [Thu, 18 Aug 2016 22:59:10 +0000 (22:59 +0000)]
Fix unlocked access to ifnet address list

in_broadcast() was iterating over the ifnet address list without
first taking an IF_ADDR_RLOCK.  This could cause a panic if a
concurrent operation modified the list.

Reviewed by: bz
MFC after: 2 months
Sponsored by: EMC / Isilon Storage Division
Differential Revision: https://reviews.freebsd.org/D7227

8 years agoDon't check for broadcast IPs on non-bcast pkts
Ryan Stone [Thu, 18 Aug 2016 22:59:05 +0000 (22:59 +0000)]
Don't check for broadcast IPs on non-bcast pkts

in_broadcast() can be quite expensive, so skip calling it if the
incoming mbuf wasn't sent to a broadcast L2 address in the first
place.

Reviewed by: gnn
MFC after: 2 months
Sponsored by: EMC / Isilon Storage Division
Differential Revision: https://reviews.freebsd.org/D7309

8 years agoDon't iterate over the ifnet addr list in ip_output()
Ryan Stone [Thu, 18 Aug 2016 22:59:00 +0000 (22:59 +0000)]
Don't iterate over the ifnet addr list in ip_output()

For almost every packet that is transmitted through ip_output(),
a call to in_broadcast() was made to decide if the destination
IP was a broadcast address.  in_broadcast() iterates over the
ifnet's address to find a source IP matching the subnet of the
destination IP, and then checks if the IP is a broadcast in that
subnet.

This is completely redundant as we have already performed the
route lookup, so the source IP is already known.  Just use that
address to directly check whether the destination IP is a
broadcast address or not.

MFC after: 2 months
Sponsored By: EMC / Isilon Storage Division
Differential Revision: https://reviews.freebsd.org/D7266

8 years agoAdd a SIGINFO handler for dtrace(1).
Mark Johnston [Thu, 18 Aug 2016 17:27:58 +0000 (17:27 +0000)]
Add a SIGINFO handler for dtrace(1).

Have it print the contents of aggregations, if any. Otherwise, one needs to
kill the running script to view the collected data, or add code to
periodically print it.

Discussed with: gnn
MFC after: 1 month

8 years agovt: fix old keyboard release in CONS_SETKBD
Ed Maste [Thu, 18 Aug 2016 16:22:40 +0000 (16:22 +0000)]
vt: fix old keyboard release in CONS_SETKBD

On the first switch we previously released the newly allocated keyboard
instead of the old one. Keyboard state was very confused afterwards for
further keyboard switches.

Submitted by: bde

8 years agoRemove the obsolete and unused openbsd_poll system call. (Phase 2)
George V. Neville-Neil [Thu, 18 Aug 2016 10:54:39 +0000 (10:54 +0000)]
Remove the obsolete and unused openbsd_poll system call. (Phase 2)

Reported by: brooks
Reviewed by: brooks, jhb
Differential Revision: https://reviews.freebsd.org/D7548

8 years agoRemove unusedd and obsolete openbsd_poll system call. (Phase 1)
George V. Neville-Neil [Thu, 18 Aug 2016 10:50:40 +0000 (10:50 +0000)]
Remove unusedd and obsolete openbsd_poll system call.  (Phase 1)

Reported by: brooks
Reviewed by: brooks,jhb
Differential Revision: https://reviews.freebsd.org/D7548

8 years agoTry to fix gcc compilation errors (which are right).
Bjoern A. Zeeb [Thu, 18 Aug 2016 10:26:15 +0000 (10:26 +0000)]
Try to fix gcc compilation errors (which are right).
nat64_getlasthdr() returns an int, which can be -1 in case of error,
storing the result in an uint8_t and then comparing to < 0 is not
helpful.  Do what is done in the rest of the code and make proto an
int here as well.

8 years agoFix TAB replaced with spaces in prev. commit.
Andrey A. Chernov [Thu, 18 Aug 2016 10:18:11 +0000 (10:18 +0000)]
Fix TAB replaced with spaces in prev. commit.

8 years agoAdd support for setting blocking and non-blocking mode on /dev/rdma_cm
Hans Petter Selasky [Thu, 18 Aug 2016 08:49:02 +0000 (08:49 +0000)]
Add support for setting blocking and non-blocking mode on /dev/rdma_cm
by returning success on FIONBIO and FIOASYNC IOCTLs. The actual flags
handling is done by the kern_ioctl() function.

Reported by: Alex Bowden <alex.bowden@outlook.com>
Sponsored by: Mellanox Technologies
MFC after: 1 week

8 years agoWhen device is detached make sure to stop the controller and make
Pyun YongHyeon [Thu, 18 Aug 2016 07:11:31 +0000 (07:11 +0000)]
When device is detached make sure to stop the controller and make
it return zero-length USB packet.

8 years agoIn axge_stop(), clear medium receive enable bit which will stop RX
Pyun YongHyeon [Thu, 18 Aug 2016 06:46:14 +0000 (06:46 +0000)]
In axge_stop(), clear medium receive enable bit which will stop RX
MAC operation.

8 years agoRemove <sys/types.h> from the SYNOPSIS.
Kevin Lo [Thu, 18 Aug 2016 06:39:09 +0000 (06:39 +0000)]
Remove <sys/types.h> from the SYNOPSIS.

8 years agoWhen usbd_transfer_setup() fails, don't call
Pyun YongHyeon [Thu, 18 Aug 2016 06:35:09 +0000 (06:35 +0000)]
When usbd_transfer_setup() fails, don't call
usbd_transfer_unsetup().

8 years agoIntroduce axge_rxfilter() which configures RX filtering and replace
Pyun YongHyeon [Thu, 18 Aug 2016 06:29:07 +0000 (06:29 +0000)]
Introduce axge_rxfilter() which configures RX filtering and replace
axge_setmulti()/axge_setpromisc() with axge_rxfilter().
Multicast filter programming and promiscuous mode requires
access to a common RX configuration register so there is no need to
use separate functions with added complexity.  axge_rxfilter() does
not read back AXGE_RCR register since accessing a register in USB
is too slow and we already have all knowledge of required
configuration.  Rebuilding RX filter configuration is simpler and
faster than manipulating every bits after reading back the
register.

Note, axge_rxfilter() does not set RCR_IPE(IP header alignment on
32bit boundary) to disable extra padding bytes insertion.  The
extra padding wastes ethernet to USB host bandwidth as well as
complicating RX handling logic.  Current USB framework requires
copying RX frames to mbufs so there is no need to worry about
alignment.  Previously axge_rx_frame() performed wrong bound check
due to the extra padding and it was broken when RX checksum
offloading is disabled.  See added comment in axge_rx_frame () for
actual RX packet layout.

In axge_init(), disable WOL.  It's meaningless to enable WOL in
normal operation.

In axge_rxeof(), use properly sized mbuf rather than blindly
allocating a mbuf cluster.

Use RX H/W checksum offloading only when administrator requested RX
checksum offloading. Previously it always used RX H/W checksum
offloading result regardless of RX checksum offloading state.

Separate L4 checksum offloading validation from L3 one and properly
set required offloading bits for each layer. This is to fix setting
L4 checksum offloading bits for L3 packets.

There are still lots of RX errors(probably RX FIFO overflows) under
moderate load.  Users are strongly recommended to enable ethernet
flow control.

Reviewed by: kevlo (initial version), hselasky

8 years agohyperv/kvp: Remove unnecessary function parameter.
Sepherosa Ziehau [Thu, 18 Aug 2016 06:03:55 +0000 (06:03 +0000)]
hyperv/kvp: Remove unnecessary function parameter.

MFC after: 1 week
Sponsored by: Microsoft
Differential Revision: https://reviews.freebsd.org/D7550

8 years agohyperv/hn: Get rid of the useless netvsc_packet
Sepherosa Ziehau [Thu, 18 Aug 2016 05:52:03 +0000 (05:52 +0000)]
hyperv/hn: Get rid of the useless netvsc_packet

MFC after: 1 week
Sponsored by: Microsoft
Differential Revision: https://reviews.freebsd.org/D7544

8 years agohyperv/hn: Constify RNDIS messages on RX path.
Sepherosa Ziehau [Thu, 18 Aug 2016 05:44:58 +0000 (05:44 +0000)]
hyperv/hn: Constify RNDIS messages on RX path.

MFC after: 1 week
Sponsored by: Microsoft
Differential Revision: https://reviews.freebsd.org/D7542

8 years agohyperv/hn: Pass RX packet info to netvsc_recv.
Sepherosa Ziehau [Thu, 18 Aug 2016 05:33:58 +0000 (05:33 +0000)]
hyperv/hn: Pass RX packet info to netvsc_recv.

This paves to nuke netvsc_packet, which does not serves much
purpose now.

MFC after: 1 week
Sponsored by: Microsoft
Differential Revision: https://reviews.freebsd.org/D7541

8 years agoSwitch to TX header format rather than directly manipulating header
Pyun YongHyeon [Thu, 18 Aug 2016 05:07:02 +0000 (05:07 +0000)]
Switch to TX header format rather than directly manipulating header
structures.  This simplifies mbuf copy operation to USB buffers as
well as improving readability.  The controller supports Microsoft
LSOv1(aka TSO) but this change set does not include the support due
to copying overhead to USB buffers and large amount of memory waste.

Remove useless ZLP padding which seems to come from Linux.  Required
bits the code tried to set was not copied into USB buffer so it had
no effect.  Unlike Linux, FreeBSD USB stack automatically generates
ZLP so no explicit padding is required in driver.[1]

Micro-optimize updating IFCOUNTER_OPACKETS counter by moving it out
of TX loop since updating counter is not cheap operation as it did
long time ago and we already know how many number of packets were
queued after exiting the loop.

While here, fix a checksum offloading bug which will happen when
upper stack computes checksum while H/W checksum offloading is
active.  The controller should be notified to not recompute the
checksum in this case.

Reviewed by: kevlo (initial version), hselasky
Pointed out by: hselasky [1]

8 years agoRename cryptic RX filter constants with more readable ones.
Pyun YongHyeon [Thu, 18 Aug 2016 04:25:17 +0000 (04:25 +0000)]
Rename cryptic RX filter constants with more readable ones.
No functional change.

8 years agoDon't explicitly call MIIBUS_STATCHG() method handler. Link state
Pyun YongHyeon [Thu, 18 Aug 2016 02:14:39 +0000 (02:14 +0000)]
Don't explicitly call MIIBUS_STATCHG() method handler.  Link state
change should be handled by PHY driver.  Some broken PHY H/Ws may
need that workaround but it seems axge(4) don't use such PHYs.

8 years agoPass PHY location information and remove PHY access hack.
Pyun YongHyeon [Thu, 18 Aug 2016 01:48:58 +0000 (01:48 +0000)]
Pass PHY location information and remove PHY access hack.

8 years ago[net80211] correctly lock the ifp before accessing the lladdr.
Adrian Chadd [Thu, 18 Aug 2016 01:25:12 +0000 (01:25 +0000)]
[net80211] correctly lock the ifp before accessing the lladdr.

Tested by: dhw

8 years agoAdd SHA512, skein, large blocks support for loader zfs.
Toomas Soome [Thu, 18 Aug 2016 00:37:07 +0000 (00:37 +0000)]
Add SHA512, skein, large blocks support for loader zfs.

Updated sha512 from illumos.
Using skein from freebsd crypto tree.
Since loader itself is using 64MB memory for heap, updated zfsboot to
use same, and this also allows to support zfs large blocks.

Note, adding additional features does increate zfsboot code, therefore
this update does increase zfsboot code to 128k, also I have ported gptldr.S
update to zfsldr.S to support 64k+ code.

With this update, boot1.efi has almost reached the current limit of the size
set for it, so one of the future patches for boot1.efi will need to
increase the limit.

Currently known missing zfs features in boot loader are edonr and gzip support.

Reviewed by: delphij, imp
Approved by: imp (mentor)
Obtained from: sha256.c update and skein_zfs.c stub from illumos.
Differential Revision: https://reviews.freebsd.org/D7418

8 years agoDisable assembly sources when compiler/assembler cannot compile certain
Jung-uk Kim [Wed, 17 Aug 2016 22:13:39 +0000 (22:13 +0000)]
Disable assembly sources when compiler/assembler cannot compile certain
instructions.  For example, GCC 4.2.1 + binutils 2.17.50 does not support
AVX instructions.

Reported by: bde
MFC after: 2 weeks

8 years agoPull in r262772 from upstream clang trunk (by Simon Pilgrim):
Dimitry Andric [Wed, 17 Aug 2016 21:57:11 +0000 (21:57 +0000)]
Pull in r262772 from upstream clang trunk (by Simon Pilgrim):

  [X86] AMD Bobcat CPU (btver1) doesn't support XSAVE

  btver1 is a SSSE3/SSE4a only CPU - it doesn't have AVX and doesn't
  support XSAVE.

  Differential Revision: http://reviews.llvm.org/D17682

Pull in r262782 from upstream llvm trunk (by Simon Pilgrim):

  [X86] AMD Bobcat CPU (btver1) doesn't support XSAVE

  btver1 is a SSSE3/SSE4a only CPU - it doesn't have AVX and doesn't
  support XSAVE.

  Differential Revision: http://reviews.llvm.org/D17683

This ensures clang does not emit AVX instructions for CPUTYPE=btver1.

Reported by: Michel Depeige <demik+freebsd@lostwave.net>
PR: 211864
MFC after: 3 days

8 years agoRename allwinner_machdep.{c.h} to aw_machdep.{c.h} as all allwinner source
Emmanuel Vadot [Wed, 17 Aug 2016 21:44:02 +0000 (21:44 +0000)]
Rename allwinner_machdep.{c.h} to aw_machdep.{c.h}  as all allwinner source
files are name aw_*

8 years agoboot1.efi Free() should check for NULL to provide consistent behavior
Toomas Soome [Wed, 17 Aug 2016 21:29:57 +0000 (21:29 +0000)]
boot1.efi Free() should check for NULL to provide consistent behavior
with libstand Free().

Reviewed by: imp
Approved by: imp (mentor)
Differential Revision: https://reviews.freebsd.org/D7497

8 years agoRename kernel config A10 into ALLWINNER_UP as it is intend to work with all
Emmanuel Vadot [Wed, 17 Aug 2016 20:32:08 +0000 (20:32 +0000)]
Rename kernel config A10 into ALLWINNER_UP as it is intend to work with all
Allwinner Uniprocessor SoC.
As of now it works with A10 and A13 (and possibly R8 as it is the same as the A13).
Move files.a10 into a1o subdirectory as it should be.
Rename std.a10 into std.allwinner_up

8 years agorights(4): CAP_FSYNC also permits fdatasync(2).
Jilles Tjoelker [Wed, 17 Aug 2016 20:27:04 +0000 (20:27 +0000)]
rights(4): CAP_FSYNC also permits fdatasync(2).

8 years agomips/broadcom: Implement CFE-based EARLY_PRINTF support.
Landon J. Fuller [Wed, 17 Aug 2016 20:24:14 +0000 (20:24 +0000)]
mips/broadcom: Implement CFE-based EARLY_PRINTF support.

This adds support for EARLY_PRINTF via the CFE console; the aim is to
provide a fix for the otherwise cyclic dependency between PMU discovery
and console printf/DELAY:

- We need to parse the bhnd(4) core table to determine the address (and
  type) of the PMU/PLL registers and calculate the CPU clock frequency.
- The core table parsing code will emit a printf() if a parse error is
  hit.
- Safely calling printf() without EARLY_PRINTF requires a working
  DELAY+cninit, which means we need the PMU.

Errors in core table parsing shouldn't happen, but lack of EARLY_PRINTF
makes debugging more difficult.

Approved by: adrian (mentor)
Differential Revision: https://reviews.freebsd.org/D7498

8 years agoTeach netisr_get_cpuid() to limit a given value to supported by netisr.
Andrey V. Elsukov [Wed, 17 Aug 2016 20:21:33 +0000 (20:21 +0000)]
Teach netisr_get_cpuid() to limit a given value to supported by netisr.
Use netisr_get_cpuid() in netisr_select_cpuid() to limit cpuid value
returned by protocol to be sure that it is not greather than nws_count.

PR: 211836
Reviewed by: adrian
MFC after: 3 days

8 years agoUpdate lldb to release_39 branch r278877.
Dimitry Andric [Wed, 17 Aug 2016 19:43:45 +0000 (19:43 +0000)]
Update lldb to release_39 branch r278877.

8 years agoUpdate clang to release_39 branch r278877.
Dimitry Andric [Wed, 17 Aug 2016 19:42:52 +0000 (19:42 +0000)]
Update clang to release_39 branch r278877.

8 years agoUpdate llvm to release_39 branch r278877.
Dimitry Andric [Wed, 17 Aug 2016 19:41:29 +0000 (19:41 +0000)]
Update llvm to release_39 branch r278877.

8 years agoVendor import of lldb release_39 branch r278877:
Dimitry Andric [Wed, 17 Aug 2016 19:37:50 +0000 (19:37 +0000)]
Vendor import of lldb release_39 branch r278877:
https://llvm.org/svn/llvm-project/lldb/branches/release_39@278877

8 years agoVendor import of clang release_39 branch r278877:
Dimitry Andric [Wed, 17 Aug 2016 19:34:38 +0000 (19:34 +0000)]
Vendor import of clang release_39 branch r278877:
https://llvm.org/svn/llvm-project/cfe/branches/release_39@278877

8 years agoVendor import of llvm release_39 branch r278877:
Dimitry Andric [Wed, 17 Aug 2016 19:33:52 +0000 (19:33 +0000)]
Vendor import of llvm release_39 branch r278877:
https://llvm.org/svn/llvm-project/llvm/branches/release_39@278877

8 years agoAdd sun5i-a13-olinuxino to the build.
Emmanuel Vadot [Wed, 17 Aug 2016 17:59:09 +0000 (17:59 +0000)]
Add sun5i-a13-olinuxino to the build.

8 years agoFix the output for scope statistics.
Michael Tuexen [Wed, 17 Aug 2016 16:56:20 +0000 (16:56 +0000)]
Fix the output for scope statistics.

MFC after: 3 days

8 years agoUse names for SCTP and UDPLite when reporting the input histogram.
Michael Tuexen [Wed, 17 Aug 2016 14:44:47 +0000 (14:44 +0000)]
Use names for SCTP and UDPLite when reporting the input histogram.

MFC after: 3 days

8 years agoRemove pullup settings for MMC pins, this is not needed since r304290
Emmanuel Vadot [Wed, 17 Aug 2016 13:19:28 +0000 (13:19 +0000)]
Remove pullup settings for MMC pins, this is not needed since r304290

MFC after: 1 week

8 years agoOnly set pud settings if this is a pullup or pulldown configuration.
Emmanuel Vadot [Wed, 17 Aug 2016 13:09:31 +0000 (13:09 +0000)]
Only set pud settings if this is a pullup or pulldown configuration.
This removes the need to set the MMC pins with pullups in our DTS.
Thanks to jmcneill@ for spotting this.

Tested on Orange Pi One (Allwinner H3).

MFC after: 1 week

8 years agoa10_gpio_get_function now returns the whole function not only
Emmanuel Vadot [Wed, 17 Aug 2016 10:20:36 +0000 (10:20 +0000)]
a10_gpio_get_function now returns the whole function not only
GPIO_INPUT/GPIO_OUTPUT.
a10_gpio_get_pud now returns the whole pud not only PULLDOWN/PULLUP.
Add a10_gpio_get_drv to get the current drive strenght.
During fdt pin configure, avoid setting function/drive/pud if it's already in
the correct value.

Tested on Allwinner H3 and A20

MFC after: 1 week

8 years agoGarbage collect _umtx_lock(2)/_umtx_unlock(2) references removed in r263318.
Bryan Drewery [Wed, 17 Aug 2016 10:20:05 +0000 (10:20 +0000)]
Garbage collect _umtx_lock(2)/_umtx_unlock(2) references removed in r263318.

This has no real impact on the resulting libc.so file.

MFC after: 3 days
Sponsored by: EMC / Isilon Storage Division

8 years agoAdd fdatasync(2) man page, combined with fsync(2).
Konstantin Belousov [Wed, 17 Aug 2016 10:16:42 +0000 (10:16 +0000)]
Add fdatasync(2) man page, combined with fsync(2).

Reviewed by: emaste, rpokala, wblock
Sponsored by: The FreeBSD Foundation
MFC after: 2 weeks
Differential revision: https://reviews.freebsd.org/D7522

8 years agoRemove duplicated code.
Konstantin Belousov [Wed, 17 Aug 2016 10:14:22 +0000 (10:14 +0000)]
Remove duplicated code.

aio_aqueue() calls aio_init_aioinfo() as the first action. There is no
need to duplicate the code in kern_aio_fsync().

Also fix indent for aio_aqueue() definition.

Reviewed by: jhb
Sponsored by: The FreeBSD Foundation
MFC after: 1 week
Differential revision: https://reviews.freebsd.org/D7523

8 years agoImplement userspace gettimeofday(2) with HPET timecounter.
Konstantin Belousov [Wed, 17 Aug 2016 09:52:09 +0000 (09:52 +0000)]
Implement userspace gettimeofday(2) with HPET timecounter.

Right now, userspace (fast) gettimeofday(2) on x86 only works for
RDTSC.  For older machines, like Core2, where RDTSC is not C2/C3
invariant, and which fall to HPET hardware, this means that the call
has both the penalty of the syscall and of the uncached hw behind the
QPI or PCIe connection to the sought bridge.  Nothing can me done
against the access latency, but the syscall overhead can be removed.
System already provides mappable /dev/hpetX devices, which gives
straight access to the HPET registers page.

Add yet another algorithm to the x86 'vdso' timehands. Libc is updated
to handle both RDTSC and HPET.  For HPET, the index of the hpet device
to mmap is passed from kernel to userspace, index might be changed and
libc invalidates its mapping as needed.

Remove cpu_fill_vdso_timehands() KPI, instead require that
timecounters which can be used from userspace, to provide
tc_fill_vdso_timehands{,32}() methods.  Merge i386 and amd64
libc/<arch>/sys/__vdso_gettc.c into one source file in the new
libc/x86/sys location.  __vdso_gettc() internal interface is changed
to move timecounter algorithm detection into the MD code.

Measurements show that RDTSC even with the syscall overhead is faster
than userspace HPET access.  But still, userspace HPET is three-four
times faster than syscall HPET on several Core2 and SandyBridge
machines.

Tested by: Howard Su <howard0su@gmail.com>
Sponsored by: The FreeBSD Foundation
MFC after: 1 month
Differential revision: https://reviews.freebsd.org/D7473

8 years agoBy default, allow all to read the HPET registers pages. At the same
Konstantin Belousov [Wed, 17 Aug 2016 09:20:04 +0000 (09:20 +0000)]
By default, allow all to read the HPET registers pages.  At the same
time, by, by default disallow writes to the mmaped HPET pages.

Intent is to allow userspace to use HPET as fast (i.e. no-syscall)
timecounter for gettimeofday(2).  Unfortunately, the permission model
does not make it possible to safely unhide /dev/hpet in the jails even
if default mode is set to 0444, because untrusted jailed root may
change device permissions to writeable.

Sponsored by: The FreeBSD Foundation
MFC after: 3 weeks

8 years agoUpdate lldb to release_39 branch r276489 and resolve immediate conflicts.
Ed Maste [Wed, 17 Aug 2016 08:51:41 +0000 (08:51 +0000)]
Update lldb to release_39 branch r276489 and resolve immediate conflicts.

8 years agohyperv/util: Factor out helper for IC device_probe DEVMETHOD
Sepherosa Ziehau [Wed, 17 Aug 2016 08:38:49 +0000 (08:38 +0000)]
hyperv/util: Factor out helper for IC device_probe DEVMETHOD

MFC after: 1 week
Sponsored by: Microsoft
Differential Revision: https://reviews.freebsd.org/D7530

8 years agoCorrectly print and cast u_int64_t and off_t.
Emmanuel Vadot [Wed, 17 Aug 2016 08:29:30 +0000 (08:29 +0000)]
Correctly print and cast u_int64_t and off_t.

Reported by: ed, imp
MFC after: 1 week

8 years agohyperv/util: Don't reference hn_softc in KVP
Sepherosa Ziehau [Wed, 17 Aug 2016 08:26:08 +0000 (08:26 +0000)]
hyperv/util: Don't reference hn_softc in KVP

hn_softc is private data struct.

MFC after: 1 week
Sponsored by: Microsoft
Differential Revision: https://reviews.freebsd.org/D7519