trasz [Sun, 18 Oct 2015 14:55:09 +0000 (14:55 +0000)]
MFC r286360:
Tweak mdconfig(8) manual page, in particular revise the EXAMPLES
section. This removes stuff that doesn't really belong there,
and simplifies examples for the basic operations.
trasz [Sun, 18 Oct 2015 14:52:31 +0000 (14:52 +0000)]
MFC r258909:
Tweak mdconfig(8) manual page, in particular revise the EXAMPLES
section. This removes stuff that doesn't really belong there,
and simplifies examples for the basic operations.
trasz [Sun, 18 Oct 2015 14:34:13 +0000 (14:34 +0000)]
MFC r286237:
Fix panic that would happen on forcibly unmounting devfs (note that
as it is now, devfs ignores MNT_FORCE anyway, so it needs to be modified
to trigger the panic) with consumers still opened.
Note that this still results in a leak of r/w/e counters. It seems
to be harmless, though. If anyone knows a better way to approach
this - please tell.
trasz [Sun, 18 Oct 2015 14:25:04 +0000 (14:25 +0000)]
MFC r286226:
Rework the way iSCSI initiator handles system shutdown. This fixes
hangs on shutdown with LUNs with mounted filesystems over a disconnected
iSCSI session.
mav [Sun, 18 Oct 2015 06:53:31 +0000 (06:53 +0000)]
MFC r289136: Remove lock upgrade attempt from ctl_be_block_open_file().
I am not sure what for it was done. Now open routine should automatically
fall back to read-only if open for writing is impossible. In such case
attempt to upgrade to write sounds strange.
markj [Sat, 17 Oct 2015 20:38:40 +0000 (20:38 +0000)]
MFC r272455:
Have dtrace(1) handle SIGPIPE, and handle signals when in list mode (-l).
In particular, make sure to detach from child processes before exiting.
If no compatible cards were found after probing the bus, say so.
Don't deselect the card too soon. To set the block size or switch the
function parameters, the card has to be in transfer state. If it is in
the idle state, the commands are ignored. This caused us not to set
the proper parameters that we later assume to be present, leading to
downstream failures of the card / interface as our state machine
mismatches the card's.
Log mmc and sd command failures. Reporting of routine expected errors,
such as timeouts while probing a bus or testing for a feature, is
squelched. Also, error reporting is limited to 5 events per second,
because when an sdcard goes bad on a low-end embedded board, flooding
the console at high speed isn't helpful.
Always select the card before we do the 4.x specific stuff and
deselect it after setting the block size. This is a similar bug that
was fixed elsewhere, but not here. This makes sure that we leave the
card deselected at the end of the loop, and we don't send any commands
to the card without it selected.
Re-select the SD card before getting the SD status. On a couple Atmel
boards, this prevents some error messages during enumeration and also
gives us the correct erase block size. They appear to be harmless
elsewhere.
Deselect the sd card before re-selecting it when working around a problem
with some cards that causes them to become deselected after probing for
switch capabilities. The old workaround fixes the behavior with some cards,
but causes problems with the cards the behave correctly and don't become
deselected. Forcing a deselect then reselect appears to work correctly
with all cards in initial testing.
bdrewery [Tue, 13 Oct 2015 18:46:11 +0000 (18:46 +0000)]
MFC r288390:
When stopping ugidfw, it is not enough to just try unloading the module. If
the module is built-in to the kernel then the kldunload will fail. Rather
than do this just check if there are rules and then remove them all.
bdrewery [Tue, 13 Oct 2015 18:32:47 +0000 (18:32 +0000)]
MFC r287983,r288075:
r287983:
Replace afterinstall: hack with FILES mechanism.
r288075:
Use SHAREOWN/SHAREMODE/SHAREGRP rather than LIB* as these are plain ASCII
scripts that the linker can load rather than binary library objects.
andrew [Mon, 12 Oct 2015 13:20:17 +0000 (13:20 +0000)]
MFC of r288447. Only the Marvell driver has been updated as there is no
support for Raspbetty Pi 2 in stable/10.
An IPI must be cleared before it is handled otherwise next IPI could be
missed. In other words, if a new request for an IPI is sent while the
previous request is being handled but the IPI is not cleared yet, the
clearing of the previous IPI request also clears the new one and the
handling is missed.
There are only three MP interrupt controllers in ARM now. Two of them are
fixed by this change, the third one is correct, probably only just by
accident. The fix is minimalistic as new interrupt framework is awaited.
It was debugged on RPi2 where missing IPI handling together with SCHED_ULE
led to situation in which tdq_ipipending was not cleared and so IPI_PREEMPT
was stopped to be sent. Various odditys were found related to slow system
response time like various events timed out, and slow console response.
ian [Sun, 11 Oct 2015 17:59:20 +0000 (17:59 +0000)]
MFC 288829
The latest version of lex requires the latest m4 to build, add a dependency
when running the build-tools stage.
The requirement is due to the -P flag used when running m4 from usr.bin/lex
Makefile to generate skel.c. With the old m4 that fails and the failure is
ignored, resulting in an empty(-ish) skel.c, which leads to later build
failures when the misconfigured new lex tool is run.
This enables building -current (and 10-stable after MFC) on a stable-8
system again.
bdrewery [Fri, 9 Oct 2015 19:18:02 +0000 (19:18 +0000)]
The fmake fix in r289049 was wrong. Need to use a real variable for
.if checks rather than the iteration variable. Tested this pattern
more (rather than just looking for error) and found the right behavior.
bdrewery [Thu, 8 Oct 2015 19:10:51 +0000 (19:10 +0000)]
Direct commit to fix usage with fmake.
fmake does not have :tW, so use some clever :Q tricks to achieve the
same result. This won't work if PATH actually contains spaces, but
it's better than not working at all.
hselasky [Thu, 8 Oct 2015 08:30:40 +0000 (08:30 +0000)]
MFC r287775:
Update TSO limits to include all headers.
To make driver programming easier the TSO limits are changed to
reflect the values used in the BUSDMA tag a network adapter driver is
using. The TCP/IP network stack will subtract space for all linklevel
and protocol level headers and ensure that the full mbuf chain passed
to the network adapter fits within the given limits. See r287775
for a more detailed description.
hselasky [Thu, 8 Oct 2015 07:50:50 +0000 (07:50 +0000)]
MFC r284915:
Make the system queue header file fully usable within C++ programs by
adding macros to define class lists.
This change is backwards compatible for all use within C and C++
programs. Only C++ programs will have added support to use the queue
macros within classes. Previously the queue macros could only be used
within structures.
The queue.3 manual page has been updated to describe the new
functionality and some alphabetic sorting has been done while
at it.
hselasky [Thu, 8 Oct 2015 07:17:35 +0000 (07:17 +0000)]
MFC r288180:
Implement support for reading USB quirks from the kernel environment.
Refer to the usb_quirk(4) manual page for more details on how to use
this new feature.
Submitted by: Maxime Soule <btik-fbsd@scoubidou.com>
PR: 203249
jhb [Wed, 7 Oct 2015 00:50:26 +0000 (00:50 +0000)]
MFC 287870:
Always clear TDB_USERWR before fetching system call arguments. The
TDB_USERWR flag may still be set after a debugger detaches from a
process via PT_DETACH. Previously the flag would never be cleared
forcing a double fetch of the system call arguments for each system
call. Note that the flag cannot be cleared at PT_DETACH time in case
one of the threads in the process is currently stopped in
syscallenter() and the debugger has modified the arguments for that
pending system call before detaching.
jhb [Wed, 7 Oct 2015 00:33:44 +0000 (00:33 +0000)]
MFC 287864:
When a process group leader exits, all of the processes in the group are
sent SIGHUP and SIGCONT if any of the processes are stopped. Currently this
behavior is triggered for any type of process stop including ptrace() stops
and transient stops for single threading during exit() and execve().
Thus, if a debugger is attached to a process in a group when the leader
exits, the entire group can be HUPed. Instead, only send the signals if a
process in the group is stopped due to SIGSTOP.
jhb [Tue, 6 Oct 2015 22:28:28 +0000 (22:28 +0000)]
MFC 287833:
Threads holding a read lock of a sleepable rm lock are not permitted
to sleep. The rmlock implementation enforces this by disabling
sleeping when a read lock is acquired. To simplify the implementation,
sleeping is disabled for most of the duration of rm_rlock. However,
it doesn't need to be disabled until the lock is acquired. If a
sleepable rm lock is contested, then rm_rlock may need to acquire the
backing sx lock. This tripped the overly-broad assertion. Fix by
relaxing the assertion around the call to sx_xlock().
mav [Mon, 5 Oct 2015 13:33:02 +0000 (13:33 +0000)]
MFC r288579: Restore original array_rd_sz semantics.
Before r278702 prefetch was blocked for I/Os > 1MB, after -- >= 1MB.
1MB I/Os are used for bulk operations in CTL (XCOPY, VERIFY), and disabling
prefetch for them reduced the performance.