Age | Commit message (Collapse) | Author |
|
to prevent the hwm growing beyond that. this allows the livelock mitigation
to do something where the hwm used to grow beyond twice the rx rings size.
ok kettenis@ claudio@
|
|
overflow) interrupt.
Yes deraadt@
|
|
"new" multicast address and address range counters in the ifp. shrinks
and simplifies that code a lot.
ive had this diff since may 2007.
|
|
us cope if the rx ring empties completely and the hardware tells us we're
still getting packets.
|
|
RX buffers allocated.
ok dlg@
|
|
being chained into a jumbo we would not replace them when filling the rx
ring again until they were passed up the stack.
|
|
For now the chunk in em_detect_gig_phy() is a hack to get things going
until it can be figured out why exactly the PHY id is not probed
properly.
Based on a diff from jcs@ via ckuethe@
ok kettenis@
|
|
this starts em up with 4 mbufs on the rx ring, which will then grow as
usage demands. this also allows em to take advantage of the new livelock
mitigation code as well as freeing up a boatload of kernel memory.
this version of the diff makes sure we only ever post the last descriptor
we filled to the hardware, rather than the whole ring when bringing the
interface up. it has been tested by users who got panics with the previous
diff without trouble.
|
|
reported on misc@ can be tracked down.
identical diff from jsing.
|
|
from the individual drivers now that ether_ioctl() handles this.
Shrinks the i386 kernels by..
RAMDISK - 2176 bytes
RAMDISKB - 1504 bytes
RAMDISKC - 736 bytes
Tested by naddy@/okan@/sthen@/brad@/todd@/jmc@ and lots of users.
Build tested on almost all archs by todd@/brad@
ok naddy@
|
|
allocation limited by per ifp statistics, ie, we're not guaranteed to have
mbufs in every slot on the rx ring.
instead of filling the ring with 256 mbufs all the time (about 512KB of
kva) when em is brought up, we give it 4. as demand grows we increase the
number of mbufs allowed on the ring. i will bet most users wont go above
50ish mbufs, so we're saving them 400KB of kva.
tested by many, including one on sparc64
ok claudio@ deraadt@ henning@ krw@
|
|
|
|
creates the VLAN encapsulation from the tag stored in the mbuf
header. Idea from FreeBSD, input from claudio@ and canacar@.
Switch all hardware VLAN enabled drivers to the new function.
ok claudio@
|
|
|
|
Tested by naddy@
|
|
This should take care of the simpler ones (i.e., timeout values of
integer multiples of hz).
ok krw@, art@
|
|
change. Prevents us from getting stuck in LINK_STATE_UNKNOWN. Fixes PR 5914.
tested by deraadt@, sthen@
ok deraadt@
|
|
Move calling ether_ioctl() from the top of the ioctl function, which
at the moment does absolutely nothing, to the default switch case.
Thus allowing drivers to define their own ioctl handlers and then
falling back on ether_ioctl(). The only functional change this results
in at the moment is having all Ethernet drivers returning the proper
errno of ENOTTY instead of EINVAL/ENXIO when encountering unknown
ioctl's.
Shrinks the i386 kernels by..
RAMDISK - 1024 bytes
RAMDISKB - 1120 bytes
RAMDISKC - 832 bytes
Tested by martin@/jsing@/todd@/brad@
Build tested on almost all archs by todd@/brad@
ok jsing@
|
|
|
|
Found by LLVM/Clang Static Analyzer.
ok henning@ brad@
|
|
The exact details are unknown (possibly hw errata?) but the Windows
and Linux drivers have never supported Jumbos on this chipset and since
it is so old and rare it is not that big of a deal.
From FreeBSD
ok dlg@ awhile ago.
|
|
address 0x1a and 0x1e, and that's not where the PCIe capability stuff
lives. Potentially it was mucking with an IO BAR (super dangerous).
But probably it was achieving nothing at all.
ok dlg@, marco@, brad@
|
|
rx_abs_int_delay to be non-zero when rx_int_delay is zero appears
to trigger a bug elsewhere in the kernel for certain em revisions.
Based on a diff from beck@. OK beck@ marco@ henning@ brad@
|
|
nothing uses them and it saves a few bytes in the kernel.
ok claudio@
|
|
the driver for about 292 bytes on i386.
ok reyk@
|
|
state reporting code in the MII layer / em(4) and vge(4) will never
fall back to the point of only reporting the link as being UP without
the duplex setting being reported, so simplify the code a bit here.
ok dlg@
|
|
the start routine instead of once per packet.
tested on various archs including amd64, i386, and sparc64.
|
|
will not return any flow control status so just return no status (0)
instead of reading copper PHY registers and not returning anything
anyway.
ok kettenis@
|
|
m_free() to free the mbuf cluster.
ok krw@ mglocker@
|
|
for the IFF_OACTIVE flag.
Tested by brad@, johan@, krw@, wilfried@
From mickey
|
|
Initial diff from Henry Precheur based on a commit from matthias@dragonflybsd
which was derived from the FreeBSD driver. Additional Flash changes from
sephe@dragonflybsd which was derived from the FreeBSD driver. Typo fixes
in Henry's diff and a few other improvements from the FreeBSD driver from
brad@.
Tested on a variety of different em(4) adapters in addition to ICH8/9.
ok dlg@
|
|
From FreeBSD
ok dlg@
|
|
and into a separate function which was modeled after the MII
frameworks mii_phy_flowstatus() function. This was done so as to
make em_media_status() a little nicer looking and so that when flow
control status is added for fiber adapters that em_media_status()
won't look so ugly. No functional change.
Tested by wilfried@ and brad@
ok dlg@
|
|
for the newer generations of em(4) chipsets independently
from the first two generations (82542/82543). The first
two generations have hardware errata limiting the upper
maximum to 256 descriptors. The number of RX descriptors
has not been adjusted yet.
ok beck@ henning@ dlg@
|
|
obvious.
|
|
prevents another round of autonegotiation (and thus, few seconds outage)
with every address change that had to be reintroduced a few revs ago
because of the watchdog timeout problems people were seeing.
this gives the benifit from both with the problems of neither ;)
tested by daniel polak on a system that saw the watchdog timeouts before
ok theo
|
|
Bring the flow control delay time down to what the comment says it should
be. By using a smaller flow control pause time when the buffer isn't full,
my em(4) goes about 20Mbps faster.
|
|
the other interrupt moderation schemes.
ok beck drahn
|
|
|
|
random addresses in some cases, causing watchdog timeouts.
tested by many; ok deraadt@
|
|
|
|
the interface will fail to initialize with an EEPROM error if the interface
does not have a link upon boot.
Tested by mk@ and janek@
From Jack Vogel@Intel via brad
|
|
|
|
From brad@
|
|
From brad@
|
|
PCIe to 4k.
>From kmacy@FreeBSD
Tested by mk@ and Johan Mson Lindman <tybollt at solace dot mh dot se>
with the 82573 chipset.
ok brad@ mglocker@ mk@
|
|
ok brad@
|
|
longer necessary.
|
|
|
|
|