Commit Graph

270308 Commits

Author SHA1 Message Date
maxv f97d527f9c Remove unused function prototype. Reported by the lgtm bot. 2019-09-21 07:31:56 +00:00
maxv 764de15a1e Add __printflike, and fix two incorrect fmts. Reported by the lgtm bot. 2019-09-21 07:08:27 +00:00
maxv 7a3aebe29c Fix netbsd32___mount50():
- zero out fs_args32 to prevent info leaks
 - remove unused and non-functional copyin in NFS (lgtm bot)
 - declare udata, and don't pass kernel pointers to copyout (lgtm bot)
 - make sure data_len is just big enough, to mimic the native behavior
 - don't forget to update *retval with the 32bit value
 - add an XXX for NFS
2019-09-21 06:56:51 +00:00
nat 40dc704098 Fix off by one in sbc encoder. Test mode transmission and reception
works again.

XXX pullup -8 and -9.
2019-09-21 00:01:33 +00:00
sevan 69d856e495 Use Pa macro for path
new sentence, new line
2019-09-20 22:47:36 +00:00
brad 5aa9b9d41e Add a copyright to the man page and a bit of history. 2019-09-20 22:38:28 +00:00
macallan 113f933e5a don't enable NAP mode on 7450 CPUs - my Quicksilver has two of those and we
hang hard shortly after boot with NAP enabled, even on UP kernels
2019-09-20 21:27:29 +00:00
macallan 9927696972 various minor fixes and updates:
- add (very) basic ONYX support. Treat as 16bit codec with software volume
  control. Makes basic audio work on PCIe G5
- correctly detect TAS3001 without 'compatible' property, now this works on
  Quicksilver
- mute line input on TAS3001 - it's unconnected on Quicksilver and causes noise
- make more of an effort to match codecs to i2sbus instances, needed on G5 and
  some other models with software 'modems'
2019-09-20 21:24:34 +00:00
macallan 1200baa95c identify TAS3001 from i2c address if there is no 'compatible' property 2019-09-20 17:25:11 +00:00
kamil db47bebf8c Avoid signed integer overflow when convering linux timeval to timespec
Linux accepts garbage as timeout and attempts to set it to something
meaningful. Instead of checking for valid ranges of usec, just convert
the type safely, regardless of what is inside it.
2019-09-20 15:25:19 +00:00
kamil a13c9853a0 Validate usec ranges in netbsd32___select50()
Later in the code selcommon() checks for proper timespec, check only
correct usec of timeval before type conversions.
2019-09-20 15:16:41 +00:00
kamil 5404b7cfbe Validate usec ranges in compat_50_netbsd32_select()
Later in the code selcommon() checks for proper timespec, check only
correct usec of timeval before type conversions.
2019-09-20 15:09:07 +00:00
kamil 68ab6f5a50 Validate usec ranges in compat_50_sys_select()
Later in the code selcommon() checks for proper timespec, check only
correct usec of timeval before type conversions.
2019-09-20 15:05:22 +00:00
kamil 0af3675487 Validate usec ranges in sys___select50()
Later in the code selcommon() checks for proper timespec, check only
correct usec of timeval before type conversions.
2019-09-20 15:00:47 +00:00
kamil a5df2084c7 Decorate in6_clearscope() with __noubsan
sys/netinet6/scope6.c:480:6,
member access within misaligned address 0xffff9457bc441286 for type
'struct in6_addr' which requires 4 byte alignment

This issue is caused by accessing non-__packed struct in __packed.
This is a[always?] false-positive reported by the sanitizer and there is no
clear non-invasive approach to handle this, without changing ABI of long
term existing code.

Reported-by: syzbot+b53a9bcf030288081e65@syzkaller.appspotmail.com
2019-09-20 14:53:24 +00:00
christos 0cbecf0304 declare printflike functions and fix another printf format.
also change 0x%x -> %#x.
2019-09-20 14:20:45 +00:00
kamil 8978d4e527 Validate usec ranges in settimeofday1() 2019-09-20 14:12:57 +00:00
wiz d83135eb3e file system police. Fix typo. Fix macro use. 2019-09-20 13:43:47 +00:00
wiz d465c255f1 Fix date, add comma in enumeration. 2019-09-20 13:42:24 +00:00
maxv b0bea7daa3 Add ifdefs to eliminate false positives on lgtm, same as coverity. 2019-09-20 13:38:00 +00:00
kamil 43bc9355ea Validate usec ranges in do_sys_utimes()
sys/kern/vfs_syscalls.c:3939:4, signed integer overflow: 503923632 * 1000 cannot be represented in type 'int'

