30 hours agopthread: Init libthread_xu also in pthread_key_create() master
zrj [Fri, 16 Sep 2016 04:42:37 +0000 (07:42 +0300)]
pthread: Init libthread_xu also in pthread_key_create()

Previously libtreahd_xu was only prepared in pthread_create()
but there are cases where keys need to be initialized before.

Solves runtime of statically linked gfortran programs with -pthread
(libgfortran calls newlocale() when setting up the environment).

31 hours ago<pthread.h>: Avoid namespace pollution.
zrj [Thu, 22 Sep 2016 11:32:51 +0000 (14:32 +0300)]
<pthread.h>: Avoid namespace pollution.

Rename MUTEX_TYPE_MAX -> PTHREAD_MUTEX_TYPE_MAX to avoid clashes
with types in user source codes. Adjust all use cases.

While there, remove deprecated unused compat mutex types.

31 hours ago<pthread.h>: Mark some __nonnull(x) cases.
zrj [Thu, 22 Sep 2016 11:25:10 +0000 (14:25 +0300)]
<pthread.h>: Mark some __nonnull(x) cases.

31 hours ago<pthread.h>: Visibility changes.
zrj [Thu, 22 Sep 2016 07:04:32 +0000 (10:04 +0300)]
<pthread.h>: Visibility changes.

While there, remove prototypes of pthread_attr_{get,set}floatstate()
looks like they never were implemented, so do not advertise them.

31 hours ago<pthread.h>: Perform some style(9) cleanup.
zrj [Thu, 22 Sep 2016 06:57:39 +0000 (09:57 +0300)]
<pthread.h>: Perform some style(9) cleanup.

Change indentation to a single tab, since both protype names and arguments
are quite long and later added attribute decorations will only make it worse.

Strictly no functional change, just shifting stuff around for readability and
upcoming changes.

31 hours agoUse recently added attributes in few standard headers.
zrj [Thu, 22 Sep 2016 06:19:10 +0000 (09:19 +0300)]
Use recently added attributes in few standard headers.

There attributes are to assits compiler making better analysis
doring compilation time. Like branch prediction and hinting.

While there, for now prefer to use __attribute__((__noreturn__)) to
_Noreturn, since neither OpenBSD or NetBSD has it at all and in our
variant we don't handle it in c++ case ([[noreturn]]) anyway.
Looks to be only a workaround for some old clang++ version.

31 hours ago<stdlib.h>: Change visibility of few POSIX extensions to ISO C.
zrj [Thu, 22 Sep 2016 05:44:57 +0000 (08:44 +0300)]
<stdlib.h>: Change visibility of few POSIX extensions to ISO C.

Seems it should be like this.

31 hours agostyle(9): Perform some cleanup in few standard headers.
zrj [Thu, 22 Sep 2016 05:32:10 +0000 (08:32 +0300)]
style(9): Perform some cleanup in few standard headers.

For upcomming changes. No functional change.

Kindly-requested-by: swildner@
31 hours ago<sys/cdefs.h>: Add support for alloc_align, alloc_size and malloc attributes.
zrj [Tue, 20 Sep 2016 07:27:39 +0000 (10:27 +0300)]
<sys/cdefs.h>: Add support for alloc_align, alloc_size and malloc attributes.

  * __alloc_align tells the compiler that one of the arguments is a
    minimal alignment for pointer to help with pointers analysis.
  * __alloc_size tells the compiler that one of the arguments is a
    size of a pointer returned by function.
  * __malloclike tells the compiler that returned pointer does not
    alias any other pointer to help futher optimizations.

While there, add partial support for clang (as it is in FreeBSD).

31 hours ago<sys/cdefs.h>: Be more careful with _Noreturn.
zrj [Tue, 20 Sep 2016 08:48:55 +0000 (11:48 +0300)]
<sys/cdefs.h>: Be more careful with _Noreturn.

With modern gcc started using g++ for bootstraps _Noreturn must
be handled with a bit of extra care.

31 hours ago<sys/cdefs.h>: Move __warn_unused_result__ to 3.4
zrj [Tue, 20 Sep 2016 07:14:21 +0000 (10:14 +0300)]
<sys/cdefs.h>: Move __warn_unused_result__ to 3.4

Looks like it is reliably available only at 3.4 so change it.

31 hours ago<sys/cdefs.h>: Style(9) fixes.
zrj [Tue, 20 Sep 2016 06:43:53 +0000 (09:43 +0300)]
<sys/cdefs.h>: Style(9) fixes.

Mostly tabs, no functional change except for removal
of extra semicolon in __strong_reference() macro.

31 hours agobootstrap: Fix old boostrapping issue once and for all.
zrj [Wed, 21 Sep 2016 10:45:50 +0000 (13:45 +0300)]
bootstrap: Fix old boostrapping issue once and for all.

This was fallout after iconv() removal of 'const' attribute to conform
with POSIX. All the later hacks are starting to accumulate and prevent
easy further base system upgrading. So given that main issue is c++
specific and only needed for bootstraping process deal with it straight
and remove all hacks(include shoehornings) that were caused by it.

To fix bootstrapping problems add WORLD_VERSION variable that indicates
current DragonFly base version and could be used to retrospectively
help bootstrapping from older releases. Makefile changes that depend on
WORLD_VERSION should *only* be used as a once switch and during native
compilations should *not* change default world makefiles logic.

