jhb [Mon, 3 Nov 2014 00:13:20 +0000 (00:13 +0000)]
MFC 273834:
Rework the EXAMPLES section to be a bit clearer.
- Add an example of using etcupdate diff.
- Create a subsection on bootstrapping that is below the simple
examples. This should make it clearer that 'etcupdate extract' is
a one-time operation and not part of the common workflow. It also
adds more suggestions on when bootstrapping is needed and additional
steps to make future merges simpler.
jhb [Sun, 2 Nov 2014 23:22:22 +0000 (23:22 +0000)]
MFC 273644,273738:
Clarify that pthread_cleanup_push()/pop() are implemented as macros that
create a new code block and thus must be balanced at the same lexical
scope. (This is also a requirement in POSIX.)
hrs [Sun, 2 Nov 2014 22:41:55 +0000 (22:41 +0000)]
MFC r272974,272976:
Add ${name}_env and ${name}_prepend. ${name}_env is an argument list which
will be passed to env(1). ${name}_prepend is simply prepended to the command
line for $command.
delphij [Sun, 2 Nov 2014 19:16:41 +0000 (19:16 +0000)]
MFC r273026:
Add a tunable for arc_shrink_shift (vfs.zfs.arc_shrink_shift) that
controls how much fraction, 1/2^arc_shrink_shift, should be reclaimed
when there is memory pressure.
Submitted by: Richard Kojedzinszky <krichy at tvnetwork.hu>
mav [Sun, 2 Nov 2014 17:26:13 +0000 (17:26 +0000)]
MFC r272409:
Use REPORT LUNS command for SPC-2 devices with LUN 0 disconnected.
SPC-2 tells REPORT LUNS shall be supported by devices supporting LUNs other
then LUN 0. If we see LUN 0 disconnected, guess there may be others, and
so REPORT LUNS shall be supported.
mav [Sun, 2 Nov 2014 17:23:44 +0000 (17:23 +0000)]
MFC r272401, r272402: Rework the logic of sequential SCSI LUN scanner.
Previous logic was not differentiating disconnected LUNs and absent targets.
That made it to stop scan if LUN 0 was not found for any reason. That made
problematic, for example, using iSCSI targets declaring SPC-2 compliance and
having no LUN 0 configured.
The new logic continues sequential LUN scan if:
-- we have more configured LUNs that need recheck;
-- this LUN is connected and its SCSI version allows more LUNs;
-- this LUN is disconnected, its SCSI version allows more LUNs and we
guess they may be connected (we haven't scanned first 8 LUNs yet or
kern.cam.cam_srch_hi sysctl is set to scan more).
dim [Sat, 1 Nov 2014 13:45:01 +0000 (13:45 +0000)]
MFC r273837:
Fix a clang 3.5 warning about abs(3) being given an argument of type
quad_t in setusercontext(). While here, sanitize the clamping of the
priority value, and use the correct type for the return value of
login_getcapnum().
hselasky [Fri, 31 Oct 2014 07:51:05 +0000 (07:51 +0000)]
MFC r269575, r269576 and r269578:
- Add a second Huawei SCSI eject command as USB mode switch config files
sometimes use one or the other. Maybe newer Huawei modems switched.
- Return USB_ERR_INVAL if the eject method is not known.
araujo [Fri, 31 Oct 2014 04:01:10 +0000 (04:01 +0000)]
MFC r273159:
Add two sysctl(8) to enable/disable NFSv4 server to check when setting
user nobody and/or setting group nogroup as owner of a file or directory.
Usually at the client side, if there is an username that is not in the
client's passwd database, some clients will send 'nobody@<your.dns.domain>'
in the wire and the NFSv4 server will treat it as an ERROR.
However, if you have a valid user nobody in your passwd database,
the NFSv4 server will treat it as a NFSERR_BADOWNER as its believes the
client doesn't has the username mapped.
Submitted by: Loic Blot <loic.blot@unix-experience.fr>
Reviewed by: rmacklem
Approved by: rmacklem
Sponsored by: QNAP Systems Inc.
ae [Thu, 30 Oct 2014 13:53:57 +0000 (13:53 +0000)]
MFC r272770:
When tunneling interface is going to insert mbuf into netisr queue after stripping
outer header, consider it as new packet and clear the protocols flags.
This fixes problems when IPSEC traffic goes through various tunnels and router
doesn't send ICMP/ICMPv6 errors.
hselasky [Thu, 30 Oct 2014 08:04:48 +0000 (08:04 +0000)]
MFC r273733, r273740 and r273773:
The SYSCTL data pointers can come from userspace and must not be
directly accessed. Although this will work on some platforms, it can
throw an exception if the pointer is invalid and then panic the kernel.
Add a missing SYSCTL_IN() of "SCTP_BASE_STATS" structure.
jilles [Wed, 29 Oct 2014 23:10:48 +0000 (23:10 +0000)]
MFC r266842: netinet/in.h: Expose htonl(), htons(), ntohl() and ntohs() in
strict POSIX mode.
Put the htonl(), htons(), ntohl() and ntohs() declarations under
__POSIX_VISIBLE >= 200112. POSIX.1-2001 and newer require these to be
exposed from <netinet/in.h> (as well as <arpa/inet.h>).
Note that it may be unnecessary to check __POSIX_VISIBLE >= 200112 because
older versions of POSIX and the C standard do not define this header.
However, other places in the same file already perform the check.
jilles [Wed, 29 Oct 2014 22:55:16 +0000 (22:55 +0000)]
MFC r264628: fcntl.h: Make visible various POSIX.1-2008 features.
Also, remove #if __BSD_VISIBLE where it is redundant. When __BSD_VISIBLE is
defined to 1, __POSIX_VISIBLE, __XSI_VISIBLE and __ISO_C_VISIBLE are also
defined to the newest supported version.
sbruno [Wed, 29 Oct 2014 22:17:45 +0000 (22:17 +0000)]
MFC r272720, 273061, 273062, 273063, 273064
Implement PLPMTUD blackhole detection (RFC 4821), inspired by code
from xnu sources. If we encounter a network where ICMP is blocked
the Needs Frag indicator may not propagate back to us. Attempt to
downshift the mss once to a preconfigured value.
andrew [Wed, 29 Oct 2014 16:41:20 +0000 (16:41 +0000)]
MFC r273288:
Allow the armv6 kernel to be build with PHYSADDR undefined. The kernel
will now find the virtual to physical mapping for libkvm to use at
runtime. This makes PHYSADDR redundant, however keep it around to give
everyone a chance to update their libkvm.
andrew [Wed, 29 Oct 2014 16:36:08 +0000 (16:36 +0000)]
MFC r273284:
Allow libkvm to get the kernel va to pa delta without the need for
physaddr. This should allow for a kernel where PHYSADDR and KERNPHYSADDR
are both undefined.
For now libkvm will use the old method of reading physaddr and kernaddr
to allow it to work with old kernels. This could be removed in the future
when enough time has passed.
andrew [Wed, 29 Oct 2014 16:24:02 +0000 (16:24 +0000)]
MFC r269956:
From https://sourceware.org/ml/newlib/2014/msg00113.html
By Richard Earnshaw at ARM
>
>GCC has for a number of years provides a set of pre-defined macros for
>use with determining the ISA and features of the target during
>pre-processing. However, the design was always somewhat cumbersome in
>that each new architecture revision created a new define and then
>removed the previous one. This meant that it was necessary to keep
>updating the support code simply to recognise a new architecture being
>added.
>
>The ACLE specification (ARM C Language Extentions)
>(http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.set.swdev/index.html)
>provides a much more suitable interface and GCC has supported this
>since gcc-4.8.
>
>This patch makes use of the ACLE pre-defines to map to the internal
>feature definitions. To support older versions of GCC a compatibility
>header is provided that maps the traditional pre-defines onto the new
>ACLE ones.
Stop using __FreeBSD_ARCH_armv6__ and switch to __ARM_ARCH >= 6 in the
couple of places in tree. clang already implements ACLE. Add a define
that says we implement version 1.1, even though the implementation
isn't quite complete.
mav [Tue, 28 Oct 2014 08:00:28 +0000 (08:00 +0000)]
MFC r273638:
Revert somewhat hackish geom_disk optimization, committed as part of r256880,
and the following r273143 commit, supposed to workaround introduced issue by
quite innocent-looking change.
While there is no clear understanding why, but r273143 is accused in data
corruption in some environments with high I/O load. I personally don't see
any problem in that commit, and possibly it is just a trigger to some other
bug somewhere, but better safe then sorry for now.
loos [Mon, 27 Oct 2014 12:18:07 +0000 (12:18 +0000)]
MFC: r266336, r270230 and r273263
r266336:
Allow us to compile the Ti iic driver for both OMAP4 and AM335x.
r270230:
Rewrite of ti_i2c based on gonzo's patch, fix the following bugs/problems:
. interrupt storm detected on "intr70:"; throttling interrupt source;
. Added access serialization on iicbus_transfer(), previously there was
no such protection and a new transfer could easily confuse the
controller;
. Add error checkings (i.e. stop the transfer when a error is detected
and do _not_ overwrite the previous error);
. On command done interrupt do not assume that the transfer was finished
sucessfully as we will receive the command done interrupt even after
errors;
. Simplify the FIFO handling;
. Reset the FIFO between the transfers as the FIFO may contain data from
the last (failed) transfer;
. Fix the iicbus speed for AM335x, which in turn will make better use of
the I2C noise filter (set to one internal clock cycle);
. Move the read and write handler to ithread instead of notifying the
requesting thread with wakeup(9);
. Fix the comments based on OMAP4 TRM.
The above changes allows me to read the EDID from my HDMI monitor on BBB
with gonzo's patches to support TDA19988 (which does 128 bytes reads) and
repeatedly scan the iicbus (with a modified i2c(8)) without lock up the bus.
r273263:
Fix the chan address for mtx_sleep() on bus wait. Without this fix the
threads waiting for the bus would never wake.
- Use proper include path for dtc as well as cpp.
- Call cpp with -P to avoid printing line markings.
- Allow FDT_DTS_FILE to be a list, either in the makedtb target, or in a
kernel config file.
- Add the dts include directory to the -I list when doing arm builds.
- Invoke make_dtb with MACHINE defined for cross building friendliness.
- Allow the make_dtb script to work outside of a "make buildkernel"
context by setting MACHINE from uname -m if it's not set already.
- Use sh -c '...' to launch the dtb build scripts with env prepended,
otherwise it tries to treat the env var stuff as a script file name.
ian [Sun, 26 Oct 2014 23:39:15 +0000 (23:39 +0000)]
MFC 271140:
Delete old arm dts tree. This was created by cherry picking from a
full vendor tree. This worked great until it was time to update, but
now it is time to update. Hit the rest button by removing this branch
and re-adding it by a full copy of whatever is in the vendor tree.
gjb [Sun, 26 Oct 2014 17:14:57 +0000 (17:14 +0000)]
MFC r273653:
Fix a few issues with creating VOLUME_LABEL for the
installation ISOs:
- TYPE, BRANCH, and REVISION are only defined if
OSRELEASE is not defined, so in situations where
one might set OSRELEASE for an in-house ISO build,
VOLUME_LABEL would be empty.
- makefs(8) limits the volume label to 32 characters,
which for the powerpc64 case, OSRELEASE expands to
FreeBSD-11.0-CURRENT-powerpc-powerpc64. Even with
removing the prefixing 'FreeBSD-', the string is 30
characters long, leaving zero room for suffixing the
type of ISO media (BO for bootonly, CD for cdrom, and
DVD for dvdrom).
Resolve these by defining VOLUME_LABEL when defining
OSRELEASE if unset. If OSRELEASE is defined by the
builder, use the OSRELEASE from that definition as the
VOLUME_LABEL.
In addition, for cases where both TARGET and TARGET_ARCH
are used for the VOLUME_LABEL, use TARGET_ARCH if it
differs from TARGET.
There are probably a few sharp edges here yet, but these
problems are going to affect the powerpc/powerpc64 builds
for 10.1-RELEASE, so the immediate concern is fixing the
underlying problem at hand quickly, and less so about the
elegance of the fix.
Insta-MFC ok: re (kib)
Sponsored by: The FreeBSD Foundation
ian [Sun, 26 Oct 2014 04:13:08 +0000 (04:13 +0000)]
MFC r273298:
The U-Boot README says fdt_addr_r is the right env var for fdt data
loaded into ram, but vendors also use fdtaddr and fdt_addr. Check the
recommended variable first and fall back to the others.
ian [Sun, 26 Oct 2014 04:11:32 +0000 (04:11 +0000)]
MFC r273283:
Attach this driver during BUS_PASS_BUS and move the cpu init code to a
bus_new_pass() handler so it doesn't happen until BUS_PASS_CPU. This allows
the anatop driver to outbid the generic simplebus driver (which the FDT
data describes as compatible).
ian [Sun, 26 Oct 2014 04:08:34 +0000 (04:08 +0000)]
MFC r272334, r273004:
Return the actual baud rate programmed in the hardware rather than 115200.
This allows the "3wire" entry in /etc/ttys (with no speed specified) to work.
Use the FIFOs in the imx5/imx6 uart hardware instead of interrupting on
each byte sent or received.
ian [Sun, 26 Oct 2014 04:01:57 +0000 (04:01 +0000)]
MFC r272109, r272181:
Replace multiple nearly-identical copies of code to walk through an FDT
node's interrupts=<...> property creating resource list entries with a
single common implementation. This change makes ofw_bus_intr_to_rl() the
one true copy of that code and removes the copies of it from other places.
This also adds handling of the interrupts-extended property.
ian [Sun, 26 Oct 2014 03:52:45 +0000 (03:52 +0000)]
MFC r271595, r271601, r271607, r271630:
Add compat strings for all the flavors of GIC this driver should support.
Also allow the driver to attach to ofwbus as well as simplebus, some FDT
data puts the root interrupt controller on the root bus.
Add a common routine for parsing FDT data describing an ARM GIC interrupt.
Use gic_decode_fdt() rather than a local routine to parse fdt interrupt
properties. Move fdt_pic_table and fdt_fixup_table into imx6_machdep.c,
which means imx6 doesn't need imx_common.c anymore.
The private peripheral interrupts start at offset 16, not 0. Also, use
names rather than inline mystery constants for these offsets.
ian [Sun, 26 Oct 2014 02:44:41 +0000 (02:44 +0000)]
MFC r271097, r271100, r271101, r271102, r271124:
- Add a basic iomux driver for imx6.
- Implement the same public interface in imx51 and imx6 iomux
- The iomux driver is no longer optional, remove it from kernel configs.
- Implement the imx_iomux_get/set_gpr() interface for imx6.
- Stop setting the iomux device status to disabled, now that we have a driver.
ian [Sun, 26 Oct 2014 02:37:42 +0000 (02:37 +0000)]
MFC r268834, r268835:
o Enable GPIO device driver for i.MX6.
It was originally written for i.MX5 and compatible with newer chip.
o Extend device tree information
o style(9) fixes
o Rename gpio driver file.
ian [Sun, 26 Oct 2014 02:25:34 +0000 (02:25 +0000)]
MFC r271055, r271084, r271094:
Add a function to get the frequency of the AHB bus. Another stopgap
function until we have full clock support for imx6.
The imx5x and imx6 chips have an onboard IOMUX device which also contains a
few "general purpose registers" whose values control chip behavior in ways
that have nothing to do with IO pin mux control. Define a simple API that
other soc-specific code can use to read and write the registers, and provide
the imx51 implementation of them.
Create a mechanism for looking up a device_t associated with an ofw/fdt
xref handle, and for registering that association. Also use the same data
for faster translations between node and xref handles.
Add OF_xref_from_device() so that there's no need to have an intermediate
call to ofw_bus_get_node() to lookup info that's already in the xreflist.
When registering an association between a device and an xref phandle, create
an entry in the xref list if one doesn't already exist for the given handle.
ian [Sun, 26 Oct 2014 01:15:16 +0000 (01:15 +0000)]
MFC r257200, r259121, r261410, r265853:
- Remove #include <machine/frame.h>.
- Add gpio parse routines according to sys/boot/fdt/dts/bindings-gpio.txt.
- Follow r261352 by updating all drivers which are children of simplebus
to check the status property in their probe routines.
- Rename platform_gpio_init to be SoC specific, and make it static as it's
only called from this file.
This is mostly catching up on some old MFCs that were done before this file
existed in the 10 branch.
ian [Sat, 25 Oct 2014 20:34:10 +0000 (20:34 +0000)]
MFC r268633, r271046:
Fixes and enhancements for the if_cgem driver...
- miibus fixes as suggested by Yonghyeon Pyun.
- enable VLAN MTU support.
- fix a few WITNESS complaints in cgem_attach().
- have cgem_attach() properly init the ifnet struct before calling
mii_attach() to fix panic when using e1000phy.
- fix ethernet address changing.
- fix transmit queue overflow handling.
- tweak receive queue handling to reduce receive overflows.
- bring out MAC statistic counters to sysctls.
- add e1000phy to config file.
- implement receive hang work-around described in reference guide.
- change device name from if_cgem to cgem to be consistent with other
interfaces.
Fix the Zedboard/Zynq ethernet driver to handle media speed changes so
that it can connect to switches at speeds other than 1gb.
rpaulo [Sat, 25 Oct 2014 02:05:21 +0000 (02:05 +0000)]
MFC r273257:
Add a driver for the TI watchdog.
The TI watchdog timer is present on BeagleBone's. Since 2014, U-Boot
has been booting the BeagleBone with the watchdog enabled. We need
to
disable it on boot to avoid a spurious reset.
The timer isn't exactly precise, but it will do as a watchdog. This
is also a reflection of the watchdog(9) API.
In the future, we could handle interrupts, but the watchdog(9) API
needs to be a bit smarter before that can happen.