Reported-by: syzbot+4cfc86ffd30e8678f68d@syzkaller.appspotmail.com
2019-09-20 13:29:31 +00:00
kamil c6a1b98ca3 Switch CTASSERT() to DRMCTASSERT() in two i915 functions
Fixes build with disabled optimization.
2019-09-20 12:41:33 +00:00
kamil 056181f36e Define DRMCTASSERT() for Compile-Time DRMKMS asserts
Switch CTASSERT() to DRMCTASSERT() in BUILD_BUG_ON().

This fixes build issues with disabled compieler optimization.
2019-09-20 12:40:23 +00:00
maxv 9baf3ad469 Don't use the same iterator in a nested loop. (How could this work?)
Found by the lgtm bot.
2019-09-20 11:29:47 +00:00
maxv 0fd1f118ce Fix programming mistake: 'paddrp' is a pointer given as argument, setting
it to NULL in the called function does not set it to NULL in the caller.

Actually, the callers of these functions do not do anything with the
special error handling, so drop the unused checks and the NULL assignments
altogether.

Found by the lgtm bot.
2019-09-20 11:09:43 +00:00
kamil 3c422b7321 Adapt DRMKMS BUILD_BUG_ON_MSG() to static_assert semantics
static_assert is violated with runtime-only compiler semantics in a few
places. Instead of breaking the build, stop asserting these corner cases.
2019-09-20 10:54:07 +00:00
mrg fe950ae3d5 add mos(4) driver for Moschip MCS7730/MCS7830/MCS7832 usb ethernet.
ported from openbsd.  usbnet version loses about 40% of code.
2019-09-20 10:34:54 +00:00
msaitoh 1fb2ebe00b Print some DPC register values not with %04x but with %08x because those
are 32bit.
2019-09-20 10:04:45 +00:00
msaitoh ea1c6b6ac3 - Make ixv_set_multi() work correctly (especially for PROMISC) when the
function is called from if_init().
- If a multicast entry has range, use ALLMULTI like others.
- Remove ixv_set_promisc() and use ixv_set_multi(). And then, rename
  *_set_multi() to *_set_rxfilter(). Same as ixgbe.c.
- The promisc mode can't be enabled if the PF is not in promisc mode.
  Identify that state and report it as "the PF may not in promisc mode"
  (though it might not be perfect).
2019-09-20 09:28:37 +00:00
maxv 57c391ee59 Fix argument.
Found by the lgtm bot.
2019-09-20 09:07:35 +00:00
maxv f550fb4d04 Fix direction of the loop.
Found by the lgtm bot.
2019-09-20 08:58:25 +00:00
maxv 95f465b563 Use M_BUFADDR. 2019-09-20 08:48:55 +00:00
maxv 7d15e3a325 dedup 2019-09-20 08:45:29 +00:00
ryo eead4d4df0 ref/mod bit should be set according to 'flags' argument, not 'prot'. r1.44 was incomplete. 2019-09-20 05:35:27 +00:00
nonaka 0c2fac9c70 Don't set Phase Tag bit of Completion Queue entry at nvme_poll_done().
A new completion queue entry check incorrectly determined that there was
a Completion Queue entry for a command that was not submitted.

Fix PR kern/54275, PR kern/54503, PR kern/54532.
2019-09-20 05:32:42 +00:00
riastradh 67c16d2af5 Use an explicit run-time assertion where compile-time doesn't work. 2019-09-19 18:29:55 +00:00
msaitoh b3ef55ebd2 - ICPLUS -> xxICPLUS
- Print model name if it's ICPLUS IP101 to avoid "Realtek internal PHY".
2019-09-19 14:41:28 +00:00
msaitoh 2a7db5f08c Regen. 2019-09-19 14:39:08 +00:00
msaitoh 869418700f Change ICPLUS(0x0090c3) to xxICPLUS(0x0009c3) 2019-09-19 14:38:45 +00:00
riastradh 1557be4823 Use CTASSERT where possible, run-time assertion where not.
Should fix negative-length variable-length array found by kamil.
2019-09-19 14:34:59 +00:00
blymn e275f7f7db Rototill to add complex character support:
- Add cchar command to director test language to allow a complex character
  to be defined and passed to the slave.