38 hours agoif_iwm - Remove OpenBSD-specific comment. Beautify pci cfg space accesses.
Imre Vadász [Sat, 17 Sep 2016 21:06:42 +0000 (23:06 +0200)]
if_iwm - Remove OpenBSD-specific comment. Beautify pci cfg space accesses.

38 hours agoif_iwm - Fix typo in commit a7697ea01c11fd493aec52260a02f31df680eb91.
Imre Vadász [Fri, 23 Sep 2016 23:35:04 +0000 (01:35 +0200)]
if_iwm - Fix typo in commit a7697ea01c11fd493aec52260a02f31df680eb91.

* The sc->sc_uc.uc_error_event_table value is now at sc->error_event_table,
  and not sc->umac_error_event_table.

39 hours agoif_iwm - Get rid of unneeded IWM_FWDMASEGSZ and IWM_FWMAXSIZE constants
Imre Vadász [Fri, 23 Sep 2016 22:27:49 +0000 (00:27 +0200)]
if_iwm - Get rid of unneeded IWM_FWDMASEGSZ and IWM_FWMAXSIZE constants

* We only need IWM_FH_MEM_TB_MAX_LENGTH bytes for the fw_dma memory.

39 hours agoif_iwm - With the previous commits, this DELAY no longer seems to be needed.
Imre Vadász [Fri, 23 Sep 2016 22:31:26 +0000 (00:31 +0200)]
if_iwm - With the previous commits, this DELAY no longer seems to be needed.

39 hours agoif_iwm - Sync IWM_MVM_ALIVE waiting and start_fw handling with iwlwifi.
Imre Vadász [Fri, 23 Sep 2016 17:09:13 +0000 (19:09 +0200)]
if_iwm - Sync IWM_MVM_ALIVE waiting and start_fw handling with iwlwifi.

* Use the notification wait API, like it's done in the Linux iwlwifi code,
  to wait for the IWM_MVM_ALIVE notification.

* This also should fix some firmware load interrupt issues, and errors
  in the nic lock using.

Taken-From: Linux iwlwifi

39 hours agoif_iwm - Synchronize firmware loading code with Linux iwlwifi.
Imre Vadász [Fri, 9 Sep 2016 22:00:07 +0000 (00:00 +0200)]
if_iwm - Synchronize firmware loading code with Linux iwlwifi.

* While there, rename some functions to match the names and functionality
  of the similarly named functions in Linux iwlwifi.

Taken-From: Linux iwlwifi

3 days agoiwmfw - Fixup revert to version 16 for the 8000C firmware.
Imre Vadász [Thu, 22 Sep 2016 13:24:01 +0000 (15:24 +0200)]
iwmfw - Fixup revert to version 16 for the 8000C firmware.

3 days agoif_iwm - Improve reliability of iwm_release on disassociation a bit.
Imre Vadász [Sat, 17 Sep 2016 20:57:06 +0000 (22:57 +0200)]
if_iwm - Improve reliability of iwm_release on disassociation a bit.

* We need to first call ivp->iv_newstate(), to enqueue the deauth/deassoc
  mgmt frame, then flush the tx queue, before actually calling

