mdf [Sat, 31 Dec 2011 19:50:55 +0000 (19:50 +0000)]
MFC r228441:
Consistently use types in e1000 driver code:
- Two struct members eee_disable are used in a function that expects
an int *, so declare them int, not bool.
- igb_tx_ctx_setup() returns a boolean value, so declare it bool, not int.
- igb_header_split is passed to TUNABLE_INT, so delcare it int, not bool.
- igb_tso_setup() returns a bool, so declare it bool, not boolean_t.
- Do not re-define bool/true/false if the symbols already exist.
dim [Sat, 31 Dec 2011 19:46:06 +0000 (19:46 +0000)]
MFC r228600:
Fix the incompatible enum conversions in libexec/ypxfr in another, more
messy way, so as to not disrupt other yp programs: just add casts to
convert the incompatible enums, as the numerical values are the same
(either by accident, design, or the phase of the moon at that time).
dim [Sat, 31 Dec 2011 19:19:19 +0000 (19:19 +0000)]
MFC r228581:
In libexec/bootpd/bootpgw/bootpgw.c, add a cast for the remaining
minutes of activity, to avoid a warning on platforms where time_t is a
32-bit integer.
dim [Sat, 31 Dec 2011 18:53:11 +0000 (18:53 +0000)]
MFC r228580:
In cddl/contrib/opensolaris/lib/libdtrace/common/dt_handle.c, some
uint64_t values are snprintf'd using %llx. On amd64, uint64_t is
typedef'd as unsigned long, so cast the values to u_longlong_t, as is
done similarly in the rest of the file.
dim [Sat, 31 Dec 2011 18:49:46 +0000 (18:49 +0000)]
MFC r228579:
In cddl/contrib/opensolaris/lib/libdtrace/common/dt_consume.c, some
uint64_t values are snprintf'd using %llx. On amd64, uint64_t is
typedef'd as unsigned long, so cast the values to u_longlong_t, as is
done similarly in the rest of the file.
hselasky [Sat, 31 Dec 2011 15:46:36 +0000 (15:46 +0000)]
MFC r227404:
Add definition of some USB 3.0 descriptors to libusb 1.0 and libusb 2.0.
Some header file parts of this patch were taken from a patch submitted
by Maya Erez <merez@codeaurora.org> to the LibUSB developers list.
hselasky [Sat, 31 Dec 2011 15:37:31 +0000 (15:37 +0000)]
MFC r227706, r227748, r227749 and r228234:
Simplify the usb_pause_mtx() function by factoring out the generic parts
to the kernel's pause() function. The pause() function can now be used
when cold != 0. Also assert that the timeout in system ticks must be
greater or equal to zero.
hselasky [Sat, 31 Dec 2011 15:31:34 +0000 (15:31 +0000)]
MFC r227701, r227847 and r227849:
Move the device_delete_all_children() function from usb_util.c
to kern/subr_bus.c. Simplify this function so that it no longer
depends on malloc() to execute. Rename device_delete_all_children()
into device_delete_children(). Identify a few other places where
it makes sense to use device_delete_children().
nwhitehorn [Sat, 31 Dec 2011 15:08:33 +0000 (15:08 +0000)]
MFC r228646:
Additional icache paranoia: non-PLT relocations can modify the text segment.
It is then important to make sure the icache is synchronized again to
prevent (rare) random seg faults and illegal instructions.
dim [Sat, 31 Dec 2011 15:03:29 +0000 (15:03 +0000)]
MFC r228558, r228585, r228588, r228652, r228707:
Unfortunately, clang gives warnings about sendmail code that cannot be
turned off yet. Since this is contrib code, and we don't really care
about the warnings, just make them non-fatal for now.
MFC r228590:
Fix typos in the comments about clang warnings in several
sendmail-related Makefiles.
Spotted by: arundel
MFC r228708:
In usr.bin/vacation/Makefile, fix a typo in the comment about clang
warnings.
hselasky [Sat, 31 Dec 2011 14:45:43 +0000 (14:45 +0000)]
MFC r226709:
Allow USB ethernet drivers to define a driver specific
attach handler so that a USB ethernet driver can
announce interface capabilities and do its own MII attach.
hselasky [Sat, 31 Dec 2011 14:33:15 +0000 (14:33 +0000)]
MFC r228709, r228711 and r228723:
- Add missing unlock of USB controller's lock, when
doing shutdown, suspend and resume.
- Add code to wait for USB shutdown to be executed at system shutdown.
- Add sysctl which can be used to skip this waiting.
dim [Sat, 31 Dec 2011 14:21:41 +0000 (14:21 +0000)]
MFC r228553:
In contrib/file/softmagic.c, fix a potential format string security
problem. (This fix has already been applied upstream, but we do not
have the latest version of file in the tree at the moment.)
hselasky [Sat, 31 Dec 2011 14:12:12 +0000 (14:12 +0000)]
MFC r226173, r227843, r227848 and r227908:
Use DEVMETHOD_END to mark end of device methods.
Remove superfluous device methods.
Add some missing __FBSBID() macros.
dim [Sat, 31 Dec 2011 14:04:54 +0000 (14:04 +0000)]
MFC r228550:
In cddl/contrib/opensolaris/lib/libdtrace/common/dt_subr.c, the
dt_popc() function assumes that either _ILP32 or _LP64 is defined,
otherwise it has no suitable implementation.
However, the _ILP32 and _LP64 macros come from isa_defs.h, which is not
included in this file. Add the include now, to get the macros defined.
dim [Sat, 31 Dec 2011 13:43:51 +0000 (13:43 +0000)]
MFC r228547:
Cast away a clang alignment warning in drti.c's fixsymbol() function.
This code only runs on i386 and amd64, so there should be no problems if
buf + sec->dofs_offset is not aligned (which is unlikely anyway).
dim [Sat, 31 Dec 2011 13:37:25 +0000 (13:37 +0000)]
MFC r228546:
Clang has more warnings enabled by default, and when using -Wall, so if WARNS
is set to low values, some of them have to be disabled explicitly.
MFC r228551:
Disable one more clang warning when WARNS <= 3.
MFC r228606:
Add a NO_WARRAY_BOUNDS setting to bsd.sys.mk, only applicable to clang,
to selectively work around warnings in programs that don't use flexible
array members, but instead define arrays of length 1 at the end of the
struct, and then access those beyond their declared bounds.
MFC r228617:
Disable yet another clang warning when WARNS <= 3.
MFC r228675:
Disable yet another clang warning (-Wconversion) when WARNS <= 3.
MFC r228677:
Disable another clang warning (-Wempty-body) when WARNS <= 2.
hselasky [Sat, 31 Dec 2011 13:23:04 +0000 (13:23 +0000)]
MFC r227396, r227401, r227541, r227654 and r228493:
Relax XHCI timeouts which should fix enumeration issues.
Fix definition of XHCI port power bit.
Correct size of some USB 3.0 descriptor fields.
gabor [Sat, 31 Dec 2011 13:12:10 +0000 (13:12 +0000)]
MFC r228099:
- Create links to the xz and lzma versions even if BSD grep is not the
default. Nor GNU nor liblzma in base provides such functionality so
it may be useful.
MFC r228319:
- Match GNU behavior of exit code
- Rename variable that has a different meaning now
dim [Sat, 31 Dec 2011 12:58:21 +0000 (12:58 +0000)]
MFC r228540:
Since clang does not support the tls_model attribute used in malloc.c
yet (see LLVM PR 9788), and warns about it, rub it out for now. When
clang grows support for this attribute, I will revert this again.
dim [Sat, 31 Dec 2011 12:52:18 +0000 (12:52 +0000)]
MFC r228538:
In lib/libc/rpc/crypt_client.c, fix a clang warning about an implicit
conversion between enum desdir/desmode from include/rpc/des.h, and enum
desdir/desmode from include/rpcsvc/crypt.x. These are actually
different enums, with different value names, but by accident the integer
representation of the enum values happened to be the same.
dim [Sat, 31 Dec 2011 12:45:43 +0000 (12:45 +0000)]
MFC r228537:
Remove meaningless self-assignment in res_send.c, otherwise clang will
warn about it. I guess this was originally done to silence a bogus
warning by an older version of gcc, but I could not reproduce it with
any version of gcc that I have access to.
yongari [Sat, 31 Dec 2011 01:22:16 +0000 (01:22 +0000)]
MFC r226479:
Close a race where SIOCGIFMEDIA ioctl get inconsistent link status.
Because driver is accessing a common MII structure in
mii_pollstat(), updating user supplied structure should be done
before dropping a driver lock.
yongari [Sat, 31 Dec 2011 01:07:01 +0000 (01:07 +0000)]
MFC r226478:
Close a race where SIOCGIFMEDIA ioctl get inconsistent link status.
Because driver is accessing a common MII structure in
mii_pollstat(), updating user supplied structure should be done
before dropping a driver lock.
yongari [Sat, 31 Dec 2011 00:44:11 +0000 (00:44 +0000)]
MFC r226123:
BCE_MISC_ID register of BCM5716 returns the same id of BCM5709 so
remove explicit checks for BCM5716.
The BCM5709 and BCM5716 chips are virtually indistinguishable by
software except for the PCI device ID. The two chips differ in
that BCM5709 supports TCP/IP and iSCSI offload in Windows while
the BCM5716 doesn't.
While I'm here remove now unused definition of BCE_CHIP_NUM_5716
and BCE_CHIP_ID_5716_C0.
dim [Fri, 30 Dec 2011 23:41:24 +0000 (23:41 +0000)]
MFC r228536:
The TCB_GET32() and TCB_GET64() macros in the i386 and amd64-specific
versions of pthread_md.h have a special case of dereferencing a null
pointer. Clang warns about this with:
In file included from lib/libthr/arch/i386/i386/pthread_md.c:36:
lib/libthr/arch/i386/include/pthread_md.h:96:10: error: indirection of non-volatile null pointer will be deleted, not trap [-Werror,-Wnull-dereference]
return (TCB_GET32(tcb_self));
^~~~~~~~~~~~~~~~~~~
lib/libthr/arch/i386/include/pthread_md.h:73:13: note: expanded from:
: "m" (*(u_int *)(__tcb_offset(name)))); \
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/libthr/arch/i386/include/pthread_md.h:96:10: note: consider using __builtin_trap() or qualifying pointer with 'volatile'
Since this indirection is done relative to the fs or gs segment, to
retrieve thread-specific data, it is an exception to the rule.
Therefore, add a volatile qualifier to tell the compiler we really want
to dereference a zero address.
dim [Fri, 30 Dec 2011 22:59:00 +0000 (22:59 +0000)]
MFC r228328:
Make it possible to use the debug versions of std::map and std::multimap
with clang, by removing two unneeded using declarations. Otherwise, you
would get errors similar to:
/usr/include/c++/4.2/debug/map.h:77:20: error: dependent using declaration resolved to type without 'typename'
using _Base::value_compare;
^
N.B.: Take care when you actually use the debug versions of any
libstdc++ header. They are more likely to contain problems, because
they are exercised far less often, and since the standard library
complexity guarantees don't always apply anymore, compile times can
drastically increase.
dim [Fri, 30 Dec 2011 22:17:10 +0000 (22:17 +0000)]
MFC r227735:
Pull in r144110 from upstream clang trunk:
Mark the overloaded atomic builtins as having custom type checking,
which they do. This avoids all of the default argument promotions that
we (1) don't want, and (2) undo during that custom type checking, and
makes sure that we don't run into trouble during template
instantiation. Fixes llvm/clang PR11320.
dim [Fri, 30 Dec 2011 22:07:04 +0000 (22:07 +0000)]
MFC r227215:
When one attempts to compile the tree with -march=i386, which also used
to be gcc's default before r198344, calls to atomic builtins will not be
expanded inline. Instead, they will be generated as calls to external
functions (e.g. __sync_fetch_and_add_N), leading to linking errors later
on.
Put in a seatbelt that disables use of atomic builtins in libstdc++ and
llvm, when tuning specifically for the real i386 CPU. This does not
protect against all possible issues, but it is better than nothing.
MFC r227538:
LLVM uses atomic operations, which are not supported on i386 and GCC
emits calls for them, rather than expanding them inline. Older FreeBSD
versions compile for i386 by default and as such we end up with
unresolved symbols when we build LLVM's TableGen utility as a build
tool on them. Add the functions that GCC emits here, but don't bother
to make them atomic. Such is not needed.
Submitted by: marcel
MFC r227636:
Revert r227538, since it doesn't compile with clang at all (it doesn't
allow the built-in operations to be redefined, at least not without
excessive force).
Instead, just disable LLVM's support for atomic operations for now.
Nothing in either clang or the tablegen tools currently depends on it.
This still allows users of head built before r198344 to upgrade to
top-of-head seamlessly.
kib [Fri, 30 Dec 2011 21:01:14 +0000 (21:01 +0000)]
MFC r227816:
Remove the wrong comment about ufs not being loadable.
Note that only root filesystem module needs to be available
before root is mounted.
dim [Fri, 30 Dec 2011 21:00:02 +0000 (21:00 +0000)]
MFC r227120:
Make it possible to set CC and CXX (and optionally, AS and LD) in
make.conf(5), while allowing the build32 stage on 64-bit architectures
to still override them, so that stage can successfully build 32-bit
compatibility libraries.
Explanation:
1) The build32 stage sets environment variables CC, CXX, AS and LD for
its sub-make, to add 32-bit specific flags (-m32 and such).
2) The sub-make reads sys.mk, encounters CC?= and CXX?= assignments, so
does not alter them.
3) After some other stuff, sys.mk reads /etc/make.conf. When you have
"CC=xxx" and "CXX=yyy" statements in there, they will *override* the
build32-supplied CC/CXX values, nullifying the 32-bit specific flags.
4) Thus all objects get built as 64-bit anyway, and since LD is usually
not set in make.conf, it still has the 32-bit flags!
5) Now, whenever something is linked, you will get a "ld: Relocatable
linking with relocations from format elf64-x86-64-freebsd (foo.o) to
format elf32-i386-freebsd (bar.o) is not supported" error.
Fix this by adding "-ECC -ECXX -EAS -ELD" to the build32 sub-make
invocation, which forces those environment variables to always override
any assignment in makefiles. Thus making it possible to simply set:
kib [Fri, 30 Dec 2011 20:21:53 +0000 (20:21 +0000)]
MFC r227393:
Lock the thread lock around block that retrieves td_wmesg. Otherwise,
procfs could see a thread with assigned td_wchan but still NULL td_wmesg.
kib [Fri, 30 Dec 2011 19:58:06 +0000 (19:58 +0000)]
MFC r228178:
If alloc_unr() call in the pipe_create() failed, then pipe->pipe_ino is
-1. But, because ino_t is unsigned, this case was not covered by the
test ino > 0 in pipeclose(), leading to the free_unr(-1). Fix it by
explicitely comparing with 0 and -1.
Do no access freed memory, the inode number was cached to prevent access
to cpipe after it possibly was freed, but I failed to commit the right
patch.
kib [Fri, 30 Dec 2011 18:20:44 +0000 (18:20 +0000)]
MFC r227024:
Despite official i386 ABI does not mandate any stack alignment besides
the word alignment, some versions of gcc do require 16-byte alignment.
Make sure the stack is 16-byte aligned before calling a subroutine.
kib [Fri, 30 Dec 2011 18:18:06 +0000 (18:18 +0000)]
MFC r227023:
Make sure that stack is 16-byte aligned before calling a function,
as it is required by amd64 ABI. Add a comment for the places were
the stack is accidentally properly aligned already.
glebius [Mon, 19 Dec 2011 13:12:37 +0000 (13:12 +0000)]
Merge r228472. For the sake of POLA for the whole 9.x timeline add
compatibility support for specifing IPv4 aliases in rc.conf without
the "inet" keyword.
des [Tue, 13 Dec 2011 12:59:39 +0000 (12:59 +0000)]
MFH r228384: validate the service name
Approved by: re (kib)
Security: some poorly thought out programs allow the user to specify
the service name; this patch makes it harder to trick these
programs into loading and executing arbitrary code.
des [Sun, 11 Dec 2011 16:57:27 +0000 (16:57 +0000)]
MFH r227757: check for null passphrases, since openssl doesn't
Approved by: re (kib)
Security: prevents users with unencrypted ssh keys (prohibited
unless the nullok option is specified) from logging in
by providing a bogus non-null passphrase.
hrs [Sat, 3 Dec 2011 22:14:15 +0000 (22:14 +0000)]
MFC r226649, 226651, 226652, 226653:
- Fix an issue that 127/8 is not configured when $ifconfig_DEFAULT is not empty.
- Add description that IPv6 configuration will be ignored if $ifconfig_IF_ipv6
is empty.
- Move a configuration example "inet6 accept_rtadv" to just after the manual
GUA configuration.
- Add an example of $ipv6_prefix_IF.
- Add support for removing addresses added by ipv6_prefix_hostid_addr_up()
upon rc.d/netif stop.
hrs [Sat, 3 Dec 2011 22:12:57 +0000 (22:12 +0000)]
MFC r226446:
Fix a problem that an interface unexpectedly becomes IFF_UP by
just doing "ifconfing inet6 -ifdisabled" when the interface has
ND6_IFF_AUTO_LINKLOCAL flag and no link-local address.
nwhitehorn [Sat, 3 Dec 2011 17:15:16 +0000 (17:15 +0000)]
MFC r228194:
Prevent user astonishment by providing the shell option at the end, after
any installer-provided configuration files have been copied. This allows
users to edit their fstab, if desired, and to see what the installer has
placed in rc.conf.