Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
82 commits
Select commit Hold shift + click to select a range
606ee5f
kernel-doc: fix struct_group_tagged() parsing
kees Apr 10, 2024
ad7d2aa
net: intel: introduce {,Intel} Ethernet common library
alobakin Mar 8, 2023
c1188ce
iavf: kill "legacy-rx" for good
alobakin Feb 1, 2023
6f503a4
iavf: drop page splitting and recycling
alobakin Jun 14, 2023
a83d141
slab: introduce kvmalloc_array_node() and kvcalloc_node()
alobakin Apr 3, 2024
d17e10c
page_pool: constify some read-only function arguments
alobakin Nov 17, 2023
8419d25
page_pool: add DMA-sync-for-CPU inline helper
alobakin Nov 23, 2023
772143e
libeth: add Rx buffer management
alobakin Jun 20, 2023
b474e8e
iavf: pack iavf_ring more efficiently
alobakin Jul 18, 2023
dad6e3a
iavf: switch to Page Pool
alobakin Jul 19, 2023
86a7c0a
MAINTAINERS: add entry for libeth and libie
alobakin Apr 18, 2024
56ae26a
dma: compile-out DMA sync op calls when not used
alobakin Jan 11, 2024
338a841
dma: avoid redundant calls for sync operations
alobakin Apr 23, 2024
dbc1692
iommu/dma: avoid expensive indirect calls for sync operations
alobakin Jan 24, 2024
8a70ad9
page_pool: make sure frag API fields don't span between cachelines
alobakin Nov 16, 2023
c0db837
page_pool: don't use driver-set flags field directly
alobakin Jul 19, 2023
82a4d0a
page_pool: check for DMA sync shortcut earlier
alobakin Jan 10, 2024
80f850b
xsk: use generic DMA sync shortcut instead of a custom one
alobakin Jan 10, 2024
4af0062
netdevice: define and allocate &net_device _properly_
alobakin Apr 24, 2024
fd01707
netdev_features: remove unused __UNUSED_NETIF_F_1
alobakin Apr 4, 2024
7651ee5
netdev_features: convert NETIF_F_LLTX to priv_flag IFF_LLTX
alobakin Apr 4, 2024
79d305f
netdevice: introduce IFF_LOGICAL as (IFF_NO_QUEUE | IFF_LLTX)
alobakin Apr 4, 2024
ae80c6b
netdev_features: convert NETIF_F_NETNS_LOCAL to IFF_NETNS_LOCAL
alobakin Apr 4, 2024
c8aac2e
netdev_features: convert NETIF_F_HIGHDMA to priv_flag IFF_HIGHDMA
alobakin Apr 4, 2024
8c14b0d
netdev_features: convert NETIF_F_VLAN_CHALLENGED to IFF_VLAN_CHALLENGED
alobakin Apr 5, 2024
b73ab0f
netdev_features: convert NETIF_F_FCOE_MTU to IFF_FCOE_MTU
alobakin Apr 5, 2024
fc9e45e
net: Register system page pool as an XDP memory model
tohojo Feb 20, 2024
9f48225
bpf: test_run: Use system page pool for XDP live frame mode
tohojo Feb 20, 2024
7fa38be
bpf: test_run: Fix cacheline alignment of live XDP frame data structures
tohojo Feb 20, 2024
a00e7f6
page pool: Remove init_callback parameter
tohojo Feb 20, 2024
223a9cb
libeth: add cacheline / struct alignment helpers
alobakin Mar 22, 2024
81d6bfb
idpf: stop using macros for accessing queue descriptors
alobakin Dec 13, 2023
188eb2d
idpf: split &idpf_queue into 4 strictly-typed queue structures
alobakin Nov 29, 2023
eaf680c
idpf: avoid bloating &idpf_q_vector with big %NR_CPUS
alobakin Mar 1, 2024
69a5d6e
idpf: strictly assert cachelines of queue and queue vector structures
alobakin Mar 21, 2024
ae76c4b
idpf: merge singleq and splitq &net_device_ops
alobakin Apr 15, 2024
916ad52
idpf: compile singleq code only under default-n CONFIG_IDPF_SINGLEQ
alobakin Apr 16, 2024
02208cf
idpf: reuse libie's definitions of parsed ptype structures
alobakin Nov 29, 2023
263c6d5
idpf: remove legacy Page Pool Ethtool stats
alobakin Dec 20, 2023
cfe25fc
libie: support different types of buffers for Rx
alobakin Dec 4, 2023
9d89409
idpf: convert header split mode to libie + napi_build_skb()
alobakin Dec 6, 2023
ad3c8f1
idpf: use libie Rx buffer management for payload buffer
alobakin Dec 6, 2023
52b3938
unroll: add generic loop unroll helpers
alobakin Feb 12, 2024
5a5e5ed
libie: add common queue stats
alobakin Mar 14, 2023
6e67813
libie: add Tx buffer completion helpers
alobakin Dec 13, 2023
7635af6
idpf: convert to libie Tx buffer completion
alobakin Dec 13, 2023
a50ffc2
netdevice: add netdev_tx_reset_subqueue() shorthand
alobakin Apr 15, 2024
207959e
idpf: refactor Tx completion routines
jahay1 Mar 20, 2024
abaf00e
idpf: fix netdev Tx queue stop/wake
michalQb Mar 22, 2024
3e55334
idpf: enable WB_ON_ITR
jahay1 Dec 15, 2023
e7c4000
idpf: switch do libeth generic statistics
alobakin Apr 16, 2024
7fbb3ef
bpf, xdp: constify some bpf_prog * function arguments
alobakin Dec 11, 2023
93da988
xdp, xsk: constify read-only arguments of some static inline helpers
alobakin Dec 6, 2023
78f1997
xdp: allow attaching already registered memory model to xdp_rxq_info
alobakin Dec 19, 2023
3b84177
page_pool: make page_pool_put_page_bulk() actually handle array of pages
alobakin Feb 5, 2024
a7b76d6
page_pool: allow mixing PPs within one bulk
alobakin Dec 7, 2023
17429fa
xdp: get rid of xdp_frame::mem.id
alobakin Dec 7, 2023
b2ced31
xdp: add generic xdp_buff_add_frag()
alobakin Dec 6, 2023
618b50e
xdp: add generic xdp_build_skb_from_buff()
alobakin Dec 6, 2023
355789b
xsk: allow attaching XSk pool via xdp_rxq_info_reg_mem_model()
alobakin Jan 31, 2024
7b35cc9
xsk: make xsk_buff_add_frag really add a frag via __xdp_buff_add_frag()
alobakin Jan 30, 2024
2e73827
xsk: add generic XSk xdp_buff -> skb conversion
alobakin Dec 22, 2023
8e46ef1
xsk: add helper to get &xdp_desc's DMA and meta pointer in one go
alobakin Mar 25, 2024
78ac1d2
skbuff: add skb_frag_dma_map_tx() shorthand
alobakin Apr 5, 2024
ec7d857
jump_label: export static_key_slow_{inc,dec}_cpuslocked()
alobakin Dec 15, 2023
ac6186e
libie: support native XDP and register memory model
alobakin Dec 8, 2023
b98a0de
libie: add a couple of XDP helpers
alobakin Dec 11, 2023
c50d66c
idpf: make complq cleaning dependent on scheduling mode
michalQb Oct 20, 2023
63cd9d3
idpf: remove SW marker handling from NAPI
michalQb Feb 23, 2024
b190ea6
idpf: prepare structures to support xdp
michalQb Oct 3, 2023
f58f81b
idpf: implement XDP_SETUP_PROG in ndo_bpf for splitq
michalQb Oct 4, 2023
eab16d8
idpf: use generic functions to build xdp_buff and skb
alobakin Dec 6, 2023
f42038b
idpf: add support for XDP on Rx
alobakin Dec 12, 2023
0dc5b6c
idpf: add support for .ndo_xdp_xmit()
alobakin Oct 30, 2023
e2fefea
idpf: add XDP RSS hash hint
alobakin Mar 8, 2024
c5ff3af
idpf: add vc functions to manage selected queues
michalQb Nov 17, 2023
adba86b
idpf: add XSk pool initialization
michalQb Nov 27, 2023
ef55e1a
idpf: implement Tx path for AF_XDP
alobakin Dec 7, 2023
cccefea
idpf: implement Rx path for AF_XDP
alobakin Dec 12, 2023
eac4d45
idpf: enable XSk features and ndo_xsk_wakeup
alobakin Dec 6, 2023
02c4146
idpf: handle xdp unloading while the driver is being removed
michalQb Apr 5, 2024
3490505
idpf-linux: fix memory leaks in xdp and soft_reset
michalQb Apr 5, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Documentation/driver-api/usb/dma.rst
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ and effects like cache-trashing can impose subtle penalties.
way to expose these capabilities ... and in any case, HIGHMEM is mostly a
design wart specific to x86_32. So your best bet is to ensure you never
pass a highmem buffer into a USB driver. That's easy; it's the default
behavior. Just don't override it; e.g. with ``NETIF_F_HIGHDMA``.
behavior. Just don't override it; e.g. with ``IFF_HIGHDMA``.

