| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the interface input handler lists were originally set up to help
us during the intial mpsafe network stack work. at the time not all
the virtual ethernet interfaces (vlan, svlan, bridge, trunk, etc)
were mpsafe, so we wanted a way to avoid them by default, and only
take the kernel lock hit when they were specifically enabled on the
interface. since then, they have been fixed up to be mpsafe.
i could leave the list in place, but it has some semantic problems.
because virtual interfaces filter packets based on the order they
were attached to the parent interface, you can get packets taken
away in surprising ways, especially when you reboot and netstart
does something different to what you did by hand. by hardcoding the
order that things like vlan and bridge get to look at packets, we
can document the behaviour and get consistency.
it also means we can get rid of a use of SRPs which were difficult
to replace with SMRs. the interface input handler list is an SRPL,
which we would like to deprecate. it turns out that you can sleep
during stack processing, which you're not supposed to do with SRPs
or SMRs, but SRPs are a lot more forgiving and it worked.
lastly, it turns out that this code is faster than the input list
handling, so lots of winning all around.
special thanks to hrvoje popovski and aaron bieber for testing.
this has been in snaps as part of a larger diff for over a week.
|
|
|
|
|
|
|
| |
fields to struct scsibus_attach_args. Nuke the struct scsi_link *
(saa_sc_link) in scaibus_attach_args.
Explicitly initialize each field in scsibus_attach_args variables.
|
|
|
|
|
|
|
| |
adapter_buswidth, adapter_softc) from struct scsi_link to struct
scsibus_attach_args.
Additional compile tests by jmatthew@ (sparc64) and aoyam@ (luna88k).
|
|
|
|
|
|
|
|
| |
In sparc64 autoconf access 'luns' via sb_luns and 'adapter_buswidth'
via sb_adapter_buswidth.
Removes last post-config uses of the copies of bus related
information in scsi_link.
|
|
|
|
|
|
|
|
|
| |
ieee80211_node data structure to find the WPA group cipher which was
negotiated with the peer, rather than checking the wireless interface's
configuration data.
Found while investigating a problem where WPA2+TKIP wasn't working with athn.
Problem reported by Tim Chase.
|
|
|
|
| |
initialization closer to config_found() invocation.
|
|
|
|
| |
statement. All to make upcoming diff(s) smaller and easier to read.
|
|
|
|
| |
ok dlg@ tobhe@
|
|
|
|
|
|
| |
"new" API.
ok dlg@ tobhe@
|
|
|
|
| |
from Miguel Landaeta
|
| |
|
|
|
|
| |
from Miguel Landaeta
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fixes webcam detection in firefox 78, where code was added to check for
V4L2_CAP_VIDEO_CAPTURE capability on 'device_caps', whereas we only set it
in the 'capabilities' field.
According to
https://www.kernel.org/doc/html/v4.14/media/uapi/v4l/vidioc-querycap.html#description
those distinct fields are here for drivers that provide several devices,
but firefox decided to check for 'device_caps' field instead of
'capability' (cf
https://hg.mozilla.org/integration/autoland/rev/33facf191f23) - so fill
the field for compatibility reasons, while
https://bugzilla.mozilla.org/show_bug.cgi?id=1650572 discusses with
upstream what's the right way.
ok mglocker@
|
|
|
|
|
| |
Problem reported and fix tested by Bastian Wessling on bugs@
ok jmatthew@
|
|
|
|
|
|
|
|
| |
the completion interrupt may already be pending while aborting.
Hence, in xhci_event_command() ignore events from a TRB that is not
the expected one. And don't let xhci_abort_command() yield the CPU.
ok mpi@
|
| |
|
|
|
|
| |
immediately before initializing the only field in the struct.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
time_second(9) and time_uptime(9) are widely used in the kernel to
quickly get the system UTC or system uptime as a time_t. However,
time_t is 64-bit everywhere, so it is not generally safe to use them
on 32-bit platforms: you have a split-read problem if your hardware
cannot perform atomic 64-bit reads.
This patch replaces time_second(9) with gettime(9), a safer successor
interface, throughout the kernel. Similarly, time_uptime(9) is replaced
with getuptime(9).
There is a performance cost on 32-bit platforms in exchange for
eliminating the split-read problem: instead of two register reads you
now have a lockless read loop to pull the values from the timehands.
This is really not *too* bad in the grand scheme of things, but
compared to what we were doing before it is several times slower.
There is no performance cost on 64-bit (__LP64__) platforms.
With input from visa@, dlg@, and tedu@.
Several bugs squashed by visa@.
ok kettenis@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
On powerdown (halt -p), sd(4)'s suspend function tries to powerdown
a USB mass storage using a STOP command. In that case we are already
cold and splhigh(), so that the xhci is supposed to run in polling-
mode.
usb_schedsoftintr() behaves differently when running in polling-mode.
Instead of scheduling a soft interrupt, it immediately dequeues from
the event queue. But dequeueing means touching the xhci registers.
Apparently we need to acknowledge the interrupts before touching those
registers, the hardware doesn't like it otherwise and we will never get
an interrupt status for the second transfer.
ok gerhard@
|
|
|
|
|
|
|
|
|
|
| |
so that in polled-mode the USB transfers are marked synchronous. In
case that sending commands to the USB mass storage fails, the control
transfers are used to reset the device. Without the synchronous flag,
the STOP command sent by sd(4) on powerdown would wait for completion
indefinitely, possibly hanging the machine.
ok gerhard@
|
|
|
|
| |
ok sthen@
|
| |
|
|
|
|
| |
ok sthen@
|
|
|
|
|
|
|
|
|
| |
The report descriptors specify an invalid button count for models
with 6 or 8 buttons.
Thanks to Sivaram Gowkanapal, who provided the core of this patch.
ok mpi@
|
|
|
|
|
|
|
|
| |
The node here is always ic_bss, for which the reference count isn't
actually used (it's always freed when the interface detaches), so
not releasing it in this case wasn't really a problem.
ok stsp@
|
|
|
|
|
|
|
| |
To maintain the correct refs count, blocking calls to uaudio are
wrapped in usbd_ref_incr() and usbd_ref_decr() calls.
suggested by mpi@ and ok visa@
|
|
|
|
|
|
|
|
| |
dormant in the driver for years, we just needed to insert the IV before
transmission and do packet number checks on received frames.
tested by kevlo@ solene@ benno@ and me on a variety of hardware
ok kevlo@ stsp@
|
|
|
|
|
|
| |
sleep in the stop routine in case of errors.
Fix proposed by mpi@, ok patrick@
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Include sys/proc.h to address following errors:
/usr/src/sys/dev/usb/uvideo.c:2901:31: error: incomplete definition of type 'struct proc'
vn_close(nd.ni_vp, FWRITE, p->p_ucred, p);
~^
/usr/src/sys/sys/types.h:223:8: note: forward declaration of 'struct proc'
struct proc;
^
/usr/src/sys/dev/usb/uvideo.c:2925:40: error: incomplete definition of type 'struct proc'
UIO_SYSSPACE, IO_APPEND|IO_UNIT, p->p_ucred, NULL, p);
~^
/usr/src/sys/sys/types.h:223:8: note: forward declaration of 'struct proc'
struct proc;
^
2 errors generated.
ok mpi@
|
|
|
|
|
|
| |
conversion steps). it only contains kernel prototypes for 4 interfaces,
all of which legitimately belong in sys/systm.h, which are already included
by all enqueue_randomness() users.
|
|
|
|
| |
from Tero Koskinen
|
| |
|
|
|
|
| |
from Tero Koskinen
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
miod explained it was initially a long as it was thought drivers may
need to allocate storage but in practice they don't need more than
32 bits for an attribute.
suggested and reviewed by miod@
|
|
|
|
|
|
|
|
| |
Suggested by John Carmack. miod agrees a rename would make sense and
explained it was initially thought drivers may need to allocate storage
but in practice they don't need more than 32 bits for an attribute.
ok mpi@
|
|
|
|
| |
ok visa@
|
|
|
|
|
|
| |
Fixes coverity CID 1492830.
ok sthen, deraadt
|
|
|
|
| |
go for it deraadt@
|
|
|
|
|
|
| |
Besides making things simpler, this allows libsndio to figure out that
this is a control affecting all inputs (outputs) that needs to be
exposed.
|
|
|
|
|
|
|
| |
There's no reliable way to decide whether a control must belong
to "inputs" or to "record". In other words both classes were
used for the same thing. Furthermore we've no "play" class which
tends to make things more confusing.
|
|
|
|
|
| |
All other drivers use "dac" and libsndio needs the control name to
be "dac" for the control to be exposed.
|
|
|
|
|
| |
Makes the code simpler and more flexible as the naming is done in a
single place where the full units list is available.
|
|
|
|
| |
No object change.
|
|
|
|
| |
Input from sthen@, ok claudio@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This reduces CPU load during traffic bursts, which is especially noticeable
on boards with relatively slow CPUs such as Alix and APU. For reference,
my rcc-ve boards (Intel Atom C2558) now forward ~2000pps between Ethernet
and wifi with <= 1% CPU interrupt time according to systat. Beforehand, these
boards became noticeably less responsive with fairly high interrupt and spin %.
CCMP offload is used on both PCI and USB devices (thanks kevlo@ for catching
my omission of USB devices in the first iteration of this change!)
Tested by (at least) Kevin Chadwick, tracey@, kevlo@, kili@, Ted Patterson,
David Dahlberg, and Scott Bennett.
ok tracey@ kevlo@
|