- Removed the distinction between args and returns internally to prevent
  confusing the two which leads to errors and/or crashes.
- Converted mutt_test to use the new cchar definition and fixed the
  check files for the test.
2019-09-19 11:31:57 +00:00
knakahara 1702069957 l2tp(4): avoid having struct ifqueue directly in a percpu storage.
percpu(9) has a certain memory storage for each CPU and provides it by the piece
to users.  If the storages went short, percpu(9) enlarges them by allocating new
larger memory areas, replacing old ones with them and destroying the old ones.
A percpu storage referenced by a pointer gotten via percpu_getref can be
destroyed by the mechanism after a running thread sleeps even if percpu_putref
has not been called.

Tx processing of l2tp(4) uses normally involves sleepable operations so we
must avoid dereferencing a percpu data (struct ifqueue) after executing Tx
processing.  Address this situation by having just a pointer to the data in
a percpu storage instead.

Reviewed by ozaki-r@ and yamaguchi@
2019-09-19 06:09:52 +00:00
knakahara 2da350beca Avoid having a rtcache directly in a percpu storage for tunnel protocols.
percpu(9) has a certain memory storage for each CPU and provides it by the piece
to users.  If the storages went short, percpu(9) enlarges them by allocating new
larger memory areas, replacing old ones with them and destroying the old ones.
A percpu storage referenced by a pointer gotten via percpu_getref can be
destroyed by the mechanism after a running thread sleeps even if percpu_putref
has not been called.

Using rtcache, i.e., packet processing, typically involves sleepable operations
such as rwlock so we must avoid dereferencing a rtcache that is directly stored
in a percpu storage during packet processing.  Address this situation by having
just a pointer to a rtcache in a percpu storage instead.

Reviewed by ozaki-r@ and yamaguchi@
2019-09-19 06:07:24 +00:00
ozaki-r 2bcf5b2995 Apply some missing changes lost on the previous commit 2019-09-19 05:31:50 +00:00
knakahara b18d08a8c6 Divide Tx context of l2tp(4) to improve performance.
It seems l2tp(4) call path is too long for instruction cache. So, dividing
l2tp(4) Tx context improves CPU use efficiency.

After this commit, l2tp(4) throughput gains 10% on my machine(Atom C3000).
2019-09-19 04:59:42 +00:00
ozaki-r cdacfa3ee1 Add missing #include <sys/kmem.h> 2019-09-19 04:46:29 +00:00
ozaki-r 69653399dc wqinput: avoid having struct wqinput_worklist directly in a percpu storage
percpu(9) has a certain memory storage for each CPU and provides it by the piece
to users.  If the storages went short, percpu(9) enlarges them by allocating new
larger memory areas, replacing old ones with them and destroying the old ones.
A percpu storage referenced by a pointer gotten via percpu_getref can be
destroyed by the mechanism after a running thread sleeps even if percpu_putref
has not been called.

Input handlers of wqinput normally involves sleepable operations so we must
avoid dereferencing a percpu data (struct wqinput_worklist) after executing
an input handler.  Address this situation by having just a pointer to the data
in a percpu storage instead.

Reviewed by knakahara@ and yamaguchi@
2019-09-19 04:09:34 +00:00
ozaki-r e524fb36a1 Avoid having a rtcache directly in a percpu storage
percpu(9) has a certain memory storage for each CPU and provides it by the piece
to users.  If the storages went short, percpu(9) enlarges them by allocating new
larger memory areas, replacing old ones with them and destroying the old ones.
A percpu storage referenced by a pointer gotten via percpu_getref can be
destroyed by the mechanism after a running thread sleeps even if percpu_putref
has not been called.

Using rtcache, i.e., packet processing, typically involves sleepable operations
such as rwlock so we must avoid dereferencing a rtcache that is directly stored
in a percpu storage during packet processing.  Address this situation by having
just a pointer to a rtcache in a percpu storage instead.

Reviewed by knakahara@ and yamaguchi@
2019-09-19 04:08:29 +00:00
msaitoh 2d958b1323 Use unsigned to avoid undefined behavior in scsipi_{get,put}_tag().
Found by kUBSan.
2019-09-19 03:37:31 +00:00
thorpej f4659c41ae Create the character device for spiflash, in addition to the block device.
This is needed for getdiskrawname() to DTRT (for installboot(8)).

XXX pullup-9
2019-09-19 01:44:48 +00:00