This may force your callers to do some bounce buffering, copying from
high memory to "normal" DMA memory. If you can come up with a good way
Expand Down
2 changes: 1 addition & 1 deletion Documentation/networking/ethtool-netlink.rst
Original file line number Diff line number Diff line change
Expand Up @@ -763,7 +763,7 @@ Kernel response contents:
``ETHTOOL_A_FEATURES_HW`` bitset dev->hw_features
``ETHTOOL_A_FEATURES_WANTED`` bitset dev->wanted_features
``ETHTOOL_A_FEATURES_ACTIVE`` bitset dev->features
``ETHTOOL_A_FEATURES_NOCHANGE`` bitset NETIF_F_NEVER_CHANGE
``ETHTOOL_A_FEATURES_NOCHANGE`` bitset 0
==================================== ====== ==========================

Bitmaps in kernel response have the same meaning as bitmaps used in ioctl
Expand Down
31 changes: 1 addition & 30 deletions Documentation/networking/netdev-features.rst
Original file line number Diff line number Diff line change
Expand Up @@ -82,9 +82,7 @@ This callback should not modify hardware nor driver state (should be
stateless). It can be called multiple times between successive
ndo_set_features calls.

Callback must not alter features contained in NETIF_F_SOFT_FEATURES or
NETIF_F_NEVER_CHANGE sets. The exception is NETIF_F_VLAN_CHALLENGED but
care must be taken as the change won't affect already configured VLANs.
Callback must not alter features contained in NETIF_F_SOFT_FEATURES.

