Age | Commit message (Collapse) | Author |
|
This function calls pipex_destroy_session() which requires the lock and
pipex_ioctl() already calls it with the NET_LOCK() held.
From Vitaliy Makkoveev.
|
|
handling overruns and normal completions.
CID 1452878.
|
|
CID 1453262.
|
|
CID 1452873
|
|
CID 1453252
ok claudio@ mpi@
|
|
|
|
|
|
wsmouseopen(); bringing them closer to wsmuxopen(). No functional
change.
|
|
convention for the open routine. This increases the consistency between
wskbd, wsmouse and wsmux.
|
|
devices. This condition is checked early on during open but since the
same routine could end up sleeping before assigning me_evp, a race
against adding the same wscons device to a wsmux could be lost. This in
turn can cause a NULL deference during close.
ok mpi@
Reported-by: syzbot+34c3041bfd96c888c8bd@syzkaller.appspotmail.com
|
|
|
|
- add reset signal definition
- add reset signal de-assert code
ok kettenis@
|
|
fail early in uaudio(4). This prevents negative safe_blksz and
integer overflow in nframes_max in case of a bad call to
uaudio_stream_open() or a hardware bug.
OK ratchov@
|
|
header could not be written.
OK anton@ mpi@
|
|
when called during execve(2). This was a caused by initializing sls_sig
with value 0 in r1.164 of kern_synch.c. Previously, tsleep(9) returned
immediately with EINTR in similar circumstances.
The immediate return without error can cause a system hang. For example,
vwaitforio() could end up spinning if called during execve(2) because
the thread did not enter sleep and other threads were not able to finish
the I/O.
tsleep
vwaitforio
nfs_flush
nfs_close
VOP_CLOSE
vn_closefile
fdrop
closef
fdcloseexec
sys_execve
Fix the issue by checking (p->p_flag & P_SUSPSINGLE) instead of
(p->p_p->ps_single != NULL) in sleep_setup_signal(). The former is more
selective than the latter and allows the thread that invokes execve(2)
enter sleep normally.
Bug report, change bisecting and testing help by Pavel Korovin
OK claudio@ mpi@
|
|
The current implementation still uses a single queue but already establishes
a different handler for link interrupts. This is done in preparation for
multi-queues support.
Based on a bigger diff from haesbaert@ and on the FreeBSD code.
Tested by Hrvoje Popovski and jmatthew@, ok jmatthew@
|
|
The current implementation still uses a single queue but already establishes
a different handler for link interrupts. This is done in preparation for
multi-queues support.
Based on a bigger diff from haesbaert@ and on the FreeBSD code.
Tested by Hrvoje Popovski and jmatthew@, ok jmatthew@
|
|
playing, the uaudio(4) driver selected a wrong rate. Then recording
failed with "block size too large". The v1_rates field of the
parameters contains the correct intersection of valid rates. Use
it for v1 devices.
OK ratchov@
|
|
On certain machines (like the ASUS 1001PXD) _BQC returns an out of
range value. Make acpivout_get_brightness() always return a valid
value in order to not break brightness controls, like the
display.brightness control in wsconsctl(8).
ok patrick
|
|
|
|
CID 1453207 (Missing break in switch)
|
|
controls on the pinebook pro through wsconsctl. Thanks, Mark. ok kettenis@, patrick@
|
|
find a media device path node. Fixes booting OpenBSD on some older U-Boot
versions that are in wide circulation such as 2017.09 and 2017.11.
ok patrick@
|
|
ok patrick@
|
|
|
|
to the phandle, so adjust the check to be more inclusive.
ok kettenis@
|
|
does nothing at all.
The first one spotted as CID 1452976.
Reads good to millert@
ok mpi@
|
|
each dereference. r1.275 added a check at the top of the function,
with an immediate "return (-1)" if src == NULL. Thus making the
repeated checks in the body superfluous.
CID 1452932.
ok millert@ mpi@
|
|
while I'm there.
ok patrick@
|
|
ffs2 support does not fit there. But the the kernel loaded by the
floppy ramdisk does support ffs2.
|
|
so we can re-use the same mechanisms. It's not the same though, which
means that some code is duplicated. There's some room for refactoring.
The PLLs, on the other hand, work quite differently. This allows most
of our supported peripherals to work, including clock frequency scaling.
Feedback from and ok kettenis@
|
|
filled by the callee, change the usb_allocmem() API to take another
argument for the flags.
ok mpi@
|
|
From Colin Ian King
bef7177cefad180b9776ed49290d42bfb873da1e in linux 4.19.y/4.19.111
d785476c608c621b345dd9396e8b21e90375cb0e in mainline linux
|
|
Make sure to release the last reference of the vnode after all
other traced processes have given up on it.
CID 1453020 Unchecked return value.
Inputs from guenther@, ok visa@
|
|
Straightforward ticks -> milliseconds conversions.
|
|
|
|
rwsleep_nsec(9) will not set a timeout if the nsecs parameter is
equal to INFSLP (UINT64_MAX). We need to limit the duration to
MAXTSLP (UINT64_MAX - 1) to ensure a timeout is set.
|
|
tsleep_nsec(9) will not set a timeout if the nsecs parameter is
equal to INFSLP (UINT64_MAX). We need to limit the duration to
MAXTSLP (UINT64_MAX - 1) to ensure a timeout is set.
|
|
This allows FFS2 to be enabled. Has been in snaps for quite some days.
With and ok deraadt@
|
|
This makes compiler no longer complain about unused variables.
ok kettenis@, patrick@
|
|
Management IC. For now this only allows reading and changing
the BD71847's BUCK2 voltage regulator, as used on the i.MX8MM
EVK, to allow CPU frequency scaling.
ok kettenis@
|
|
Management IC. For now this only allows reading and changing
the BD71847's BUCK2 voltage regulator, as used on the i.MX8MM
EVK, to allow CPU frequency scaling.
ok kettenis@
|
|
thus also use the same compatible. So replace the i.MX8MQ check
with one for the i.MX7D to catch them all.
ok kettenis@
|
|
ok kettenis@
|
|
single_thread_check() safe to be called without KERNEL_LOCK().
single_thread_wait() needs to use sleep_setup() and sleep_finish()
instead of tsleep() to make sure no wakeup() is lost.
Input kettenis@, with and OK visa@
|
|
An absolute timeout T elapses when the clock has reached time T, i.e.
when T is less than or equal to the clock's current time.
But the current code thinks T elapses only when the clock is strictly
greater than T.
For example, if my absolute timeout is 1.00000000, the current code will
not return EWOULDBLOCK until the clock reaches 1.00000001. This is wrong:
my absolute timeout elapses a nanosecond prior to that point.
So the timespeccmp(3) here should be
timespeccmp(tsp, &now, <=)
and not
timespeccmp(tsp, &now, <)
as it is currently.
|
|
With input from visa@.
ok visa@
|
|
With input from visa@.
ok visa@
|
|
While here, rename the wait channel so the tsleep_nsec(9) call will fit
onto a single line. It isn't a global channel so the name is arbitrary
anyway.
With input from visa@.
ok visa@
|
|
This macro will be useful for truncating durations below INFSLP
(UINT64_MAX) when converting from a timespec or timeval to a count
of nanoseconds before calling tsleep_nsec(9), msleep_nsec(9), or
rwsleep_nsec(9).
A relative timespec can hold many more nanoseconds than a uint64_t
can. TIMESPEC_TO_NSEC() and TIMEVAL_TO_NSEC() check for overflow,
returning UINT64_MAX if the conversion would overflow a uint64_t.
Thus, MAXTSLP will make it easy to avoid inadvertently passing INFSLP
to tsleep_nsec(9) et al. when the caller intended to set a timeout.
The code in such a case might look something like this:
uint64_t nsecs = MIN(TIMESPEC_TO_NSEC(&ts), MAXTSLP);
The macro may also be useful for rejecting intervals that are "too large",
e.g. for sockets with timeouts, if the timeout duration is to be stored
as a uint64_t in an object in the kernel. The code in such a case might
look something like this:
case SIOCTIMEOUT:
{
struct timeval *tv = (struct timeval *)data;
uint64_t nsecs;
if (tv->tv_sec < 0 || !timerisvalid(tv))
return EINVAL;
nsecs = TIMEVAL_TO_NSEC(tv);
if (nsecs > MAXTSLP)
return EOVERFLOW;
obj.timeout = nsecs;
break;
}
Idea suggested by visa@.
ok visa@
|