Skip to content

Commit d7e7895

Browse files
committed
Merge tag 'net-6.11-rc0' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
Pull networking fixes from Paolo Abeni: "Including fixes from netfilter. Notably this includes fixes for a s390 build breakage. Current release - new code bugs: - eth: fbnic: fix s390 build - eth: airoha: fix NULL pointer dereference in airoha_qdma_cleanup_rx_queue() Previous releases - regressions: - flow_dissector: use DEBUG_NET_WARN_ON_ONCE - ipv4: fix incorrect TOS in route get reply - dsa: fix chip-wide frame size config in some drivers Previous releases - always broken: - netfilter: nf_set_pipapo: fix initial map fill - eth: gve: fix XDP TX completion handling when counters overflow" * tag 'net-6.11-rc0' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: eth: fbnic: don't build the driver when skb has more than 21 frags net: dsa: b53: Limit chip-wide jumbo frame config to CPU ports net: dsa: mv88e6xxx: Limit chip-wide frame size config to CPU ports net: airoha: Fix NULL pointer dereference in airoha_qdma_cleanup_rx_queue() net: wwan: t7xx: add support for Dell DW5933e ipv4: Fix incorrect TOS in fibmatch route get reply ipv4: Fix incorrect TOS in route get reply net: flow_dissector: use DEBUG_NET_WARN_ON_ONCE driver core: auxiliary bus: Fix documentation of auxiliary_device net: airoha: fix error branch in airoha_dev_xmit and airoha_set_gdm_ports gve: Fix XDP TX completion handling when counters overflow ipvs: properly dereference pe in ip_vs_add_service selftests: netfilter: add test case for recent mismatch bug netfilter: nf_set_pipapo: fix initial map fill netfilter: ctnetlink: use helper function to calculate expect ID eth: fbnic: fix s390 build.
2 parents 53a5182 + 4359836 commit d7e7895

File tree

18 files changed

+156
-46
lines changed

18 files changed

+156
-46
lines changed

drivers/net/dsa/b53/b53_common.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2256,6 +2256,9 @@ static int b53_change_mtu(struct dsa_switch *ds, int port, int mtu)
22562256
if (is5325(dev) || is5365(dev))
22572257
return -EOPNOTSUPP;
22582258

2259+
if (!dsa_is_cpu_port(ds, port))
2260+
return 0;
2261+
22592262
enable_jumbo = (mtu >= JMS_MIN_SIZE);
22602263
allow_10_100 = (dev->chip_id == BCM583XX_DEVICE_ID);
22612264

drivers/net/dsa/mv88e6xxx/chip.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3626,7 +3626,8 @@ static int mv88e6xxx_change_mtu(struct dsa_switch *ds, int port, int new_mtu)
36263626
mv88e6xxx_reg_lock(chip);
36273627
if (chip->info->ops->port_set_jumbo_size)
36283628
ret = chip->info->ops->port_set_jumbo_size(chip, port, new_mtu);
3629-
else if (chip->info->ops->set_max_frame_size)
3629+
else if (chip->info->ops->set_max_frame_size &&
3630+
dsa_is_cpu_port(ds, port))
36303631
ret = chip->info->ops->set_max_frame_size(chip, new_mtu);
36313632
mv88e6xxx_reg_unlock(chip);
36323633