* ndo_set_features:

Expand Down Expand Up @@ -123,11 +121,6 @@ gso_size. On segmentation, it segments the payload on gso_size boundaries and
replicates the network and UDP headers (fixing up the last one if less than
gso_size).

* Transmit DMA from high memory

On platforms where this is relevant, NETIF_F_HIGHDMA signals that
ndo_start_xmit can handle skbs with frags in high memory.

* Transmit scatter-gather

Those features say that ndo_start_xmit can handle fragmented skbs:
Expand All @@ -139,28 +132,6 @@ chained skbs (skb->next/prev list).
Features contained in NETIF_F_SOFT_FEATURES are features of networking
stack. Driver should not change behaviour based on them.

* LLTX driver (deprecated for hardware drivers)

NETIF_F_LLTX is meant to be used by drivers that don't need locking at all,
e.g. software tunnels.

This is also used in a few legacy drivers that implement their
own locking, don't use it for new (hardware) drivers.

* netns-local device

NETIF_F_NETNS_LOCAL is set for devices that are not allowed to move between
network namespaces (e.g. loopback).

Don't use it in drivers.

* VLAN challenged

NETIF_F_VLAN_CHALLENGED should be set for devices which can't cope with VLAN
headers. Some drivers set this because the cards can't handle the bigger MTU.
[FIXME: Those cases could be fixed in VLAN code by allowing only reduced-MTU
VLANs. This may be not useful, though.]

* rx-fcs

This requests that the NIC append the Ethernet Frame Checksum (FCS)
Expand Down
4 changes: 2 additions & 2 deletions Documentation/networking/netdevices.rst
Original file line number Diff line number Diff line change
Expand Up @@ -258,11 +258,11 @@ ndo_get_stats:
ndo_start_xmit:
Synchronization: __netif_tx_lock spinlock.

When the driver sets NETIF_F_LLTX in dev->features this will be
When the driver sets IFF_LLTX in dev->priv_flags this will be
called without holding netif_tx_lock. In this case the driver
has to lock by itself when needed.
The locking there should also properly protect against
set_rx_mode. WARNING: use of NETIF_F_LLTX is deprecated.
set_rx_mode. WARNING: use of IFF_LLTX is deprecated.
Don't use it for new drivers.

