naddy [Tue, 30 Jan 2018 20:19:06 +0000 (20:19 +0000)]
Fix TFTP reading of zero-size files:
The AllocatePages EFI call returns an error when the allocation
size is 0. Skip allocating memory and actually transferring the
file when it is empty.
Properly return the number of unread bytes so that a read() of n
bytes does not return n if no bytes were read.
While here, disallow lseek() beyond the TFTP file buffer for SEEK_CUR
as we already do for SEEK_SET.
ok patrick@
otto [Tue, 30 Jan 2018 20:15:25 +0000 (20:15 +0000)]
provide ffs, gcc generates calls to it, even when __builtin_ffs() is used.
ok deraadt@
otto [Tue, 30 Jan 2018 17:46:41 +0000 (17:46 +0000)]
keep in sync with ld.so malloc.c
otto [Tue, 30 Jan 2018 17:45:53 +0000 (17:45 +0000)]
kill a gcc warning
otto [Tue, 30 Jan 2018 16:40:20 +0000 (16:40 +0000)]
port over the malloc changes from libc. prompted by deraadt@
kettenis [Tue, 30 Jan 2018 15:46:12 +0000 (15:46 +0000)]
Add support for switching CPUs in ddb on arm64. Based on a diff from drahn@.
ok patrick@
krw [Tue, 30 Jan 2018 13:22:42 +0000 (13:22 +0000)]
Expand "bound to ..." message to include the source of the lease,
either the server IP/MAC or the name of the leases file.
Prompted by phessler@ and landry@ feedback to another diff.
ok phessler@
eric [Tue, 30 Jan 2018 12:44:55 +0000 (12:44 +0000)]
don't reject smtp responses containing non-printable chars as long
as the status is valid. use strnvis() for displaying status lines
in "smtpctl show queue".
ok gilles@ sunil@
jmc [Tue, 30 Jan 2018 11:37:58 +0000 (11:37 +0000)]
word fix; from edgar pettijohn
jsg [Tue, 30 Jan 2018 09:57:58 +0000 (09:57 +0000)]
add more pci defines and pci_pcie_cap()/pcie_capability_read_dword()
jsg [Tue, 30 Jan 2018 09:05:23 +0000 (09:05 +0000)]
add module_init()/module_exit()/signal_pending()
jsg [Tue, 30 Jan 2018 08:54:10 +0000 (08:54 +0000)]
add stubs for pci_clear_master()/pci_save_state()/pci_restore_state()/
pci_set_power_state()
jsg [Tue, 30 Jan 2018 08:50:59 +0000 (08:50 +0000)]
add mutex_destroy()/down_read_trylock()
jsg [Tue, 30 Jan 2018 08:49:38 +0000 (08:49 +0000)]
add create_singlethread_workqueue()/system_power_efficient_wq
jsg [Tue, 30 Jan 2018 08:46:49 +0000 (08:46 +0000)]
add pm_runtime_* stubs
jsg [Tue, 30 Jan 2018 08:44:23 +0000 (08:44 +0000)]
Don't limit vga_switcheroo stubs to amd64/i386 and add
vga_switcheroo_fini_domain_pm_ops() stub.
jsg [Tue, 30 Jan 2018 08:40:19 +0000 (08:40 +0000)]
add iowrite64()/writeq()
jsg [Tue, 30 Jan 2018 08:37:44 +0000 (08:37 +0000)]
add GFP_USER/__user/vmalloc()
jsg [Tue, 30 Jan 2018 08:35:21 +0000 (08:35 +0000)]
add ilog2()/order_base_2()/gcd()
jsg [Tue, 30 Jan 2018 08:31:38 +0000 (08:31 +0000)]
disable -Wformat-zero-length when building with gcc
-Wformat includes -Wformat-zero-length with gcc 4.2 which breaks
building unmodified atom.c with the SDEBUG macro
"warning: zero-length kprintf format string"
jsg [Tue, 30 Jan 2018 08:27:17 +0000 (08:27 +0000)]
add i2c_bit_add_bus()
jsg [Tue, 30 Jan 2018 08:25:06 +0000 (08:25 +0000)]
add more endian macros
jsg [Tue, 30 Jan 2018 08:17:31 +0000 (08:17 +0000)]
add drm_invalid_op()
jsg [Tue, 30 Jan 2018 08:15:17 +0000 (08:15 +0000)]
add atomic_cmpxchg()/atomic64_add()/atomic64_sub()
krw [Mon, 29 Jan 2018 23:16:36 +0000 (23:16 +0000)]
Repair botched retry loop when generating RTM_PROPOSAL
messages at startup. Reproducible situation found on
vnet(4) and fix tested by jca@.
bru [Mon, 29 Jan 2018 21:54:11 +0000 (21:54 +0000)]
pms: minor cleanups in the alps code.
1. Update the ALPS_*_BEZEL values, which don't match the actual limits
accurately. The new values are used by Linux for all models with the
protocols "V1" and "V2".
2. Models with the ID 0x7331 are not supported properly, remove it
from the list.
3. Report to wsmouse that multiple contacts aren't recognized.
espie [Mon, 29 Jan 2018 18:39:28 +0000 (18:39 +0000)]
acknowledge that DPB_PROPERTIES exists and is documented in dpb.1
krw [Mon, 29 Jan 2018 15:18:05 +0000 (15:18 +0000)]
Missed a couple of log_info()'s in previous commit. Use #ifdef DEBUG
instead of #if DEBUG.
visa [Mon, 29 Jan 2018 14:53:01 +0000 (14:53 +0000)]
Drop unused field `ci_ipiih'.
visa [Mon, 29 Jan 2018 14:51:57 +0000 (14:51 +0000)]
Let the interrupt subsystem allocate memory for the IPI handle,
to drop remaining uses of `ci_ipiih'. In addition, mark the IPI
handler MP-safe.
krw [Mon, 29 Jan 2018 13:41:30 +0000 (13:41 +0000)]
Use log_init(), log_setverbose() and log_debug() more
appropriately. Fixes '-q' logging oddities.
Prompted by phessler@ plea for '-v'-like behaviour rather
than putting everything under DPRINTF()'s.
jsg [Mon, 29 Jan 2018 11:46:44 +0000 (11:46 +0000)]
Attach ampintc/ampintcmsi early so pci devices can be attached with
msi when using qemu -M virt.
ok kettenis@
krw [Sun, 28 Jan 2018 23:12:36 +0000 (23:12 +0000)]
Refactor and simplify the logic to select and invoke the
appropriate function to process a packet.
kettenis [Sun, 28 Jan 2018 17:19:29 +0000 (17:19 +0000)]
trampoline.o depends on assym.h
otto [Sun, 28 Jan 2018 14:55:24 +0000 (14:55 +0000)]
typo
otto [Sun, 28 Jan 2018 13:42:17 +0000 (13:42 +0000)]
add malloc_threaderr
otto [Sun, 28 Jan 2018 13:41:48 +0000 (13:41 +0000)]
- An error in the multithreaded case could print the wrong function name
- Start with a full page of struct region_info's
- Save an mprotect in the init code: allocate 3 pages with none and
make the middle page r/w instead of a r/w allocation and two calls to make the
guard pages none
otto [Sun, 28 Jan 2018 13:38:00 +0000 (13:38 +0000)]
Test for correct error when on thread allocates, and another does a double free
kettenis [Sun, 28 Jan 2018 13:17:45 +0000 (13:17 +0000)]
Spin up secondary CPUs and add IPI infrastructure. Heavily based on diffs
from dran@.
ok patrick@
jmc [Sun, 28 Jan 2018 12:59:12 +0000 (12:59 +0000)]
remove the emulex link: it's dead, and i can;t see any obvious replacement;
from denis fondras
jsg [Sun, 28 Jan 2018 12:48:20 +0000 (12:48 +0000)]
Store PSCI function ids as uint32_t not int in the softc.
Avoids unwanted sign extension on arm64 that resulted in qemu not
recognising the function ids and matches the specification.
Problem reported by semarie@
ok kettenis@
kettenis [Sun, 28 Jan 2018 12:41:39 +0000 (12:41 +0000)]
Bring this more in line with our other architectures.
ok patrick@
krw [Sun, 28 Jan 2018 11:29:30 +0000 (11:29 +0000)]
A few fatal() -> fatalx() where errno is not
relevant.
inoguchi [Sun, 28 Jan 2018 09:21:34 +0000 (09:21 +0000)]
Initialize variables to avoid compiler warnings
ok jsing@
otto [Sun, 28 Jan 2018 09:02:55 +0000 (09:02 +0000)]
typo
jsg [Sun, 28 Jan 2018 00:54:06 +0000 (00:54 +0000)]
sync
naddy [Sat, 27 Jan 2018 22:55:23 +0000 (22:55 +0000)]
Sync the nam2blk entries with the bdevsw table, which is the
definitive list of block devices supported on an architecture.
ok kettenis@ deraadt@
jsing [Sat, 27 Jan 2018 15:30:43 +0000 (15:30 +0000)]
Update regress to match removal of ssl_parse_clienthello_tlsext().
jsing [Sat, 27 Jan 2018 15:30:05 +0000 (15:30 +0000)]
Complete the TLS extension handling rewrite for the server-side.
This removes ssl_parse_clienthello_tlsext() and allows the CBS to be
passed all the way through from ssl3_get_client_hello(). The renegotation
check gets pulled up into ssl3_get_client_hello() which is where other
such checks exist.
The TLS extension parsing now also ensures that we do not get duplicates
of any known extensions (the old pre-rewrite code only did this for some
extensions).
ok inoguchi@
jsing [Sat, 27 Jan 2018 15:17:13 +0000 (15:17 +0000)]
Clarify the comment re the F5 EC curves extension bug.
Also reference the knowledge base article instead of a discussion thread.
jsing [Sat, 27 Jan 2018 15:09:15 +0000 (15:09 +0000)]
Convert ssl3_put_cipher_by_char() to CBB.
While here make the CBS usage in ssl3_get_cipher_by_char() more consistent
with other code.
ok inoguchi@
stsp [Sat, 27 Jan 2018 13:44:03 +0000 (13:44 +0000)]
Fix an interrupt storm issue in vnet(4) mpi@ managed to trigger on my T5220,
similar to the issue fixed in vldcp(4) recently. For good measure also fix
it again in vldcp(4) in case the Rx channel is reset rather than goes down.
My T5220 has been running fine with this change.
ok kettenis@
anton [Sat, 27 Jan 2018 08:38:06 +0000 (08:38 +0000)]
Add missing `l' prefix to linker flag and markup SIGHUP; ok jmc@
anton [Sat, 27 Jan 2018 08:32:03 +0000 (08:32 +0000)]
Avoid passing NULL to vprintf() by assigning a name to client processes. While
here rework the switch proc_title(), both clang and gcc will now warn if all
possible values are not enumerated.
ok gilles@
kettenis [Fri, 26 Jan 2018 22:25:23 +0000 (22:25 +0000)]
Add kernel support for the VFP FPU/SIMD unit. Based on a diff by drahn@.
This allows us to use floating-pointer and vector instructions in userland
code. The current implementation assumes all 32 VFP registers are present.
This should be the case on all armv7 hardware currently supported by
OpenBSD.
ok patrick@
otto [Fri, 26 Jan 2018 19:14:51 +0000 (19:14 +0000)]
- do not junk pages returned by free_bytes(), all freed chunks are already
junked
- freezero(): only clear requested size
naddy [Fri, 26 Jan 2018 16:40:14 +0000 (16:40 +0000)]
Handle the transfer size option when faking up /etc/random.seed.
Without this, clients that queried the size would receive 0 as response.
ok jca@
kettenis [Fri, 26 Jan 2018 16:22:19 +0000 (16:22 +0000)]
Add kernel support for the VFP FPU/SIMD unit. Based on a diff by drahn@.
This allows us to use floating-pointer and vector instructions in userland
code. The current implementation assumes all 32 VFP registers are present.
This should be the case on all armv7 hardware currently supported by
OpenBSD.
ok patrick@
kettenis [Fri, 26 Jan 2018 16:15:26 +0000 (16:15 +0000)]
Cleanup VFP code.
ok patrick@
jca [Fri, 26 Jan 2018 13:12:08 +0000 (13:12 +0000)]
Document MODCMAKE_DEBUG
ok landry@
eric [Fri, 26 Jan 2018 08:00:54 +0000 (08:00 +0000)]
allow unpriviledged user to run "encrypt" and "spf walk"
ok todd@, gilles@, sunil@
ccardenas [Fri, 26 Jan 2018 05:34:41 +0000 (05:34 +0000)]
Fix Failure on Start
When attempting to start a vm from vm.conf that fails due to inadequate
resources and such, do not remote vm entry from vm list.
Reported by mpi@
ok mpi@
krw [Thu, 25 Jan 2018 15:43:51 +0000 (15:43 +0000)]
Add DPRINTF() and use it to replace log_debug() statements inside
#ifdef DEBUG/#endif blocks.
Suggestions on correct idiom (C99 vs gcc) from millert@
ok tom@
mpi [Thu, 25 Jan 2018 15:19:33 +0000 (15:19 +0000)]
Remove mutex implementations that now live in MI code.
mpi [Thu, 25 Jan 2018 15:06:29 +0000 (15:06 +0000)]
Move common mutex implementations to a MI place.
Archs not yet converted can to the jump by defining __USE_MI_MUTEX.
ok visa@
mpi [Thu, 25 Jan 2018 14:47:35 +0000 (14:47 +0000)]
Use a workaround for detached parent in carp_proto_input_c().
A NULL dereference can happen since processing protocol layer is
deffered to a second task. In other words the NET_LOCK() is released
then regrabbed between ip_input() and carp_proto_input().
The same workaround is already in use in carp_output() due to deffered
processing in case of IPsec.
The real fix is to make carp(4) MP-safe and use if_get(9) there, any
taker?
Found & fix tested by Hrvoje Popovski.
mpi [Thu, 25 Jan 2018 14:09:52 +0000 (14:09 +0000)]
Use a new LDFLAGS variable to pass "-melf_i386_obsd" on amd64.
Makes the linker generate a correct i386 gap.o file.
ok kettenis@, deraadt@
mpi [Thu, 25 Jan 2018 14:04:36 +0000 (14:04 +0000)]
Assert that ifiq_destroy() is not called with the NET_LOCK() held.
Calling taskq_barrier() on a softnet thread while holding the lock
is clearly a deadlock.
ok visa@, dlg@, bluhm@
djm [Thu, 25 Jan 2018 03:34:43 +0000 (03:34 +0000)]
certificate options are case-sensitive; fix case on one that had it wrong.
move a badly-place sentence to a less bad place
yasuoka [Thu, 25 Jan 2018 02:47:00 +0000 (02:47 +0000)]
Fix perl build not to install libperl* twice. This has caused an
actual error if "install" was done parallelly.
ok espie todd andrew1, input andrew1
kettenis [Wed, 24 Jan 2018 23:03:37 +0000 (23:03 +0000)]
Make the NEON codepaths conditional on __STRICT_ALIGNMENT not being
defined as they rely on unaligned access.
ok joel@
krw [Wed, 24 Jan 2018 19:12:49 +0000 (19:12 +0000)]
Don't display the seconds until renewal. i.e. "em0: bound to 1.2.3.4
-- renewal in 300000 seconds" becomes simply "em0: bound to 1.2.3.4"
While here avoid setting timeouts before the current time.
ok florian@
patrick [Wed, 24 Jan 2018 17:01:52 +0000 (17:01 +0000)]
Implement support for specifying multiple proposals. This means we can
have a higher flexibility in negotiating with other peers, or even ease
migration from one proposal to a more secure one.
ok sthen@
espie [Wed, 24 Jan 2018 16:52:44 +0000 (16:52 +0000)]
add the glue to generate future libset, which are currently 100% unused
millert [Wed, 24 Jan 2018 16:28:25 +0000 (16:28 +0000)]
POSIX requires that awk support \v and \a escapes. I used '\007'
for BEL since that is what lex.c uses, though we could safely use
'\a' there instead. OK martijn@
claudio [Wed, 24 Jan 2018 13:51:36 +0000 (13:51 +0000)]
Log some more errors in the ca code, since there seems to be still a bug
hidden somewhere. Also return after a poll timeout, there is no reason to
wait longer than a second for the answer of the ca process.
OK jsing@
tb [Wed, 24 Jan 2018 13:25:25 +0000 (13:25 +0000)]
Use closefrom(3) instead of manually closing all file descriptors
between 3 and 19.
ok martijn, millert, jca
patrick [Wed, 24 Jan 2018 13:10:20 +0000 (13:10 +0000)]
Do not print that the firmware was successfully loaded in the USB backend
driver. It is only useful to know if firmware loading has failed. This
means fewer clutter in dmesg(8).
Spotted by and ok stsp@
patrick [Wed, 24 Jan 2018 13:07:31 +0000 (13:07 +0000)]
Put the default case, which prints information about an event we do not yet
handle, into a debug printf. Also do not print a pointer to kernel buffers
so that we don't leak kernel addresses.
Spotted by and ok stsp@
patrick [Wed, 24 Jan 2018 13:04:22 +0000 (13:04 +0000)]
We don't do booleans in the kernel, so replace a few occurrences of 'true'
with nicer integer equivalents.
Spotted by and ok stsp@
dlg [Wed, 24 Jan 2018 00:33:45 +0000 (00:33 +0000)]
document bpfsattach and bpfsdetach
dlg [Wed, 24 Jan 2018 00:25:17 +0000 (00:25 +0000)]
add support for bpf on "subsystems", not just network interfaces
bpf assumed that it was being unconditionally attached to network
interfaces, and maintained a pointer to a struct ifnet *. this was
mostly used to get at the name of the interface, which is how
userland asks to be attached to a particular interface. this diff
adds a pointer to the name and uses it instead of the interface
pointer for these lookups. this in turn allows bpf to be attached
to arbitrary subsystems in the kernel which just have to supply a
name rather than an interface pointer. for example, bpf could be
attached to pf_test so you can see what packets are about to be
filtered. mpi@ is using this to look at usb transfers.
bpf still uses the interface pointer for bpfwrite, and for enabling
and disabling promisc. however, these are nopped out for subsystems.
ok mpi@
bluhm [Tue, 23 Jan 2018 22:30:34 +0000 (22:30 +0000)]
Add a smarter test that opens a file, unlinks it, and remounts the
file system read-only. After unmounting this should result in a
dirty file system that is not marked clean. Disable both tests
with dangling vnodes for now as they fail.
bluhm [Tue, 23 Jan 2018 22:06:42 +0000 (22:06 +0000)]
The IPv6 gateway address passed to rt6_flush() comes either from a
packet through ip6_input() or from the routing table. In both cases
the KAME hack has added the embeded scope to the address, so it is
not necessary to fill the scope id again in rt6_flush(). Assert
that it is already there.
OK mpi@
millert [Tue, 23 Jan 2018 21:54:04 +0000 (21:54 +0000)]
Update to tzdata2018c from ftp.iana.org
bluhm [Tue, 23 Jan 2018 21:41:17 +0000 (21:41 +0000)]
The TCP reaper timeout was still imlemented as soft timeout. So
it could run immediately and was not synchronized with the TCP
timeouts, although that was the intension when it was introduced
in revision 1.85. Convert the reaper to an ordinary TCP timeout
so it is scheduled on the same timeout thread after all timeouts
have finished. A net lock is not necessary as the process calling
tcp_close() will not access the tcpcb after arming the reaper
timeout.
OK mikeb@
bluhm [Tue, 23 Jan 2018 21:06:47 +0000 (21:06 +0000)]
Although it is a dead store here, always reassign the tcpcb after
calling tcp_close(), tcp_drop(), and tcp_disconnect(). Then no
freed memory can be used after closing a TCP connection.
OK mikeb@ mpi@
bluhm [Tue, 23 Jan 2018 20:49:58 +0000 (20:49 +0000)]
Bring back the PRU_ATTACH constant and description. Then trpt(8)
prints the ATTACH action for TCP debugging socketes correctly.
OK bluhm@
bluhm [Tue, 23 Jan 2018 20:41:42 +0000 (20:41 +0000)]
Fix printf(9) format strings so that a kernel with TCPDEBUG compiles.
Mark the string variables with TCP debugging names as constant.
OK mpi@
stsp [Tue, 23 Jan 2018 20:00:58 +0000 (20:00 +0000)]
Fix a logic bug in sshd_exchange_identification which prevented clients
using major protocol version 2 from connecting to the server.
ok millert@
stsp [Tue, 23 Jan 2018 18:33:49 +0000 (18:33 +0000)]
Add missing braces; fixes 'write: Socket is not connected' error in ssh.
ok deraadt@
deraadt [Tue, 23 Jan 2018 17:11:02 +0000 (17:11 +0000)]
use END_STRONG. Yes, everything in the sh ecosystem is different..
visa [Tue, 23 Jan 2018 14:47:21 +0000 (14:47 +0000)]
Always lock the kernel lock with non-MP-safe interrupt handlers.
Suggested by kettenis@
kettenis [Tue, 23 Jan 2018 12:38:14 +0000 (12:38 +0000)]
Revise 'struct fpreg' such that it can actually represent the full VFPv3-D32
state.
ok patrick@
fcambus [Tue, 23 Jan 2018 10:10:32 +0000 (10:10 +0000)]
Fix underline rotation on CCW (quarter counter-clockwise) rotated
screens.
The "underline" was actually drawn above text.
OK jcs@
otto [Tue, 23 Jan 2018 07:06:55 +0000 (07:06 +0000)]
Fix table wrt missing element and `, detailed analysis and diff from
David Fifield; ok tb@
djm [Tue, 23 Jan 2018 05:27:21 +0000 (05:27 +0000)]
Drop compatibility hacks for some ancient SSH implementations, including
ssh.com <=2.* and OpenSSH <= 3.*.
These versions were all released in or before 2001 and predate the
final SSH RFCs. The hacks in question aren't necessary for RFC-
compliant SSH implementations.
ok markus@
djm [Tue, 23 Jan 2018 05:17:04 +0000 (05:17 +0000)]
try harder to preserve errno during ssh_connect_direct() to make the
final error message possibly accurate; bz#2814, ok dtucker@
djm [Tue, 23 Jan 2018 05:12:12 +0000 (05:12 +0000)]
unbreak support for clients that advertise a protocol version
of "1.99" (indicating both v2 and v1 support). Busted by me during
SSHv1 purge in r1.358; bz2810, ok dtucker
djm [Tue, 23 Jan 2018 05:06:25 +0000 (05:06 +0000)]
don't attempt to force hostnames that are addresses to lowercase, but
instead canonicalise them through getnameinfo/getaddrinfo to remove
ambiguities (e.g. ::0001 => ::1) before they are matched against
known_hosts; bz#2763, ok dtucker@