Home | History | Annotate | Download | only in pci
History log of /src/sys/dev/pci/if_enavar.h
RevisionDateAuthorComments
 1.10  09-Feb-2024  andvar fix spelling mistakes, mainly in comments and log messages.
 1.9  05-Nov-2023  jdolecek ena(4): support RSS and delete FreeBSD-specified code

Code contributed by KUSABA Takeshi <t-kusaba@iij.ad.jp>
 1.8  19-Jul-2021  jmcneill branches: 1.8.10;
Various ena(4) bug fixes, from KUSABA Takeshi <t-kusaba@iij.ad.jp>:

[PATCH 01/32] include device_xname for evcnt group.
[PATCH 02/32] fix improper NULL check.
[PATCH 03/32] add tx drop counter
[PATCH 04/32] remove unimplemented m_getjcl
[PATCH 05/32] make ENA_MEM_{ALLOC,FREE}_COHERENT symmetric.
[PATCH 06/32] disestablish the correct interrupt.
[PATCH 07/32] fix null check target.
[PATCH 08/32] use if_initialize() and if_register() instead of
[PATCH 09/32] free all pci-related resource.
[PATCH 10/32] no need to call if_free(), but to call if_detach
[PATCH 11/32] add some locking assertions.
[PATCH 12/32] use bus_size_t for bus_dma instead of uint32_t.
[PATCH 13/32] no need to pass interlock, ena_timer_service does not
[PATCH 14/32] enable ena(4) to down I/F
[PATCH 15/32] destroy I/O queues before disestablishing msix
[PATCH 16/32] count input/output packet stats.
[PATCH 17/32] fix missing #ifdef LRO, NetBSD does not support LRO
[PATCH 18/32] MP-ify TX, allocate mbuf queue to each TX ring.
[PATCH 19/32] down the interface first when to detach, to prevent
[PATCH 20/32] default link speed should be unknown.
[PATCH 21/32] protect ena_adapter members only by "global_mtx".
[PATCH 22/32] lower global_mtx interrupt level
[PATCH 23/32] reorder function declaration
[PATCH 24/32] add locking notes and some marking.
[PATCH 25/32] process RX in workqueue context, as same as FreeBSD
[PATCH 26/32] count rx_drops correctly.
[PATCH 27/32] no need to lock when attach/detach, down/up
[PATCH 28/32] fix memory leak.
[PATCH 29/32] add "stopping" flag to ena_ring.
[PATCH 30/32] make the flags atomic.
[PATCH 31/32] do not schedule timer when device is down.
[PATCH 32/32] no need to start timer if I/F is down.
 1.7  23-Dec-2018  jmcneill branches: 1.7.16;
Use ___STRING instead of __STRING to expand driver version numbers properly
 1.6  30-Nov-2018  jmcneill Get this driver into a functional state.
 1.5  28-Nov-2018  jmcneill Use correct PCI BAR offsets
 1.4  03-Sep-2018  riastradh Rename min/max -> uimin/uimax for better honesty.

These functions are defined on unsigned int. The generic name
min/max should not silently truncate to 32 bits on 64-bit systems.
This is purely a name change -- no functional change intended.

HOWEVER! Some subsystems have

#define min(a, b) ((a) < (b) ? (a) : (b))
#define max(a, b) ((a) > (b) ? (a) : (b))

even though our standard name for that is MIN/MAX. Although these
may invite multiple evaluation bugs, these do _not_ cause integer
truncation.