Context: Process with BHs disabled or BH (timer),
Expand Down
4 changes: 2 additions & 2 deletions Documentation/networking/switchdev.rst
Original file line number Diff line number Diff line change
Expand Up @@ -137,10 +137,10 @@ would be sub-port 0 on port 1 on switch 1.
Port Features
^^^^^^^^^^^^^

NETIF_F_NETNS_LOCAL
IFF_NETNS_LOCAL

If the switchdev driver (and device) only supports offloading of the default
network namespace (netns), the driver should set this feature flag to prevent
network namespace (netns), the driver should set this private flag to prevent
the port netdev from being moved out of the default netns. A netns-aware
driver/device would not set this flag and be responsible for partitioning
hardware to preserve netns containment. This means hardware cannot forward
Expand Down
20 changes: 20 additions & 0 deletions MAINTAINERS
Original file line number Diff line number Diff line change
Expand Up @@ -12390,6 +12390,26 @@ F: drivers/ata/
F: include/linux/ata.h
F: include/linux/libata.h

LIBETH COMMON ETHERNET LIBRARY
M: Alexander Lobakin <aleksander.lobakin@intel.com>
L: netdev@vger.kernel.org
L: intel-wired-lan@lists.osuosl.org (moderated for non-subscribers)
S: Supported
T: git https://github.com/alobakin/linux.git
F: drivers/net/ethernet/intel/libeth/
F: include/net/libeth/
K: libeth

LIBIE COMMON INTEL ETHERNET LIBRARY
M: Alexander Lobakin <aleksander.lobakin@intel.com>
L: intel-wired-lan@lists.osuosl.org (moderated for non-subscribers)
L: netdev@vger.kernel.org
S: Supported
T: git https://github.com/alobakin/linux.git
F: drivers/net/ethernet/intel/libie/
F: include/linux/net/intel/libie/
K: libie

LIBNVDIMM BTT: BLOCK TRANSLATION TABLE
M: Vishal Verma <vishal.l.verma@intel.com>
M: Dan Williams <dan.j.williams@intel.com>
Expand Down
5 changes: 3 additions & 2 deletions arch/mips/include/asm/r4kcache.h
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
#define _ASM_R4KCACHE_H

#include <linux/stringify.h>
#include <linux/unroll.h>

#include <asm/asm.h>
#include <asm/asm-eva.h>
Expand All @@ -22,7 +23,6 @@
#include <asm/cpu-type.h>
#include <asm/mipsmtregs.h>
#include <asm/mmzone.h>
#include <asm/unroll.h>

extern void r5k_sc_init(void);
extern void rm7k_sc_init(void);
Expand Down Expand Up @@ -194,7 +194,8 @@ static inline void invalidate_tcache_page(unsigned long addr)

#define cache_unroll(times, insn, op, addr, lsize) do { \
int i = 0; \
unroll(times, _cache_op, insn, op, (addr) + (i++ * (lsize))); \
unrolled_call(times, _cache_op, insn, op, \
(addr) + (i++ * (lsize))); \
} while (0)

/* build blast_xxx, blast_xxx_page, blast_xxx_page_indexed */
Expand Down
75 changes: 0 additions & 75 deletions arch/mips/include/asm/unroll.h

This file was deleted.