drivers/net/ethernet/google/gve/gve_tx.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -158,15 +158,16 @@ static int gve_clean_xdp_done(struct gve_priv *priv, struct gve_tx_ring *tx,
158158
u32 to_do)
159159
{
160160
struct gve_tx_buffer_state *info;
161-
u32 clean_end = tx->done + to_do;
162161
u64 pkts = 0, bytes = 0;
163162
size_t space_freed = 0;
164163
u32 xsk_complete = 0;
165164
u32 idx;
165+
int i;
166166

167-
for (; tx->done < clean_end; tx->done++) {
167+
for (i = 0; i < to_do; i++) {
168168
idx = tx->done & tx->mask;
169169
info = &tx->info[idx];
170+
tx->done++;
170171

171172
if (unlikely(!info->xdp.size))
172173
continue;

drivers/net/ethernet/mediatek/airoha_eth.c

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -977,7 +977,7 @@ static int airoha_set_gdm_ports(struct airoha_eth *eth, bool enable)
977977
return 0;
978978

979979
error:
980-
for (i--; i >= 0; i++)
980+
for (i--; i >= 0; i--)
981981
airoha_set_gdm_port(eth, port_list[i], false);
982982

983983
return err;
@@ -1585,15 +1585,14 @@ static int airoha_qdma_init_rx_queue(struct airoha_eth *eth,
15851585

15861586
static void airoha_qdma_cleanup_rx_queue(struct airoha_queue *q)
15871587
{
1588-
enum dma_data_direction dir = page_pool_get_dma_dir(q->page_pool);
15891588
struct airoha_eth *eth = q->eth;
15901589

15911590
while (q->queued) {
15921591
struct airoha_queue_entry *e = &q->entry[q->tail];
15931592
struct page *page = virt_to_head_page(e->buf);
15941593

15951594
dma_sync_single_for_cpu(eth->dev, e->dma_addr, e->dma_len,
1596-
dir);
1595+
page_pool_get_dma_dir(q->page_pool));
15971596
page_pool_put_full_page(q->page_pool, page, false);
15981597
q->tail = (q->tail + 1) % q->ndesc;
15991598
q->queued--;
@@ -2431,9 +2430,11 @@ static netdev_tx_t airoha_dev_xmit(struct sk_buff *skb,
24312430
return NETDEV_TX_OK;
24322431

24332432
error_unmap:
2434-
for (i--; i >= 0; i++)
2435-
dma_unmap_single(dev->dev.parent, q->entry[i].dma_addr,
2436-
q->entry[i].dma_len, DMA_TO_DEVICE);
2433+
for (i--; i >= 0; i--) {
2434+
index = (q->head + i) % q->ndesc;
2435+
dma_unmap_single(dev->dev.parent, q->entry[index].dma_addr,
2436+
q->entry[index].dma_len, DMA_TO_DEVICE);
2437+
}
24372438

24382439
spin_unlock_bh(&q->lock);
24392440
error:

drivers/net/ethernet/meta/Kconfig

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ if NET_VENDOR_META
2020
config FBNIC
2121
tristate "Meta Platforms Host Network Interface"
2222
depends on X86_64 || COMPILE_TEST
23+
depends on S390=n
24+
depends on MAX_SKB_FRAGS < 22
2325
depends on PCI_MSI
2426
select PHYLINK
2527
help

drivers/net/wwan/t7xx/t7xx_pci.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -852,6 +852,7 @@ static void t7xx_pci_remove(struct pci_dev *pdev)
852852

853853
static const struct pci_device_id t7xx_pci_table[] = {
854854
{ PCI_DEVICE(PCI_VENDOR_ID_MEDIATEK, 0x4d75) },
855+
{ PCI_DEVICE(0x14c0, 0x4d75) }, // Dell DW5933e
855856
{ }
856857
};
857858
MODULE_DEVICE_TABLE(pci, t7xx_pci_table);

include/linux/auxiliary_bus.h

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,9 +58,10 @@
5858
* in
5959
* @name: Match name found by the auxiliary device driver,
6060
* @id: unique identitier if multiple devices of the same name are exported,
61-
* @irqs: irqs xarray contains irq indices which are used by the device,
62-
* @lock: Synchronize irq sysfs creation,
63-
* @irq_dir_exists: whether "irqs" directory exists,
61+
* @sysfs: embedded struct which hold all sysfs related fields,
62+
* @sysfs.irqs: irqs xarray contains irq indices which are used by the device,
63+
* @sysfs.lock: Synchronize irq sysfs creation,
64+
* @sysfs.irq_dir_exists: whether "irqs" directory exists,
6465
*
6566
* An auxiliary_device represents a part of its parent device's functionality.
6667
* It is given a name that, combined with the registering drivers

include/net/ip_fib.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,7 @@ struct fib_result {
173173
unsigned char type;
174174
unsigned char scope;
175175
u32 tclassid;
176+
dscp_t dscp;
176177
struct fib_nh_common *nhc;
177178
struct fib_info *fi;
178179
struct fib_table *table;

net/core/flow_dissector.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1117,7 +1117,7 @@ bool __skb_flow_dissect(const struct net *net,
11171117
}
11181118
}
11191119

1120-
WARN_ON_ONCE(!net);
1120+
DEBUG_NET_WARN_ON_ONCE(!net);
11211121
if (net) {
11221122
enum netns_bpf_attach_type type = NETNS_BPF_FLOW_DISSECTOR;
11231123
struct bpf_prog_array *run_array;

net/ipv4/fib_trie.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1629,6 +1629,7 @@ int fib_table_lookup(struct fib_table *tb, const struct flowi4 *flp,
16291629
res->nhc = nhc;
16301630
res->type = fa->fa_type;
16311631
res->scope = fi->fib_scope;
1632+
res->dscp = fa->fa_dscp;
16321633
res->fi = fi;
16331634
res->table = tb;
16341635
res->fa_head = &n->leaf;

0 commit comments

Comments
 (0)