logging.
r155957:
Use the recently added msleep_spin() function to simplify the
callout_drain() logic. We no longer need a separate non-spin mutex to
do sleep/wakeup with, instead we can now just use the one spin mutex
to manage all the callout functionality.
r163246:
Improve ktr(4) logging for callout(9) subsystem. Log all inserts and
removals, including failures, into the callwheel.
r171053:
Fix an old standing LOR between callout_lock and sleepqueues chain
(which could lead to a deadlock).
- sleepq_set_timeout acquires callout_lock (via callout_reset()) only
with sleepq chain lock held
- msleep_spin in _callout_stop_safe lock the sleepqueue chain with
callout_lock held
In order to solve this don't use msleep_spin in _callout_stop_safe()
but use directly sleepqueues as inline msleep_spin code. Rearrange the
wakeup path in order to have it consistent too.
r172025:
Close a race that snuck in with the recent changes to fix a LOR
between the callout_lock spin lock and the sleepqueue spin locks.
In the fix, callout_drain() has to drop the callout_lock so it can
acquire the sleepqueue lock. The state of the callout can change
while the callout_lock is held however (for example, it can be
rescheduled via callout_reset()). The previous code assumed that the
only state change that could happen is that the callout could finish
executing. This change alters callout_drain() to effectively restart
and recheck everything after it acquires the sleepqueue lock thus
handling all the possible states that the callout could be in after
any changes while callout_lock was dropped.
After the commit of SVN rev 180236, wilko@ noticed that the approach
doesn't work on the Alpha platform: machine/elf.h doesn't include
sys/elf32.h there.
PR: related to bin/124906
Approved by: bde@
- Increase the size of the salt in pw(8) from 8 to 32 (same as in pam_unix(8)).
This makes blowfish password hashes look normal when set using
pw(8)/adduser(8). [1]
- Make it possible to have a '/' in the salt.
PR: 121146 [1]
Submitted by: Jaakko Heinonen [1]
Approved by: rwatson (mentor)
MFC after: 1 month
Add driver support for PCIe adapters based on JMicron JMC250
gigabit ethernet and JMC260 fast ethernet controllers. ATM jme(4)
supports all hardware features except RSS and multiple Tx/Rx queue.
In these days most ethernet controller vendors take a ply of
concealing hardware detailes from open source developers. As
contrasted with these vendors JMicron provided all necessary
information needed to write a stable driver during driver writing
and answered many questions I had. They even helped fixing driver
bugs with protocol analyzer. Many thanks to JMicron for their
support of FreeBSD.
H/W donated by: JMicron
Add -m option to cron(8), overriding default mail recipient for cron
mails, unless explicitly provided by MAILTO= line in crontab. This
feature can be useful in massive hosting environment, where most users
do not care about autogenerated mails.
Setting recipient to null string disables default mails at all.
Approved by: yar
* Fix typos in znew(1) script (yar, r176133 + r180136);
* Make it clear that gzcat expects each argument to be
separate files. (r180126).
* License change in unbzip2.c (r180135)
- Fix spelling and style.
- Use __FBSDID.
- Merge macros depending on the flags being preserved between calls
into a single "__asm"-statement as GCC doesn't guarantee their
consecutive output even when using consecutive "__asm __volatile"-
statement for them. Remove the otherwise unnecessary "__volatile". [1]
- The inline assembler instructions used here alter the condition
codes so add them to the clobber list accordingly.
- The inline assembler instructions used here uses output operands
before all input operands are consumed so add appropriate modifiers.
Pointed out by: bde [1]
Fix a longstanding bug, from Otto Moerbeck:
if we're reducing a rule that has an empty
right hand side and the yacc stackpointer is pointing at the very
end of the allocated stack, we end up accessing the stack out of
bounds by the implicit $$ = $1 action
Obtained from: OpenBSD
Sync up with rhyolite routed 2.31 which fixes the handling of varargs.
Remove -p from usage, it's gone completely now.
Merge to 7 not applicable, 7 obtained this change when it was
branched.
PR: 82287
Submitted by: arved
Add a diagnostic note about "transmission error ... tx underrun, increasing
tx start threshold ..." Looking around on the mailing lists, and even having
one of these cards I agree the messages should be documented.
Bump doc date.
PR: 88477
In case of interface initialization failure remove struct in_ifaddr* from
in_ifaddrhashtbl in in_ifinit because error handler in in_control removes
entries only for AF_INET addresses. If in_ifinit is called for the cloned
inteface that has just been created its address family is not AF_INET and
therefor LIST_REMOVE is not called for respective LIST_INSERT_HEAD and
freed entries remain in in_ifaddrhashtbl and lead to memory corruption.
PR: kern/124384
MFC after: 3 weeks
Keep proper track of nsegs counter: sem_free is called for all
allocated semaphores, so it's wrong to increase it conditionally,
in this case for every over-the-limit semaphore nsegs is decreased
without being previously increased.
PR: kern/123685
MFC after: more then 1 month
Renew semaphore's pointer after wakeup since during msleep
sem_base may have been modified by destroying one of semaphores
and semptr would not be valid in this case.
PR: kern/123731
MFC after: 1 month
Improve the output of kldload(8) to show which module can't be loaded.
Was: kldload: Unsupported file type
Is now: kldload: /boot/modules/test.ko: Unsupported file type
PR: kern/121276
Submitted by: Edwin Groothuis <edwin@mavetju.org>
Approved by: bde (mentor)
MFC after: 1 week
gaames/fortune: add FORTUNE_PATH env var, so ports of fortunes can work sanely
This patch adds an environment variable FORTUNE_PATH, which
works like PATH for fortune files.
PR: bin/36867
Submitted by: Alan Eldridge <ports@geeksrus.net>
[patch] fortune -e implementation bug
Fix the behaviour of "-e file1 file2" to equally pick them
instead of only picking the first one.
PR: bin/70182
Submitted by: Martin Kulas <coolaz@web.de>