edwin [Wed, 19 Aug 2009 03:58:12 +0000 (03:58 +0000)]
- Make note of the update of tzdata from 2008h to 2009j
- Make note of the update of tzcode from 2004a to 2009h
Add an extra alert that people who update via source or via
freebsd-update will have to run the tzsetup(8) utility.
mlaier [Wed, 19 Aug 2009 00:17:00 +0000 (00:17 +0000)]
MFC r196372:
If we cannot immediately get the pf_consistency_lock in the purge thread,
restart the scan after acquiring the lock the hard way. Otherwise we
might end up with a dead reference.
stas [Tue, 18 Aug 2009 21:13:00 +0000 (21:13 +0000)]
- MFC r196370.
Do not try to reevaluate current RX production index on each
loop iteration as it can be updated by the card while we
process the RX ring forcing us to process RX descriptors
for which DMA synchronisation operation has not been
performed. This fixes the bug when bge(4) drops packets
under high load.
Discussed with: yongari, marius
Approved by: re (kib)
kmacy [Tue, 18 Aug 2009 20:39:35 +0000 (20:39 +0000)]
MFC 196368
- change the interface to flowtable_lookup so that we don't rely on
the mbuf for obtaining the fib index
- check that a cached flow corresponds to the same fib index as the
packet for which we are doing the lookup
- at interface detach time flush any flows referencing stale rtentrys
associated with the interface that is going away (fixes reported
panics)
- reduce the time between cleans in case the cleaner is running at
the time the eventhandler is called and the wakeup is missed less
time will elapse before the eventhandler returns
- separate per-vnet initialization from global initialization
(pointed out by jeli@)
yongari [Tue, 18 Aug 2009 20:25:02 +0000 (20:25 +0000)]
MFC r196366:
Backout r193289. r193289 restored page select bits to previous
value instead of blindly resetting it to 0. However, it seems page
select bits of some 88E1116 PHY is initialized to invalid one such
that restoring page select bits after programming broke MII
register access. The correct solution would be reset page select
bits to 0 in PHY attach stage but it would require more testing.
Since we're in BETA stage such a change would be dangerous so just
back it out.
This change should fix nfe(4) breakage on NVIDIA MCP55.
Reported by: Ryan Rogers < webmaster <> doghouserepair dot com >
Sam Fourman Jr. < sfourman <> gmail dot com >
Tested by: Ryan Rogers < webmaster <> doghouserepair dot com >
Sam Fourman Jr. < sfourman <> gmail dot com >
Approved by: re (kib)
mav [Tue, 18 Aug 2009 09:36:25 +0000 (09:36 +0000)]
Fix copy/paste bug, that requests data read during ATA device probe sequence
for ATA_SETFEATURES/ATA_SF_SETXFER command which by definition transfers no
data. Most of controllers are irrelevant to this bug, but some nVidia's
doesn't.
attilio [Mon, 17 Aug 2009 16:33:53 +0000 (16:33 +0000)]
MFC r196334:
* Change the scope of the ASSERT_ATOMIC_LOAD() from a generic check to
a pointer-fetching specific operation check. Consequently, rename the
operation ASSERT_ATOMIC_LOAD_PTR().
* Fix the implementation of ASSERT_ATOMIC_LOAD_PTR() by checking
directly alignment on the word boundry, for all the given specific
architectures. That's a bit too strict for some common case, but it
assures safety.
* Add a comment explaining the scope of the macro
* Add a new stub in the lockmgr specific implementation
Tested by: marcel (initial version), marius
Reviewed by: rwatson, jhb (comment specific review)
Approved by: re (kib)
marcel [Mon, 17 Aug 2009 16:24:50 +0000 (16:24 +0000)]
MFC rev 196333:
The start of the EFI GPT partition in the PMBR can always be represented
by CHS addressing. Don't define these fields as 0xff, but rather define
them correctly. This prevents boot problems on PCs where GPT is being
used.
PR: 115406
Submitted by: Kent Hauser <kent@khauser.net>
Approved by: re (kib)
jhb [Mon, 17 Aug 2009 15:42:55 +0000 (15:42 +0000)]
- Remove self-referential mergeinfo from xen/netfront and xen/xenpci that
claims those directories were merged into themselves.
- Remove mergeinfo on xen/xenpci that claims the stable/7 xenpci was merged
into head.
jhay [Mon, 17 Aug 2009 15:39:47 +0000 (15:39 +0000)]
MFC: 196326
Fix parse() so that the partition to boot (load /boot/loader) from can
be set. The syntax as printed in main() is used: 0:ad(0p3)/boot/loader
pjd [Mon, 17 Aug 2009 10:02:31 +0000 (10:02 +0000)]
MFC r196309:
getcwd() (when __getcwd() fails) works by stating current directory, going up
(..), calling readdir and looking for previous directory inode. In case of
.zfs/ directory this doesn't work, because .zfs/ is hidden by default, so it
won't be visible in readdir output.
Fix this by implementing VPTOCNP for snapshot directories, so __getcwd()
doesn't fail and getcwd() doesn't have to use readdir method.
This fixes /bin/pwd from within .zfs/snapshot/<name>/.
pjd [Mon, 17 Aug 2009 09:03:47 +0000 (09:03 +0000)]
MFC r196295:
Remove OpenSolaris taskq port (it performs very poorly in our kernel) and
replace it with wrappers around our taskqueue(9).
To make it possible implement taskqueue_member() function which returns 1
if the given thread was created by the given taskqueue.
pjd [Mon, 17 Aug 2009 08:46:47 +0000 (08:46 +0000)]
MFC r196293:
Because taskqueue_run() can drop tq_mutex, we need to check if the
TQ_FLAGS_ACTIVE flag wasn't removed in the meantime, which means we missed a
wakeup.
pjd [Mon, 17 Aug 2009 08:38:41 +0000 (08:38 +0000)]
MFC r196291:
- Fix a race where /dev/zfs control device is created before ZFS is fully
initialized. Also destroy /dev/zfs before doing other deinitializations.
- Initialization through taskq is no longer needed and there is a race
where one of the zpool/zfs command loads zfs.ko and tries to do some work
immediately, but /dev/zfs is not there yet.
marcel [Sun, 16 Aug 2009 21:32:12 +0000 (21:32 +0000)]
MFC change 196278:
Emit a proper error message instead of dumping core when 1)
GEOM_PART does not exist in the kernel, and 2) the GEOM in
question does not exist.
Additionally abort in case of programming errors that result
in neither the class nor geom not being present in the gctl
request.
rink [Sun, 16 Aug 2009 10:25:58 +0000 (10:25 +0000)]
MFC r196272
Prevent sysinstall from needlessly waiting for confirmation when using an USB
device in non-interactive mode.
If there are no USB devices, sysinstall gives an error messages, and if there
is >1, it'll ask which one is to be used. This change allows a non-interactive
install from USB media to succeed without any user interaction if there is
exactly one USB disk device in the system it can use.
Submitted by: Daniel O'Connor < doconnorat gsoft dot com dot au >
Reviewed by: randi
Approved by: re (rwatson)
tuexen [Sat, 15 Aug 2009 21:37:16 +0000 (21:37 +0000)]
MFC r196260.
* Fix a bug where PR-SCTP settings are ignore when using implicit
association setup.
* Fix a bug where message with illegal stream ids are not deleted.
* Fix a crash when reporting back unsent messages from the send_queue.
* Fix a bug related to INIT retransmission when the socket is already
closed.
* Fix a bug where associations were stalled when partial delivery API
was enabled.
* Fix a bug where the receive buffer size was smaller than the
partial_delivery_point.
keramida [Sat, 15 Aug 2009 18:03:34 +0000 (18:03 +0000)]
MFC 196254 - iostat: add a bit of space between tty in/out columns
The columns for tty input and output may bump against each other
if the tty output needs more than 5 columns. Add a bit of space
that pushes everything 1 column to the right, but also avoids the
problem.
stas [Sat, 15 Aug 2009 15:18:29 +0000 (15:18 +0000)]
- Merge r196246:
Proprely intialize UART parameters at probe stage, so uart(4)
will initialize the FIFO memory correctly on attach. Before
that this values was intialized in only in at91_usart_bus_attach
which is called after the uart(4) memory allocation happens.
stas [Sat, 15 Aug 2009 15:12:46 +0000 (15:12 +0000)]
- Merge r196244:
Avoid overflowing the swap size counters in human-readable mode
by introducing the new CONVERT_BLOCKS macro which operates on
sizes already converted to number of blocks. With this macro
it is not longer needed to perform needless multiplica
qingli [Sat, 15 Aug 2009 00:04:12 +0000 (00:04 +0000)]
MFC 196234
In function ip_output(), the cached route is flushed when there is a
mismatch between the cached entry and the intended destination. The
cached rtentry{} is flushed but the associated llentry{} is not. This
causes the wrong destination MAC address being used in the output
packets. The fix is to flush the llentry{} when rtentry{} is cleared.
zec [Fri, 14 Aug 2009 23:05:10 +0000 (23:05 +0000)]
MFC r196230:
Appease VNET_DEBUG - in if_vmove we temporarily switch i.e.
recurse from one vnet to another which is OK, so no need
to flood the console with warnings here.
bz [Fri, 14 Aug 2009 21:50:47 +0000 (21:50 +0000)]
MFC r196226:
Add a new macro to test that a variable could be loaded atomically.
Check that the given variable is at most uintptr_t in size and that
it is aligned.
Note: ASSERT_ATOMIC_LOAD() uses ALIGN() to check for adequate
alignment -- however, the function of ALIGN() is to guarantee
alignment, and therefore may lead to stronger alignment
enforcement than necessary for types that are smaller than
sizeof(uintptr_t).
Add checks to mtx, rw and sx locks init functions to detect possible
breakage. This was used during debugging of the problem fixed with
r196118 where a pointer was on an un-aligned address in the dpcpu area.
In collaboration with: rwatson
Reviewed by: rwatson
jhb [Fri, 14 Aug 2009 20:57:21 +0000 (20:57 +0000)]
Adjust the handling of the local APIC PMC interrupt vector:
- Provide lapic_disable_pmc(), lapic_enable_pmc(), and lapic_reenable_pmc()
routines in the local APIC code that the hwpmc(4) driver can use to
manage the local APIC PMC interrupt vector.
- Do not enable the local APIC PMC interrupt vector by default when
HWPMC_HOOKS is enabled. Instead, the hwpmc(4) driver explicitly
enables the interrupt when it is succesfully initialized and disables
the interrupt when it is unloaded. This avoids enabling the interrupt
on unsupported CPUs which may result in spurious NMIs.
jhb [Fri, 14 Aug 2009 20:42:40 +0000 (20:42 +0000)]
MFC 196221:
Add the ability to build a release from an SVN checkout instead of a CVS
checkout. If SVNROOT is specified, then the source tree will be checked
out from that SVN repository instead of using CVS. ports and docs still
use CVS. If SVNROOT is not specified, then the source tree will be checked
out using CVS. An explicit SVN branch can be specified using SVNBRANCH
(e.g. SVNBRANCH=stable/8). If SVNBRANCH is not set but RELEASETAG is set
to a CVS branch (such as RELENG_8) the appropriate SVN branch will be
inferred from the CVS branch using svnbranch.awk.
Note that there are still several open questions about using SVN instead
of CVS in the release process. However, this does enable one to build a
release from an SVN repository if needed.
kib [Fri, 14 Aug 2009 11:17:34 +0000 (11:17 +0000)]
MFC r196205:
In nfs_upgrade_vnlock(), assert that the vnode is locked.
When downgrading, pass LK_RETRY to the vn_lock(), since otherwise
vn_lock() unlocks the doomed vnode, causing extra unlock.
julian [Fri, 14 Aug 2009 10:25:14 +0000 (10:25 +0000)]
MFC of r196201
URL: http://svn.freebsd.org/changeset/base/196201
Fix ipfw crash on uid or gid check.
Receiving any ip packet for which there is no existing socket will
crash if ipfw has a uid or gid test rule, as the uid/gid
of the non existent owner of said non existent socket is tested.
Brooks introduced this error as part of his >16 gids patch.
It appears to be a cut-n-paste error from similar code a few lines
before. The old code used the 'pcb' variable here, but in the
new code that switched the 'inp' variable, which is often NULL
and what is tested in the code further up. The rest of the multi-gid
patch for ipfw seems solid (and cleaner than previous code).
p.s. What's up with all the properties changing? It is a fresh checkout.
attilio [Thu, 13 Aug 2009 17:54:11 +0000 (17:54 +0000)]
MFC r196196:
* Completely remove the option STOP_NMI from the kernel. This option
has proven to have a good effect when entering KDB by using a NMI,
but it completely violates all the good rules about interrupts
disabled while holding a spinlock in other occasions. This can be the
cause of deadlocks on events where a normal IPI_STOP is expected.
* Add an new IPI called IPI_STOP_HARD on all the supported architectures.
This IPI is responsible for sending a stop message among CPUs using a
privileged channel when disponible. In other cases it just does match a
normal IPI_STOP.
Right now the IPI_STOP_HARD functionality uses a NMI on ia32 and amd64
architectures, while on the other has a normal IPI_STOP effect. It is
responsibility of maintainers to eventually implement an hard stop
when necessary and possible.
* Use the new IPI facility in order to implement a new userend SMP kernel
function called stop_cpus_hard(). That is specular to stop_cpu() but
it does use the privileged channel for the stopping facility.
* Let KDB use the newly introduced function stop_cpus_hard() and leave
stop_cpus() for all the other cases
* Disable interrupts on CPU0 when starting the process of APs suspension.
* Style cleanup and comments adding
This patch should fix the reboot/shutdown deadlocks many users are
constantly reporting on mailing lists.
Please don't forget to update your config file with the STOP_NMI
option removal
bz [Thu, 13 Aug 2009 15:02:02 +0000 (15:02 +0000)]
MFC r196185:
Rather than replicating the maths from the kernel, use the
value the kernel calculated directly as we already read it
with struct vnet. This will make kvm_vnet.c more resilent
in case of possible kernel changes.
bz [Thu, 13 Aug 2009 10:31:02 +0000 (10:31 +0000)]
MFC r196176:
Make it possible to change the vnet sysctl variables on jails
with their own virtual network stack. Jails only inheriting a
network stack cannot change anything that cannot be changed from
within a prison.
bz [Thu, 13 Aug 2009 09:32:15 +0000 (09:32 +0000)]
MFC r196174:
Put multiple instructions into a block when iterating; unbreaks
NET_RT_DUMP, which otherwise only returned information of AF_MAX.
This was broken in r193232 (save your time - my bug, my fix).
Reported by: Larry Baird (lab gta.com)
Tested by: Larry Baird (lab gta.com)
Reviewed by: zec, lstewart, qing
bz [Thu, 13 Aug 2009 09:17:07 +0000 (09:17 +0000)]
MFC r196172:
Start respecting WITHOUT_INET6.
Make regression/priv compile again after the multi-IP jail
changes. Note that we are still using the legacy jail(2)
rather than the jail_set(2)/jail(3) syscall.
Add an IPv4, and an IPv6 loopback address in case we compile
with INET6 enabled.
Make the priv_vfs_extattr_system compile on amd64 as well using the
proper length modifier to printf(3) for ssize_t.
sam [Wed, 12 Aug 2009 21:34:57 +0000 (21:34 +0000)]
MFC r196159:
Drain link state event changes posted during vap destroy. This is a
band-aid for the general problem that if_link_state_change can be
called between if_detach and if_free leaving a task queued that has
been free'd.
qingli [Wed, 12 Aug 2009 20:48:50 +0000 (20:48 +0000)]
MFC r196152
A piece of code was added to install a host route when an IPv6 interface
address is configured with a /128 prefix. This is no longer necessary due
to r192011. In fact that code conflicts with r192011. This patch removes
the host route installation when detecting the /128 prefix, and instead
let the code added by r192011 to install the loopback route for that IPv6
interface address.
rmacklem [Wed, 12 Aug 2009 20:30:27 +0000 (20:30 +0000)]
MFC r196149:
Add a check for a NULL mbuf ptr at the beginning of xdrmbuf_inline()
so that it returns failure instead of crashing when "m->m_len" is
executed and m == NULL. The mbuf ptr can be NULL when a call to
xdrmbuf_getbytes() gets the bytes it needs, but they are at the end
of a short RPC reply. When this happens, xdrmbuf_getbytes() returns
success, but advances the mbuf ptr (xdrs->x_private) to m_next, which
is NULL. If this is followed by a call to xdrmbuf_getlong(), it calls
xdrmbuf_inline(), which would cause a crash by accessing "m->m_len".
bz [Wed, 12 Aug 2009 12:10:28 +0000 (12:10 +0000)]
MFC r196132:
Add ddb show dpcpu_off command to ease dpcpu memory debugging.
While show pcpu prints pc_dynamic this also prints the original
memory address as well as the maths.
Once dpcpu goes NUMA this is considered to help debugging as well.
bz [Wed, 12 Aug 2009 10:32:20 +0000 (10:32 +0000)]
MFC r196118:
Put minimum alignment on the dpcpu and vnet section so that ld
when adding the __start_ symbol knows the expected section alignment
and can place the __start_ symbol correctly.
These sections will not support symbols with super-cache line alignment
requirements.
For full details, see posting to freebsd-current, 2009-08-10,
Message-ID: <20090810133111.C93661@maildrop.int.zabbadoz.net>.