* cycling a wlan connection via wpa_cli frontend to wpa_supplicant, by
  issuing disconnect and reconnect commandos works quite well.
  (There is still an issue when disconnecting to quickly after completing

* Reassociating or roaming via wpa_supplicant is still broken.

3 days agoif_iwm - Remove 1s delay after fw loading. Can't reproduce issues on AC8260.
Imre Vadász [Thu, 22 Sep 2016 09:03:26 +0000 (11:03 +0200)]
if_iwm - Remove 1s delay after fw loading. Can't reproduce issues on AC8260.

The 1s delay was added in the update to version 16 fw, where Family 8000
support was added.

3 days agoif_iwm - SCAN_ABORT_UMAC response doesn't use a wide id
Imre Vadász [Thu, 22 Sep 2016 09:01:51 +0000 (11:01 +0200)]
if_iwm - SCAN_ABORT_UMAC response doesn't use a wide id

3 days agoif_iwm - Revert 8000C firmware (for AC8260) to version 16 for now.
Imre Vadász [Thu, 22 Sep 2016 09:04:39 +0000 (11:04 +0200)]
if_iwm - Revert 8000C firmware (for AC8260) to version 16 for now.

4 days agovkernel - Invalidate pte before setting attributes to the vm_page
Antonio Huete Jimenez [Tue, 20 Sep 2016 23:31:58 +0000 (01:31 +0200)]
vkernel - Invalidate pte before setting attributes to the vm_page

- Fixes a problem at mountroot time where it doesn't find any disk
  even though the disk is detected earlier.

4 days agovkernel - Fix a vkernel lockup on startup
Antonio Huete Jimenez [Tue, 20 Sep 2016 22:03:05 +0000 (00:03 +0200)]
vkernel - Fix a vkernel lockup on startup

- During ap_init() any pending IPIs is processed manually so
  clear gd_npoll as the real kernel does.
- Do not disable interrupts for vkernels during lwkt_send_ipiq3()
  because they don't seem to be re-enabled afterwards as they should.
  I'm not entirely sure this is the right fix, more investigation
  is required.

4 days agoif_iwm - Recognize the IWM_UCODE_TLV_FW_MEM_SEG firmware section type.
Imre Vadász [Tue, 20 Sep 2016 22:35:40 +0000 (00:35 +0200)]
if_iwm - Recognize the IWM_UCODE_TLV_FW_MEM_SEG firmware section type.

* Will be needed for loading version 22 of 7265D firmware.

4 days agoiwmfw - Update to version 17 firmware for all devices supported by iwm.
Imre Vadász [Mon, 19 Sep 2016 19:26:11 +0000 (21:26 +0200)]
iwmfw - Update to version 17 firmware for all devices supported by iwm.

5 days agoif_iwm - Recognize IWM_DTS_MEASUREMENT_NOTIF_WIDE notification.
Imre Vadász [Mon, 19 Sep 2016 19:46:05 +0000 (21:46 +0200)]
if_iwm - Recognize IWM_DTS_MEASUREMENT_NOTIF_WIDE notification.

* Add the command groups enum, and the iwm_phy_ops_subcmd_ids enum
  to if_iwmreg.h definitions.

* The IWM_DTS_MEASUREMENT_NOTIF_WIDE notification will be generated by
  version 17 firmware.

Taken-From: Linux iwlwifi

5 days agoif_iwm - Very basic DTS thermal sensor support (prints temp as debug msg).
Imre Vadász [Thu, 14 Jul 2016 15:39:27 +0000 (17:39 +0200)]
if_iwm - Very basic DTS thermal sensor support (prints temp as debug msg).

* Adds IWM_DEBUG_TEMP debug message type, for printing messages related
  to temperature sensors and thermal/TDP infos.

* The firmware regularly sends us DTS measurement notifications, so just
  print the temperature value as a debugging message.

6 days agoif_iwm - Remove some more fields from struct nvm_data which are irrelevant.
Imre Vadász [Sun, 18 Sep 2016 15:33:01 +0000 (17:33 +0200)]
if_iwm - Remove some more fields from struct nvm_data which are irrelevant.

* These values are only used for dvm devices in Linux's iwlwifi
  (i.e. not relevant for iwm).

7 days agoif_iwm - Only for family 7000 power-down busmaster DMA clocks when stopping.
Imre Vadász [Sun, 18 Sep 2016 12:29:30 +0000 (14:29 +0200)]
if_iwm - Only for family 7000 power-down busmaster DMA clocks when stopping.

Taken-From: Linux iwlwifi

7 days agoif_iwm - Implement apmg_wake_up_wa workaround properly for 7000 family.
Imre Vadász [Fri, 16 Sep 2016 20:44:40 +0000 (22:44 +0200)]
if_iwm - Implement apmg_wake_up_wa workaround properly for 7000 family.

* Add iwm_pcie_set_cmd_in_flight() and iwm_pcie_clear_cmd_in_flight()
  helper methods.

* Use ring->queued tracking in the command queue to set/clear the
  cmd_hold_nic_awake bit at the right points.

Taken-From: Linux iwlwifi

7 days agoif_iwm - Fix up RSSI calculations for scan results and normal RX operations.
Imre Vadász [Sun, 18 Sep 2016 08:07:27 +0000 (10:07 +0200)]
if_iwm - Fix up RSSI calculations for scan results and normal RX operations.

* hard code a noise floor of -96 for now. The noise floor update code
  returns some "interesting" values that I can't map to anything useful
  right now.
* Ensure a default noise floor is set - otherwise the initial scan results
  have a noise floor of '0'.
* Fix up the RSSI calculation to be correctly relative to the noise floor.
  The RSSI routines return an absolute value in dBm - so fix this up.
* Cap RSSI values appropriately.
* Ensure we pass in a 1/2 dB unit value in to net80211.

Taken-From: FreeBSD (SVN r305917)

8 days agoBelatedly bump DF version after SSL libraries were privatized
John Marino [Fri, 16 Sep 2016 14:30:32 +0000 (09:30 -0500)]
Belatedly bump DF version after SSL libraries were privatized

10 days agoUpdate the pciconf(8) database.
Sascha Wildner [Thu, 15 Sep 2016 13:28:43 +0000 (15:28 +0200)]
Update the pciconf(8) database.

September 13, 2016 snapshot from http://pciids.sourceforge.net/

12 days agoif_iwm - Use iwm_mvm_scan_stop_wait to properly abort scans.
Imre Vadász [Sun, 17 Jul 2016 17:30:00 +0000 (19:30 +0200)]
if_iwm - Use iwm_mvm_scan_stop_wait to properly abort scans.

* Add IWM_FLAG_SCAN_RUNNING to sc->sc_flags to track whether the firmware
  is currently running a scan, in order to decide wheter iwm_scan_end
  needs to abort a running scan.

* In iwm_scan_end, if the scan is still running, we now abort it, in order
  to keep the firmware scanning state in sync.

* Try to make things a bit simpler, by reacting on the
  IWM_SCAN_ITERATION_COMPLETE_UMAC. This should be fine since we always
  only tell the firmware to do a single scan iteration anyway.

12 days agoif_iwm - Add scan abort functions, to properly cancel a running scan.
Imre Vadász [Mon, 18 Jul 2016 20:03:27 +0000 (22:03 +0200)]
if_iwm - Add scan abort functions, to properly cancel a running scan.

* Uses the notification wait api to wait for the corresponding scan
  complete notification after sending the abort command.

Taken-From: Linux iwlwifi

13 days agoif_iwm - Get rid of iwm_disable_rx_dma, just use iwm_pcie_rx_stop directly.
Imre Vadász [Sun, 11 Sep 2016 20:23:50 +0000 (22:23 +0200)]
if_iwm - Get rid of iwm_disable_rx_dma, just use iwm_pcie_rx_stop directly.

* This also fixes one of many small nic lock handling bugs, and matches
  iwlwifi's code.

13 days agoif_iwm - Use notification wait API to wait for calibration to complete.
Imre Vadász [Sun, 11 Sep 2016 19:10:43 +0000 (21:10 +0200)]
if_iwm - Use notification wait API to wait for calibration to complete.

Taken-From: Linux iwlwifi

13 days agoif_iwm - Add implementation of the notification wait api from iwlwifi.
Imre Vadász [Mon, 18 Jul 2016 19:39:24 +0000 (21:39 +0200)]
if_iwm - Add implementation of the notification wait api from iwlwifi.

Taken-From: Linux iwlwifi

13 days agoif_iwm - Change 2nd arg of iwm_phy_db_set_section() to struct iwm_rx_packet.
Imre Vadász [Sun, 11 Sep 2016 16:12:28 +0000 (18:12 +0200)]
if_iwm - Change 2nd arg of iwm_phy_db_set_section() to struct iwm_rx_packet.

* This matches the function declaration in Linux's iwlwifi.

13 days agoif_iwm - Store paging_mem_size field in firmware image information struct.
Imre Vadász [Sun, 11 Sep 2016 15:48:46 +0000 (17:48 +0200)]
if_iwm - Store paging_mem_size field in firmware image information struct.

13 days agoif_iwm - Get rid of some gratuitous constant renaming wrt. Linux iwlwifi.
Imre Vadász [Tue, 6 Sep 2016 20:01:02 +0000 (22:01 +0200)]
if_iwm - Get rid of some gratuitous constant renaming wrt. Linux iwlwifi.


* IWM_UCODE_TYPE_* -> IWM_UCODE_* (except for IWM_UCODE_TYPE_MAX which

13 days agoif_iwm - Get rid of SYNC_RESP_STRUCT and SYNC_RESP_PTR macros.
Imre Vadász [Sun, 11 Sep 2016 15:18:02 +0000 (17:18 +0200)]
if_iwm - Get rid of SYNC_RESP_STRUCT and SYNC_RESP_PTR macros.

* Not needed, because we just do a single bus_dmamap_sync for syncing the
  complete received frame, instead of explicitly bus_dmamap_sync-ing
  subranges of the frame like in the original OpenBSD code.

13 days agoif_iwm - Remove unused fw_totlen field in struct iwm_fw_sects.
Imre Vadász [Sun, 11 Sep 2016 15:05:22 +0000 (17:05 +0200)]
if_iwm - Remove unused fw_totlen field in struct iwm_fw_sects.

2 weeks agosys/vfs/hammer: Change unused PFS ioctl flag to reserved
Tomohiro Kusumi [Fri, 9 Sep 2016 17:02:28 +0000 (02:02 +0900)]
sys/vfs/hammer: Change unused PFS ioctl flag to reserved

2 weeks agosbin/hammer: Add clrpfs()
Tomohiro Kusumi [Fri, 9 Sep 2016 16:00:24 +0000 (01:00 +0900)]
sbin/hammer: Add clrpfs()

The one in getpfs() is okay to clear pfs_id with -1,
because scanpfsid() will overwrite pfs_id without using it.

It's also okay to clear the whole &pfs before init_pfsd().
This is actually better than not clearing header part.

2 weeks agopowerd - Detect power state changes
Matthew Dillon [Thu, 8 Sep 2016 23:02:07 +0000 (16:02 -0700)]
powerd - Detect power state changes

* The list of available frequencies changes when the power state changes,
  detect such changes and set parameters for all cpus verses making
  incremental changes.

* Fixes issue with powerd leaving the laptop running at a lower frequency
  when the laptop is unplugged and then plugged back in.

2 weeks agosys/vfs/hammer: Remove wrong comment
Tomohiro Kusumi [Thu, 8 Sep 2016 16:07:09 +0000 (01:07 +0900)]
sys/vfs/hammer: Remove wrong comment

This comment is true for other ioctls, but not for HAMMERIOC_SET_PSEUDOFS.

hammer_mkroot_pseudofs() uses this ip to make sure localization
equals that of PFS#0. In other words, a new PFS can only be created
under PFS#0.

2 weeks agosbin/hammer: Return -1 if readlink(2) failed
Tomohiro Kusumi [Thu, 8 Sep 2016 12:24:10 +0000 (21:24 +0900)]
sbin/hammer: Return -1 if readlink(2) failed

If the path is a link and readlink(2) failed, it shouldn't continue
with empty buf[].

2 weeks agosbin/hammer: Refactoring
Tomohiro Kusumi [Thu, 8 Sep 2016 12:22:44 +0000 (21:22 +0900)]
sbin/hammer: Refactoring

fd is < 0 only when both scanpfs() and open(2) failed.

2 weeks agocorepower: Fix identify method for multi-cpu-package systems
Sepherosa Ziehau [Thu, 8 Sep 2016 13:15:06 +0000 (21:15 +0800)]
corepower: Fix identify method for multi-cpu-package systems

CHIP_LEVEL means physical cpu package, while PACKAGE_LEVEL means
the whole box; admittedly it is kinda confusion to me at least.

2 weeks agoFix build with NO_OPENSSL set
John Marino [Thu, 8 Sep 2016 06:21:59 +0000 (01:21 -0500)]
Fix build with NO_OPENSSL set

In addition to several missing CFLAGS to point to the private libressl
headers, various issues related to libressl were fixed.  These were
exposed by setting NO_OPENSSL in make.conf (and they were obscured
when the compiler found the original openssl headers).

2 weeks agolibc - restir arc4random() on fork()
Matthew Dillon [Thu, 8 Sep 2016 06:09:12 +0000 (23:09 -0700)]
libc - restir arc4random() on fork()

* Fix an issue where the arc4random() function was not being re-stirred
  on a fork.

Reported-by: zrj
2 weeks agoRemove duplicate XAUTH_PATH handling
John Marino [Thu, 8 Sep 2016 03:01:46 +0000 (22:01 -0500)]
Remove duplicate XAUTH_PATH handling

The XAUTH_PATH definition and CFLAG are defined in Makefile.ssh.common
which in included by these two makefiles, so eliminate the redundant

Reported by: studbolt

2 weeks agouipc: Make sure that listen is completed.
Sepherosa Ziehau [Wed, 7 Sep 2016 10:54:24 +0000 (18:54 +0800)]
uipc: Make sure that listen is completed.

For unix socket, only HAVEPCCACHED really means the listen has been

Reported-by: dillon@
2 weeks agoSwitch base to use private LibreSSL libaries
John Marino [Wed, 7 Sep 2016 22:33:17 +0000 (17:33 -0500)]
Switch base to use private LibreSSL libaries

All base users of the OpenSSL libraries (libssl.so and libcrypto.so) have
been modified to link against the new LibreSSL versions instead.

The OpenSSL libraries are still built by default, but nothing in base will
use them.  However, its certain that a myriad of dports link to OpenSSL
although this may change in the future.

The OpenSSL library building can be suppressed by putting NO_OPENSSL in
/etc/make.conf.  The existing OpenSSL libraries and headers are not (yet)
removed, however, even with that setting.

2 weeks agoif_iwm - Sync valid_tx_ant and valid_rx_ant mask handling with iwlwifi.
Imre Vadász [Wed, 7 Sep 2016 21:21:54 +0000 (23:21 +0200)]
if_iwm - Sync valid_tx_ant and valid_rx_ant mask handling with iwlwifi.

* This fixes the phy_cfg field sent in the iwm_send_phy_cfg_cmd()
  command, which wasn't taking into account the valid_rx_ant and
  valid_tx_ant masks from nvm_data before.

2 weeks agoif_iwm - Use chipset configuration structs like iwlwifi does.
Imre Vadász [Tue, 6 Sep 2016 20:55:36 +0000 (22:55 +0200)]
if_iwm - Use chipset configuration structs like iwlwifi does.

* This makes it a bit easier to factor out common parts for e.g. the
  7000 chipset family.

* Add iwm7265d config, and recognize the 7265D chipset variant via the
  hardware revision.

2 weeks agoif_iwm - Use ic->ic_tq for iwm_endscan_cb instead of a private taskqueue.
Imre Vadász [Tue, 26 Jul 2016 17:34:08 +0000 (19:34 +0200)]
if_iwm - Use ic->ic_tq for iwm_endscan_cb instead of a private taskqueue.

Taken-From: FreeBSD (svn r303326)

2 weeks agopowerd - Add temperature-based management
Matthew Dillon [Wed, 7 Sep 2016 18:41:25 +0000 (11:41 -0700)]
powerd - Add temperature-based management

* Add temperature-based management, with a default range of 75:85 (in C).
  If the cpu temperature exceeds the low range, powerd will enter
  temperature control mode and begin ramping-down the cpu frequency
  regardless of the load in order to prevent the laptop from reaching
  the high range.

* Add -H lowtemp:hightemp option to allow the range to be set when
  starting or restarting powerd.

* Add code to automatically kill a previously-running powerd when a new
  powerd is started.  This makes the system operator's life easier as there
  is no need to hunt-down and kill the previously-running powerd when
  restarting it with new options.

* No desktop or server should ever get to 75C unless your cooling is broken,
  so this feature is primarily targetted at laptops.  Many laptops can exceed
  80C due to bad cooling design (and poor-design in general), and a vendor
  propensity to goose the specs to make their laptops look good on paper.
  Even the BIOS HOT cap tends to actually be too hot for continuous use.

  But it just isn't a good idea to exceed 80C regardless of what the specs
  say.  The laptop will last a lot longer and this reduces your chances of
  having melt-down or fire.  People who run BSD or Linux systems on laptops
  often do bulk compiles on them and/or other things, such as multiple
  browser windows, tabs, a lot of multi-media, multiple video windows,
  multiple video outputs, etc, which can utilize all available resources
  on the laptop.  Vendors usually don't take all of this into account.
  This feature can allow all of this to happen without burning the laptop

  You can also use this feature if your laptop gets too hot when sitting on
  your lap :-).

Tested-by: Multiple people.
2 weeks agocaesar(6): Mention rot13(6) too.
zrj [Wed, 7 Sep 2016 14:26:30 +0000 (17:26 +0300)]
caesar(6): Mention rot13(6) too.

Taken-from: FreeBSD

2 weeks agoWORLD_CCOPTLEVEL: Unbreak world at -O2
zrj [Wed, 7 Sep 2016 05:19:05 +0000 (08:19 +0300)]
WORLD_CCOPTLEVEL: Unbreak world at -O2

LibreSSL import, -fstrict-aliasing

2 weeks agokernel - Deal with lost IPIs (VM related) (2)
Matthew Dillon [Wed, 7 Sep 2016 01:09:14 +0000 (18:09 -0700)]
kernel - Deal with lost IPIs (VM related) (2)

* Fix an issue where Xinvltlb interacts badly with a drm console framebuffer,
  imploding the machine.  The 1/16 second watchdog can trigger during certain
  DRM operations due to excessive interrupt disablement in the linux DRM code.

* Avoid kprintf()ing anything by default.

* Also make a minor fix to the watchdog logic to force the higher-level
  Xinvltlb loop to re-test.

2 weeks agoAdd private versions of libcrypto and libssl (LibreSSL v2.4.2)
John Marino [Tue, 6 Sep 2016 16:06:42 +0000 (11:06 -0500)]
Add private versions of libcrypto and libssl (LibreSSL v2.4.2)

Unless NO_LIBRESSL is defined in make.conf, the next buildworld
will install headers at /usr/include/priv/openssl.  Four new
libraries will be install here:
The symlinks are installed:

Right now, nothing in userland links to these libraries.  In the
future, the userland will be linked to these LibreSSL private
libraries instead of the base OpenSSL libraries.

2 weeks agoMerge branch 'vendor/LIBRESSL'
John Marino [Tue, 6 Sep 2016 16:03:50 +0000 (11:03 -0500)]
Merge branch 'vendor/LIBRESSL'

2 weeks agoif_iwm - Sync nvm parsing code with Linux iwlwifi.
Imre Vadász [Tue, 6 Sep 2016 18:37:05 +0000 (20:37 +0200)]
if_iwm - Sync nvm parsing code with Linux iwlwifi.

* sc->sc_nvm becomes sc->nvm_data and is now a pointer instead of an
  inlined struct.

* Add sc->eeprom_size and sc->nvm_hw_section_num configuration values to
  struct iwm_softc.

* For now continue to avoid negative error return-values, and use pointer
  variables for some return values, as before.

* Continue to omit LAR (location aware regulatory) related code as well.

2 weeks agoImport LibreSSL v2.4.2 to vendor branch vendor/LIBRESSL
John Marino [Tue, 6 Sep 2016 16:00:43 +0000 (11:00 -0500)]
Import LibreSSL v2.4.2 to vendor branch

2 weeks agobcd(6): Add decoding option and few extras.
zrj [Tue, 6 Sep 2016 13:35:45 +0000 (16:35 +0300)]
bcd(6): Add decoding option and few extras.

While there, do the same for ppt(6).

Taken-from: OpenBSD

2 weeks agosys/vfs/hammer: Change HAMMER_VOLUME_NUMBER_XXX macros to inline functions
Tomohiro Kusumi [Tue, 6 Sep 2016 10:56:44 +0000 (19:56 +0900)]
sys/vfs/hammer: Change HAMMER_VOLUME_NUMBER_XXX macros to inline functions

I've added these macros in 78249d7f in 2015 for a bug fix,
but these macros should have been inline functions.
Not very readable.

2 weeks agosbin/hammer: Use inline CRC functions in userspace
Tomohiro Kusumi [Mon, 5 Sep 2016 14:45:34 +0000 (23:45 +0900)]
sbin/hammer: Use inline CRC functions in userspace

Remove crc32 prototypes in sbin/hammer/hammer_util.h.
Remove hammer_crc_test_leaf() which is a copy-pasted function
from kernel code.

2 weeks agosys/vfs/hammer: Add sys/vfs/hammer/hammer_crc.h
Tomohiro Kusumi [Mon, 5 Sep 2016 14:34:53 +0000 (23:34 +0900)]
sys/vfs/hammer: Add sys/vfs/hammer/hammer_crc.h

HAMMER's CRC functions currently defined in sys/vfs/hammer/hammer.h
could be exposed to userspace, since CRCs in various ondisk data
structures are a part of HAMMER's ondisk format. In fact, userspace
has a copy-pasted function from kernel code.

This commit adds a new file sys/vfs/hammer/hammer_crc.h for both
kernel and userspace. CRC functions are moved to this file.

The reason for adding a new file instead of adding these inlined
functions to hammer_{disk,btree,ioctl}.h is because crc32() requires
explicit function prototype in userspace.
(i.e. causes include order issues by userspace headers)

Having function prototypes in hammer_{disk,btree}.h should also be
avoided, because that brings in unnecessary dependencies that could
be avoided for headers for ondisk format.

2 weeks agokernel - Deal with lost IPIs (VM related)
Matthew Dillon [Tue, 6 Sep 2016 00:11:05 +0000 (17:11 -0700)]
kernel - Deal with lost IPIs (VM related)

* Some (all?) VMs appear to be able to lose IPIs.  Hopefully the same can't
  be said for device interrupts!  Add some recovery code for lost Xinvltlb
  IPIs for now.

  For synchronizing invalidations we use the TSC and run a recovery attempt
  after 1/16 second, and every 1 second there-after, if an Xinvltlb is not
  responded to (smp_invltlb() and smp_invlpg()).  The IPI will be re-issued.

* Some basic testing shows that a VM can stall out a cpu thread for an
  indefinite period of time, potentially causing the above watchdog to
  trigger.  Even so it should not have required re-issuing the IPI, but
  it seems it does, so the VM appears to be losing the IPI(!) when a cpu
  thread stalls out on the host!  At least with the VM we tested under,
  type unknown.

* IPIQ IPIs currently do not have any specific recovery but I think each
  cpu will poll for IPIQs slowly in the idle thread, so they might
  automatically recover anyway.

Reported-by: zach
2 weeks agoif_iwm - Make sure we call iwm_detach_local only once.
Imre Vadász [Mon, 5 Sep 2016 20:48:56 +0000 (22:48 +0200)]
if_iwm - Make sure we call iwm_detach_local only once.

* Add sc_attached variable to struct iwm_softc, to keep track of whether
  we already called iwm_detach_local.

2 weeks agoif_iwm - Remove calib_version field from struct iwm_nvm_data.
Imre Vadász [Mon, 5 Sep 2016 16:00:13 +0000 (18:00 +0200)]
if_iwm - Remove calib_version field from struct iwm_nvm_data.

* This value is only used for dvm devices in Linux iwlwifi.

2 weeks agoif_iwm - Sync iwm_nvm_read_chunk() function with Linux iwlwifi.
Imre Vadász [Sun, 4 Sep 2016 23:14:02 +0000 (01:14 +0200)]
if_iwm - Sync iwm_nvm_read_chunk() function with Linux iwlwifi.

2 weeks agoif_iwm - Sync if_iwm_phy_db code with Linux iwlwifi.
Imre Vadász [Sun, 4 Sep 2016 22:43:40 +0000 (00:43 +0200)]
if_iwm - Sync if_iwm_phy_db code with Linux iwlwifi.

* DragonFly requires NULL checks before kfree(9) calls.

2 weeks agoif_iwm - Remove some unneeded #include-s from all .c files.
Imre Vadász [Sun, 4 Sep 2016 20:19:55 +0000 (22:19 +0200)]
if_iwm - Remove some unneeded #include-s from all .c files.

2 weeks agokernel - Fix indefinite wait buffer during heavy swapping
Matthew Dillon [Mon, 5 Sep 2016 19:33:42 +0000 (12:33 -0700)]
kernel - Fix indefinite wait buffer during heavy swapping

* Fix a deadlock which can occur between CAM and the VM system due to
  a bug in uiomove_nofault() when called via vop_helper_read_shortcut().

  If the backing store is swapped out, vm_fault()/vm_fault_object() attempts
  to page the data in instead of telling uiomove_nofault() to give up.
  This can result in a deadlock against the underlying vm_page's in the
  file that might already be undergoing I/O.

* Probably also reported by other people over the years, but could never
  track it down until now.

Reported-by: Studbolt
2 weeks agofortune(6): Fix some typos in the datfiles.
Sascha Wildner [Mon, 5 Sep 2016 17:37:42 +0000 (19:37 +0200)]
fortune(6): Fix some typos in the datfiles.

2 weeks agofortune(6): Add new fortunes from FreeBSD
zrj [Mon, 5 Sep 2016 14:23:51 +0000 (17:23 +0300)]
fortune(6): Add new fortunes from FreeBSD

Tried to avoid dups.
While there, move few fortunes that were deemed non offencive.

Taken-from: FreeBSD

2 weeks agosys/vfs/hammer: Add inline CRC functions for mrec head
Tomohiro Kusumi [Mon, 5 Sep 2016 13:40:18 +0000 (22:40 +0900)]
sys/vfs/hammer: Add inline CRC functions for mrec head

2 weeks agosys/vfs/hammer: Add inline CRC functions for undo/redo fifo head
Tomohiro Kusumi [Mon, 5 Sep 2016 13:24:32 +0000 (22:24 +0900)]
sys/vfs/hammer: Add inline CRC functions for undo/redo fifo head

Note that undo->head is at offset 0 of undo,
and the same for redo->head.

2 weeks agofortune(6): Fix typos in some of the fortunes.
zrj [Mon, 5 Sep 2016 13:05:18 +0000 (16:05 +0300)]
fortune(6): Fix typos in some of the fortunes.

Minor style fixes, compact etc.
(mainly to reduce diffs against FreeBSD vartiant)
Also attempt to remove some dups.

2 weeks agokernel/clock: Solve aa85218e6 a bit better.
Sascha Wildner [Sun, 4 Sep 2016 22:12:50 +0000 (00:12 +0200)]
kernel/clock: Solve aa85218e6 a bit better.

2 weeks agoif_iwm - The HW Revision stepping constants should be in if_iwmreg.h.
Imre Vadász [Sun, 4 Sep 2016 16:07:16 +0000 (18:07 +0200)]
if_iwm - The HW Revision stepping constants should be in if_iwmreg.h.

3 weeks agoif_iwm - Remove more old unused scan API definitions.
Imre Vadász [Sun, 4 Sep 2016 13:43:51 +0000 (15:43 +0200)]
if_iwm - Remove more old unused scan API definitions.

* Use IWM_DEFAULT_SCAN_CHANNELS definition instead of
  IWM_MAX_NUM_SCAN_CHANNELS as default value for

3 weeks agosys/vfs/hammer: Add inline CRC functions for layer1/2
Tomohiro Kusumi [Sun, 4 Sep 2016 11:45:20 +0000 (20:45 +0900)]
sys/vfs/hammer: Add inline CRC functions for layer1/2

3 weeks agosys/vfs/hammer: Make the existing CRC functions inline
Tomohiro Kusumi [Sun, 4 Sep 2016 11:11:39 +0000 (20:11 +0900)]
sys/vfs/hammer: Make the existing CRC functions inline

3 weeks agosys/vfs/hammer: Add inline CRC functions hammer_crc_get_xxx()
Tomohiro Kusumi [Sun, 4 Sep 2016 05:50:21 +0000 (14:50 +0900)]
sys/vfs/hammer: Add inline CRC functions hammer_crc_get_xxx()

in addition to the existing hammer_crc_set_xxx() and hammer_crc_test_xxx().
Reduces overly duplicated crc32(&..., HAMMER_XXX_CRCSIZE);.

The only functional difference is that hammer_crc_test_leaf()
now compares (leaf->data_crc == 0) if hammer_crc_get_leaf()
returns 0 for inode whose length is not sizeof(hammer_inode_data).
It previously directly returned false for this case.

It is still expected that (leaf->data_crc == 0) would be false,
however inode size (not file size, but the size of inode itself)
other than sizeof(hammer_inode_data) is wrong which shouldn't
happen in the first place. hammer_crc_set_leaf() has assertion
for this like it did before, but only if INVARIANTS is set.

3 weeks agosbin/hammer: Use HAMMER_ENTRY_NAME_OFF
Tomohiro Kusumi [Sun, 4 Sep 2016 04:24:16 +0000 (13:24 +0900)]
sbin/hammer: Use HAMMER_ENTRY_NAME_OFF

3 weeks agoif_iwm - Remove deprecated scan API definitions.
Imre Vadász [Sun, 4 Sep 2016 11:26:25 +0000 (13:26 +0200)]
if_iwm - Remove deprecated scan API definitions.

* This removes deprecated scan API definitions, which have been unused
  since the upgrade to version 16 firmware in commit

* This commit matches the header-file changes in Linux git commit

3 weeks agoif_iwm - Remove wrappers around iwm_dma_contig_free() calls.
Imre Vadász [Sun, 4 Sep 2016 09:29:51 +0000 (11:29 +0200)]
if_iwm - Remove wrappers around iwm_dma_contig_free() calls.

Inspired-by: OpenBSD
3 weeks agoSync ACPICA with Intel's version 20160831.
Sascha Wildner [Sun, 4 Sep 2016 08:12:02 +0000 (10:12 +0200)]
Sync ACPICA with Intel's version 20160831.

* Improve support for the so-called "module-level code".

* Fixed a possible mutex error during control method auto-serialization.

* Implemented two new table handler events (table install/uninstall).

* New 'execute predef' subcommand in the AML debugger.

* Various issues fixed.

For a more detailed list, please see sys/contrib/dev/acpica/changes.txt.

3 weeks agokernel/scsi: Do not announce pass/sg in bootverbose.
zrj [Sun, 4 Sep 2016 06:58:01 +0000 (09:58 +0300)]
kernel/scsi: Do not announce pass/sg in bootverbose.

At least on one machine it causes reprobe of da0 that ends up with
strange geometry, stuck boot and other weirdness. TBI.

For now disable these, cause acpica update is comming.

3 weeks agolibc - Fix malloc() alignment for small allocations
Matthew Dillon [Sat, 3 Sep 2016 17:24:56 +0000 (10:24 -0700)]
libc - Fix malloc() alignment for small allocations

* malloc()'s slab allocator was set to use 8-byte alignment
  for any allocation < 128 bytes that was not otherwise on
  an integral alignment boundary.  This breaks GCC-7 which assumes
  16-byte alignment for non-16-integral sizes < 128 bytes.  e.g.
  if 18 bytes is allocated, GCC-7 assumes the resulting pointer will
  be 16-byte-aligned.

* The standard is somewhat deficient in its characterization of what the
  required alignment should be, because there are already instructions
  which prefer 32 and 64 byte alignments, but are relaxed on Intel to
  only require 16-byte alignments (aka %ymm and %zmm registers in the
  vector extensions), and its stupid to enforce even larger alignments
  for tiny allocations.

* But generally speaking it makes sense to enforce a 16-byte alignment
  for any allocations >= 16 bytes, regardless of the size being passed-in
  not being 16-byte aligned, and this change does that.  Allocations of
  less than 16 bytes will still be 8-byte aligned because it is phenominally
  wasteful for them not to be.

Reported-by: marino
3 weeks agosbin/newfs_hammer: Cleanup
Tomohiro Kusumi [Sat, 3 Sep 2016 15:11:44 +0000 (00:11 +0900)]
sbin/newfs_hammer: Cleanup

3 weeks agosbin/newfs_hammer: Don't bother initializing reserved ondisk field
Tomohiro Kusumi [Sat, 3 Sep 2016 12:59:53 +0000 (21:59 +0900)]
sbin/newfs_hammer: Don't bother initializing reserved ondisk field

pfsd is bzero'd, so no need to explicitly zero clear a reserved field
that isn't used for anything.

The numbering for reserved fields has been reassigned in 77f7bc0a
so as to cleanup mixed up name and numbering, based on the fact
that reserved fields are not touched by anyone *except* for this.
Doesn't break anything, but it should still just not care about it.

3 weeks agosbin/hammer: Remove unused zone field in struct zone_stat
Tomohiro Kusumi [Sat, 3 Sep 2016 12:38:47 +0000 (21:38 +0900)]
sbin/hammer: Remove unused zone field in struct zone_stat

Zone statistics' init api returns a pointer to calloc'd array
where an index represents zone itself, so this zone field isn't
necessary as the comment says it's unused.