MFC r331666: ZFS vn_rele_async: catch up with the use of refcount(9) for the vnode use count

MFC r331874: x86 cpu_reset_proxy: no need to stop_cpus() the original processor

MFC r331875: x86 cpu_reset: if failed to switch to BSP proceed to cpu_reset_real

MFC r331878: unify amd64 and i386 cpu_reset() in x86/cpu_machdep.c

fix pc98 compilation issue in r332760

bapt (1):

MFC r331005-r331006

brooks (10):

MFC r331648:

MFC r331651-r331653

MFC r331654, r331869

MFC r331641, r331644, r332158

MFC r331797:

GC never enabled support for SIOCGADDRROM and SIOCGCHIPID.

MFC r332087:

MFC r332151:

Fix wl(4) after r332288.

MFC r332088:

cognet (1):

MFC r329388, r331441 and r331898, to bring the -CURRENT ck version. r329388: Define CK_MD_TSO for the relevant arches (i386, amd64 and sparc64). Defaulting to CK_MD_RMO has the unfortunate side effect of generating memory barriers that are useless on those arches, and the even more unfortunate side effect of generating lfence/sfence/mfence on i386, even if older CPUs don't support it. This should fix the panic reported when using IPFW on a Pentium 3. Note that mfence and sfence might still be used in a few case, but that shouldn't happen in FreeBSD right now, and should be fixed upstream first.

Document r331603, sysctl(8) support for setting multiple values to a multi-value node.

Document r328668, nvmecontrol(8) SMART data returned in a numeric value instead of a hex value.

Document r328716, new nvmecontrol(8) WDC-specific control options.

Document r325473, rsh(1) '-N' flag addition.

Fix an incomplete sentence.

MFC r326278 (manu):

Fix a typo.

Fix a misspelled word.

Use 'literal' tags around compiler-rt, as it is a library, not an application.

Update stable/11 from 11.1-STABLE to 11.2-PRERELEASE, marking the official start of the code slush.

glebius (1):

Merge r331871: Handle a special case when a slab can fit only one allocation, and zone has a large alignment. With alignment taken into account uk_rsize will be greater than space in a slab. However, since we have only one item per slab, it is always naturally aligned.

gonzo (2):

MFC r328434 by maxim:

Fix mis-merge of r329507 in r331501

grehan (2):

MFC r325261 Emulate the "OR reg, r/m" instruction (opcode 0BH).

MFC r330764 Add CR2 get/set support.

hselasky (3):

MFC r331642: Add support for right and middle click with integrated button to WSP USB trackpad driver.

MFC r331694: Swap two instances of regular macros with function macros in the LinuxKPI, to narrow down the substitution scope.

MFC r331828: Optimise use of Giant in the LinuxKPI.

ian (2):

MFC r331868:

Remove .info debugging output that accidentally got left in for MFC commit.

imp (1):

MFC r332780,r332783: Intel drives have an optimal alignment for I/O. While they honor I/Os that cross this boundary, they perform better when this isn't the case. Intel uses the 3rd byte in the vendor specific area for this. The DC P3500 was previously listed without any explanation. Add the DC P3520 and DC P4500 to the list.

MFC 331466: Add a workaround to the hypervisor detection for older versions of KVM.

jkim (1):

MFC: r314875, r331963

jtl (10):

MFC r332120: If a user closes the socket before we call tcp_usr_abort(), then tcp_drop() may unlock the INP. Currently, tcp_usr_abort() does not check for this case, which results in a panic while trying to unlock the already-unlocked INP (not to mention, a use-after-free violation).

MFC r331926: r330675 introduced an extra window check in the LRO code to ensure it captured and reported the highest window advertisement with the same SEQ/ACK. However, the window comparison uses modulo 2**16 math, rather than directly comparing the absolute values. Because windows use absolute values and not modulo 2**16 math (i.e. they don't wrap), we need to compare the absolute values.

MFC r331488: This change adds a flag to the DAD entry to indicate whether it is currently on the queue. This prevents accidentally doubly-removing a DAD entry from the queue, while also simplifying some of the logic in nd6_dad_stop().

MFC r331309: If the INP lock is uncontested, avoid taking a reference and jumping through the lock-switching hoops.

MFC r329071: On bootup, the amd64 pmap initialization code creates page-table mappings for the pages used for the kernel and some initial allocations used for the page table. It maps the kernel and the blocks used for these initial allocations using 2MB pages.

MFC r329171: Mark the pages used for the initial page-table entries as wired. This makes them consistent with the way other page-table pages are allocated. It also provides the rest of the VM system a good clue that these pages are used.

MFC r330510: Prior to r329071, pmap_bootstrap() used pmap_kmem_choose() to round the first available virtual address to a 2MB boundary. After r329071, create_pagetables() rounds firstaddr up to a 2MB boundary. This ensures the kernel is mapped in super-pages, which is the point of the logic in pmap_kmem_choose(). Therefore, it is no longer necessary for pmap_bootstrap() to round up to the 2MB boundary again.

MFC r330511: We shouldn't need to execute code in the recursive page table mappings; therefore, it should be safe to set the NX bit on the PML4E for the recursive page table mappings. According to the Intel docs, the effect of the NX bit should propogate to any page reached through a PML4E which has the NX bit set.

MFC r306768: If the new window size is less than the old window size, skip the calculations to check if we should advertise a larger window.