| Age | Commit message (Collapse) | Author | Files | Lines |
|
drivers still set IFF_NOTRAILERS while others do not. Remove all usage of
the flag from the drivers which in ancient times used it (and the modern
drivers which blindly copied it from those drivers of yore).
suggested by guenther. ok mpi
|
|
Tested by jeremy@
|
|
|
|
from and tested by daniel@
|
|
from and tested by daniel@
|
|
problem in rev 1.47 spotted by clang's -Wswitch-bool
ok jmatthew@ kettenis@
|
|
|
|
If we haven't negotiated the flush feature, don't send
VIRTIO_BLK_T_FLUSH to the device.
noticed by mlarkin@
|
|
Declare all variables at the start of the function and get rid of the
strangely-indented block around the second half of the function.
|
|
The return value was unused
|
|
outside the kernel lock.
Remove tx descriptor lists (essentially backing out if_bnx.c r1.77),
add an interrupt barrier in bnx_stop, check the rx ring state before receiving
packets, adjust the tx counter with atomic operations, and rework bnx_start
to check for ring space before dequeueing and drop the packet if bnx_encap
fails.
tested on BCM5708 by me and on BCM5709 by Hrvoje Popovski
ok dlg@
|
|
caused by a badly managed merge.
found by and testing by sebastia@
ok mpi@
|
|
ok deraadt@
|
|
it has been split out into new struct fields. The athn(4) driver was still
assuming the old size and wrote beyond the ic_sup_mcs array. Make the driver
write to the new ic_tx_mcs_set field instead.
found by daniel@ with gcc 4.9
ok sthen@ kettenis@
|
|
as per the stack commit, the driver changes are:
1. setting ifp->if_xflags = IFXF_MPSAFE
2. only calling if_start() instead of its own start routine
3. clearing IFF_RUNNING before calling if_start_barrier() on its way down
4. only using IFQ_DEQUEUE (not ifq_deq_begin/commit/rollback)
|
|
the packet if encap fails, use m_defrag if the mbuf is too fragmented,
adjust sc_tx_cnt using atomic operations, hold the kernel lock while calling
cas_init and cas_start from the interrupt handler, use an interrupt barrier
in cas_stop, and finally mark the interupt handler mpsafe.
encouragement from dlg@ and kettenis@
|
|
could not be sent either because the dma mapping failed or because
m_defrag failed. Those errors are accounted as oerrors. dlg@ agrees.
|
|
ok mpi
|
|
stack.
Unbreak polling mode when the host Babbles because a reset of the ring
is necessary and xhci_waitintr() stops polling as soon as the xfer
status changed.
Problem reported by and ok krw@
|
|
version. Based on a very old diff from brad@, tested by me and David Hill
OK kettenis@
|
|
This is required to get speaker audio on the HP Elitebook 2540p.
Reported and fix tested by Mike Cond.
|
|
condigure bridges left unconfigured by the system firmware. Not perfect yet,
but good enough to make the Apple Thunderbolt Giabit Ethernet adapter work
when inserted at boot time.
ok deraadt@
|
|
the MacBookPro12,1, 3rd gen Lenovo X1 Carbon (when hacked to use the standard
acpi mechanism for this purpose) and probably many others. Seems this
hasn't been figured out over in Linux land yet.
|
|
|
|
ok jcs@
|
|
ok deraadt@
|
|
indicating a warm reset has happened. Communicate this as UPS_C_BH_PORT_RESET
to the upper layers and make uhub(4) clear this bit such that we receive
further connection status change notifications. Make sure we only do this
for super speed (USB 3.0) hubs as high speed (USB 2.0) hubs use the same bit
for UPS_C_PORT_L1.
Make hotplugging USB 3.0 devices work on my MacBookPro12,1.
ok mpi@
|
|
speed ports may have the XHCI_PS_PRC bit set after xhci(4) attaches. Just
clearing this bit isn't enough though, since the device is already connected
and no further connection status change is signalled. So fake one.
This makes the integrated SD card reader in the MacBookPro12,1 attach.
ok mpi@
|
|
if the chip needs coalesced packages in tx, set the tx dmamaps up
to only use a single dma descriptor. use m_defrag when bus_dmamap_load_mbuf
returns EFBIG rather than copying the packet to a separate mbuf
with hand rolled code in dc_coal. that in turn makes the ifq_deq_begin,
ifq_deq_commit, and ifq_deq_rollback handling more straightforward.
tested by me on a hppa a180c with a "DEC 21142/3", and fred on bugs@
with a sparc64 netra x1 "Davicom DM9102".
|
|
|
|
|
|
dequeueing a packet, then drop the packet if it can't be sent, rather than
using two phase dequeue then commit.
Adjust sc_tx_cnt using atomic operations, take the kernel lock before
calling gem_start or gem_init from the interrupt handler, and use an
interrupt barrier when taking the interface down.
With all this done, we can mark the interrupt handler for pci (but not sbus)
attached gem(4) as mpsafe.
mpi@ wrote this initially, I fixed bugs to keep sparc64 happy and kept it up
to date with ifq changes.
ok mpi@ dlg@
|
|
the system firmware.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
there are two things shared between the network stack and drivers
in the send path: the send queue and the IFF_OACTIVE flag. the send
queue is now protected by a mutex. this diff makes the oactive
functionality mpsafe too.
IFF_OACTIVE is part of if_flags. there are two problems with that.
firstly, if_flags is a short and we dont have any MI atomic operations
to manipulate a short. secondly, while we could make the IFF_OACTIVE
operates mpsafe, all changes to other flags would have to be made
safe at the same time, otherwise a read-modify-write cycle on their
updates could clobber the oactive change.
instead, this moves the oactive mark into struct ifqueue and provides
an API for changing it. there's ifq_set_oactive, ifq_clr_oactive,
and ifq_is_oactive. these are modelled on ifsq_set_oactive,
ifsq_clr_oactive, and ifsq_is_oactive in dragonflybsd.
this diff includes changes to all the drivers manipulating IFF_OACTIVE
to now use the ifsq_{set,clr_is}_oactive API too.
ok kettenis@ mpi@ jmatthew@ deraadt@
|
|
|
|
From Bryan Vyhmeister.
|
|
Problem reported by Mikolaj Kucharski.
|
|
|
|
You never need <netinet/ip_var.h> nor <netinet/in_systm.h>.
|
|
|
|
This header is only needed because <netinet/if_ether.h> declares a
structure that needs it. But it turns out that <net/if.h> already
includes it as workaround.
A proper solution would be to stop declarting "struct ether_arp"
there. But no driver should need this header.
|
|
|
|
|