2 changes: 1 addition & 1 deletion drivers/firewire/net.c
Original file line number Diff line number Diff line change
Expand Up @@ -1377,7 +1377,7 @@ static void fwnet_init_dev(struct net_device *net)
net->netdev_ops = &fwnet_netdev_ops;
net->watchdog_timeo = 2 * HZ;
net->flags = IFF_BROADCAST | IFF_MULTICAST;
net->features = NETIF_F_HIGHDMA;
net->priv_flags |= IFF_HIGHDMA;
net->addr_len = FWNET_ALEN;
net->hard_header_len = FWNET_HLEN;
net->type = ARPHRD_IEEE1394;
Expand Down
3 changes: 2 additions & 1 deletion drivers/infiniband/hw/hfi1/vnic_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -588,9 +588,10 @@ struct net_device *hfi1_vnic_alloc_rn(struct ib_device *device,
rn->free_rdma_netdev = hfi1_vnic_free_rn;
rn->set_id = hfi1_vnic_set_vesw_id;

netdev->features = NETIF_F_HIGHDMA | NETIF_F_SG;
netdev->features = NETIF_F_SG;
netdev->hw_features = netdev->features;
netdev->vlan_features = netdev->features;
netdev->priv_flags |= IFF_HIGHDMA;
netdev->watchdog_timeo = msecs_to_jiffies(HFI_TX_TIMEOUT_MS);
netdev->netdev_ops = &hfi1_netdev_ops;
mutex_init(&vinfo->lock);
Expand Down
3 changes: 1 addition & 2 deletions drivers/infiniband/ulp/ipoib/ipoib_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -2142,13 +2142,12 @@ void ipoib_setup_common(struct net_device *dev)
dev->watchdog_timeo = 10 * HZ;

dev->flags |= IFF_BROADCAST | IFF_MULTICAST;
dev->priv_flags |= IFF_HIGHDMA | IFF_VLAN_CHALLENGED;

dev->hard_header_len = IPOIB_HARD_LEN;
dev->addr_len = INFINIBAND_ALEN;
dev->type = ARPHRD_INFINIBAND;
dev->tx_queue_len = ipoib_sendq_size * 2;
dev->features = (NETIF_F_VLAN_CHALLENGED |
NETIF_F_HIGHDMA);
netif_keep_dst(dev);

memcpy(dev->broadcast, ipv4_bcast_addr, INFINIBAND_ALEN);
Expand Down
3 changes: 2 additions & 1 deletion drivers/iommu/dma-iommu.c
Original file line number Diff line number Diff line change
Expand Up @@ -1720,7 +1720,8 @@ static size_t iommu_dma_max_mapping_size(struct device *dev)
}

static const struct dma_map_ops iommu_dma_ops = {
.flags = DMA_F_PCI_P2PDMA_SUPPORTED,
.flags = DMA_F_PCI_P2PDMA_SUPPORTED |
DMA_F_CAN_SKIP_SYNC,
.alloc = iommu_dma_alloc,
.free = iommu_dma_free,
.alloc_pages = dma_common_alloc_pages,
Expand Down
4 changes: 1 addition & 3 deletions drivers/net/amt.c
Original file line number Diff line number Diff line change
Expand Up @@ -3097,10 +3097,8 @@ static void amt_link_setup(struct net_device *dev)
dev->flags = IFF_POINTOPOINT | IFF_NOARP | IFF_MULTICAST;
dev->hard_header_len = 0;
dev->addr_len = 0;
dev->priv_flags |= IFF_NO_QUEUE;
dev->features |= NETIF_F_LLTX;
dev->priv_flags |= IFF_LOGICAL | IFF_NETNS_LOCAL;
dev->features |= NETIF_F_GSO_SOFTWARE;
dev->features |= NETIF_F_NETNS_LOCAL;
dev->hw_features |= NETIF_F_SG | NETIF_F_HW_CSUM;
dev->hw_features |= NETIF_F_FRAGLIST | NETIF_F_RXCSUM;
dev->hw_features |= NETIF_F_GSO_SOFTWARE;
Expand Down
3 changes: 1 addition & 2 deletions drivers/net/bareudp.c
Original file line number Diff line number Diff line change
Expand Up @@ -553,7 +553,6 @@ static void bareudp_setup(struct net_device *dev)
SET_NETDEV_DEVTYPE(dev, &bareudp_type);
dev->features |= NETIF_F_SG | NETIF_F_HW_CSUM | NETIF_F_FRAGLIST;
dev->features |= NETIF_F_RXCSUM;
dev->features |= NETIF_F_LLTX;
dev->features |= NETIF_F_GSO_SOFTWARE;
dev->hw_features |= NETIF_F_SG | NETIF_F_HW_CSUM | NETIF_F_FRAGLIST;
dev->hw_features |= NETIF_F_RXCSUM;
Expand All @@ -565,7 +564,7 @@ static void bareudp_setup(struct net_device *dev)
dev->max_mtu = IP_MAX_MTU - BAREUDP_BASE_HLEN;
dev->type = ARPHRD_NONE;
netif_keep_dst(dev);
dev->priv_flags |= IFF_NO_QUEUE;
dev->priv_flags |= IFF_LOGICAL;
dev->flags = IFF_POINTOPOINT | IFF_NOARP | IFF_MULTICAST;
dev->pcpu_stat_type = NETDEV_PCPU_STAT_TSTATS;
}
Expand Down
Loading