To avoid `fixing' these cases, I first changed the name in libkern,
and then compile-tested every file where min/max occurred in order to
confirm that it failed -- and thus confirm that nothing shadowed
min/max -- before changing it.

I have left a handful of bootloaders that are too annoying to
compile-test, and some dead code:

cobalt ews4800mips hp300 hppa ia64 luna68k vax
acorn32/if_ie.c (not included in any kernels)
macppc/if_gm.c (superseded by gem(4))

It should be easy to fix the fallout once identified -- this way of
doing things fails safe, and the goal here, after all, is to _avoid_
silent integer truncations, not introduce them.

Maybe one day we can reintroduce min/max as type-generic things that
never silently truncate. But we should avoid doing that for a while,
so that existing code has a chance to be detected by the compiler for
conversion to uimin/uimax without changing the semantics until we can
properly audit it all. (Who knows, maybe in some cases integer
truncation is actually intended!)
 1.3  16-Jun-2018  jdolecek branches: 1.3.2;
make ena(4) compile, with best efford exercised to convert code to NetBSD
equivalents; where possible left the original code intact to make it
easier to compare against FreeBSD original

made non-working stubs for some functions which don't have direct
equivalent yet - this includes all of <sys/buf_ring.h>, m_getjcl(),
m_append, and m_collapse(); these need to be adressed

left XXX/TODO in if_enavar.h, colocated with the non-working stubs
 1.2  19-May-2018  jdolecek branches: 1.2.2;
Intermediate changes to make it further into actually at least compile, not nearly yet
complete. Committed so that others can possibly pick it off, as discussed
on tech-userlevel@ with Martin
 1.1  19-May-2018  jdolecek branches: 1.1.1;
Initial revision
 1.1.1.1  19-May-2018  jdolecek Import source for FreeBSD Amazon Elastic Network Adapter (ENA) NIC driver
for reference. Needs a lot of work to port over.

Remapped filenames from FreeBSD to NetBSD structure:
sys/dev/ena/ena.c -> sys/dev/pci/if_ena.c
sys/dev/ena/ena.h -> sys/dev/pci/if_enavar.h

ena_sysctl.* not imported, if needed later will be merged into if_ena.c
 1.2.2.5  26-Dec-2018  pgoyette Sync with HEAD, resolve a few conflicts
 1.2.2.4  06-Sep-2018  pgoyette Sync with HEAD

Resolve a couple of conflicts (result of the uimin/uimax changes)
 1.2.2.3  25-Jun-2018  pgoyette Sync with HEAD
 1.2.2.2  21-May-2018  pgoyette Sync with HEAD
 1.2.2.1  19-May-2018  pgoyette file if_enavar.h was added on branch pgoyette-compat on 2018-05-21 04:36:06 +0000
 1.3.2.1  10-Jun-2019  christos Sync with HEAD
 1.7.16.1  01-Aug-2021  thorpej Sync with HEAD.
 1.8.10.1  26-Nov-2023  bouyer Pull up following revision(s) (requested by jdolecek in ticket #460):
sys/dev/pci/if_ena.c: revision 1.35
sys/dev/pci/if_ena.c: revision 1.36
sys/dev/pci/if_ena.c: revision 1.37
sys/dev/pci/if_ena.c: revision 1.38
sys/dev/pci/if_ena.c: revision 1.39
sys/external/bsd/ena-com/ena_plat.h: revision 1.10
sys/dev/pci/if_enavar.h: revision 1.9
sys/external/bsd/ena-com/ena_com.c: revision 1.2
sys/external/bsd/ena-com/ena_com.c: revision 1.3
sys/external/bsd/ena-com/ena_com.c: revision 1.4
sys/dev/pci/if_ena.c: revision 1.40
sys/external/bsd/ena-com/ena_com.h: revision 1.2
ena(4): replace malloc(9) to kmem(9)
Code contributed by KUSABA Takeshi <t-kusaba@iij.ad.jp>
ena(4): prevent AENQ handler from use-after-free
Code contributed by KUSABA Takeshi <t-kusaba@iij.ad.jp>
ena(4): destroy all wait_event
Code contributed by KUSABA Takeshi <t-kusaba@iij.ad.jp>
ena(4): support RSS and delete FreeBSD-specified code
Code contributed by KUSABA Takeshi <t-kusaba@iij.ad.jp>
ena(4) is MP-ready, always use MPSAFE
Code contributed by KUSABA Takeshi <t-kusaba@iij.ad.jp>
ena(4): establish interrupt after setting up resources
Code contributed by KUSABA Takeshi <t-kusaba@iij.ad.jp>
ena(4): stop management first when detaching
Code contributed by KUSABA Takeshi <t-kusaba@iij.ad.jp>

RSS XML Feed