Skip to content

Commit 1f719a2

Browse files
committed
Merge tag 'net-6.8-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
Pull networking fixes from Paolo Abeni: "Including fixes from WiFi and netfilter. Current release - regressions: - nic: intel: fix old compiler regressions - netfilter: ipset: missing gc cancellations fixed Current release - new code bugs: - netfilter: ctnetlink: fix filtering for zone 0 Previous releases - regressions: - core: fix from address in memcpy_to_iter_csum() - netfilter: nfnetlink_queue: un-break NF_REPEAT - af_unix: fix memory leak for dead unix_(sk)->oob_skb in GC. - devlink: avoid potential loop in devlink_rel_nested_in_notify_work() - iwlwifi: - mvm: fix a battery life regression - fix double-free bug - mac80211: fix waiting for beacons logic - nic: nfp: flower: prevent re-adding mac index for bonded port Previous releases - always broken: - rxrpc: fix generation of serial numbers to skip zero - tipc: check the bearer type before calling tipc_udp_nl_bearer_add() - tunnels: fix out of bounds access when building IPv6 PMTU error - nic: hv_netvsc: register VF in netvsc_probe if NET_DEVICE_REGISTER missed - nic: atlantic: fix DMA mapping for PTP hwts ring Misc: - selftests: more fixes to deal with very slow hosts" * tag 'net-6.8-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (80 commits) netfilter: nft_set_pipapo: remove scratch_aligned pointer netfilter: nft_set_pipapo: add helper to release pcpu scratch area netfilter: nft_set_pipapo: store index in scratch maps netfilter: nft_set_rbtree: skip end interval element from gc netfilter: nfnetlink_queue: un-break NF_REPEAT netfilter: nf_tables: use timestamp to check for set element timeout netfilter: nft_ct: reject direction for ct id netfilter: ctnetlink: fix filtering for zone 0 s390/qeth: Fix potential loss of L3-IP@ in case of network issues netfilter: ipset: Missing gc cancellations fixed octeontx2-af: Initialize maps. net: ethernet: ti: cpsw: enable mac_managed_pm to fix mdio net: ethernet: ti: cpsw_new: enable mac_managed_pm to fix mdio netfilter: nft_set_pipapo: remove static in nft_pipapo_get() netfilter: nft_compat: restrict match/target protocol to u16 netfilter: nft_compat: reject unused compat flag netfilter: nft_compat: narrow down revision to unsigned 8-bits net: intel: fix old compiler regressions MAINTAINERS: Maintainer change for rds selftests: cmsg_ipv6: repeat the exact packet ...
2 parents b0d5d0f + 63e4b9d commit 1f719a2

File tree

130 files changed

+1104
-481
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

130 files changed

+1104
-481
lines changed

MAINTAINERS

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4169,14 +4169,14 @@ F: drivers/firmware/broadcom/tee_bnxt_fw.c
41694169
F: drivers/net/ethernet/broadcom/bnxt/
41704170
F: include/linux/firmware/broadcom/tee_bnxt_fw.h
41714171

4172-
BROADCOM BRCM80211 IEEE802.11n WIRELESS DRIVER
4173-
M: Arend van Spriel <aspriel@gmail.com>
4174-
M: Franky Lin <franky.lin@broadcom.com>
4175-
M: Hante Meuleman <hante.meuleman@broadcom.com>
4172+
BROADCOM BRCM80211 IEEE802.11 WIRELESS DRIVERS
4173+
M: Arend van Spriel <arend.vanspriel@broadcom.com>
41764174
L: linux-wireless@vger.kernel.org
4175+
L: brcm80211@lists.linux.dev
41774176
L: brcm80211-dev-list.pdl@broadcom.com
41784177
S: Supported
41794178
F: drivers/net/wireless/broadcom/brcm80211/
4179+
F: include/linux/platform_data/brcmfmac.h
41804180

41814181
BROADCOM BRCMSTB GPIO DRIVER
41824182
M: Doug Berger <opendmb@gmail.com>
@@ -11127,7 +11127,6 @@ S: Supported
1112711127
F: drivers/net/wireless/intel/iwlegacy/
1112811128

1112911129
INTEL WIRELESS WIFI LINK (iwlwifi)
11130-
M: Gregory Greenman <gregory.greenman@intel.com>
1113111130
M: Miri Korenblit <miriam.rachel.korenblit@intel.com>
1113211131
L: linux-wireless@vger.kernel.org
1113311132
S: Supported
@@ -18432,7 +18431,7 @@ S: Supported
1843218431
F: drivers/infiniband/sw/rdmavt
1843318432

1843418433
RDS - RELIABLE DATAGRAM SOCKETS
18435-
M: Santosh Shilimkar <santosh.shilimkar@oracle.com>
18434+
M: Allison Henderson <allison.henderson@oracle.com>
1843618435
L: netdev@vger.kernel.org
1843718436
L: linux-rdma@vger.kernel.org
1843818437
L: rds-devel@oss.oracle.com (moderated for non-subscribers)

drivers/atm/idt77252.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2930,6 +2930,8 @@ open_card_ubr0(struct idt77252_dev *card)
29302930
vc->scq = alloc_scq(card, vc->class);
29312931
if (!vc->scq) {
29322932
printk("%s: can't get SCQ.\n", card->name);
2933+
kfree(card->vcs[0]);
2934+
card->vcs[0] = NULL;
29332935
return -ENOMEM;
29342936
}
29352937

drivers/net/ethernet/aquantia/atlantic/aq_ptp.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -993,7 +993,7 @@ int aq_ptp_ring_alloc(struct aq_nic_s *aq_nic)
993993
return 0;
994994

995995
err_exit_hwts_rx:
996-
aq_ring_free(&aq_ptp->hwts_rx);
996+
aq_ring_hwts_rx_free(&aq_ptp->hwts_rx);
997997
err_exit_ptp_rx:
998998
aq_ring_free(&aq_ptp->ptp_rx);
999999
err_exit_ptp_tx:
@@ -1011,7 +1011,7 @@ void aq_ptp_ring_free(struct aq_nic_s *aq_nic)
10111011

10121012
aq_ring_free(&aq_ptp->ptp_tx);
10131013
aq_ring_free(&aq_ptp->ptp_rx);
1014-
aq_ring_free(&aq_ptp->hwts_rx);
1014+
aq_ring_hwts_rx_free(&aq_ptp->hwts_rx);
10151015

10161016
aq_ptp_skb_ring_release(&aq_ptp->skb_ring);
10171017
}

drivers/net/ethernet/aquantia/atlantic/aq_ring.c

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -919,6 +919,19 @@ void aq_ring_free(struct aq_ring_s *self)
919919
}
920920
}
921921

922+
void aq_ring_hwts_rx_free(struct aq_ring_s *self)
923+
{
924+
if (!self)
925+
return;
926+
927+
if (self->dx_ring) {
928+
dma_free_coherent(aq_nic_get_dev(self->aq_nic),
929+
self->size * self->dx_size + AQ_CFG_RXDS_DEF,
930+
self->dx_ring, self->dx_ring_pa);
931+
self->dx_ring = NULL;
932+
}
933+
}
934+
922935
unsigned int aq_ring_fill_stats_data(struct aq_ring_s *self, u64 *data)
923936
{
924937
unsigned int count;

drivers/net/ethernet/aquantia/atlantic/aq_ring.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -210,6 +210,7 @@ int aq_ring_rx_fill(struct aq_ring_s *self);
210210
int aq_ring_hwts_rx_alloc(struct aq_ring_s *self,
211211
struct aq_nic_s *aq_nic, unsigned int idx,
212212
unsigned int size, unsigned int dx_size);
213+
void aq_ring_hwts_rx_free(struct aq_ring_s *self);
213214
void aq_ring_hwts_rx_clean(struct aq_ring_s *self, struct aq_nic_s *aq_nic);
214215

215216
unsigned int aq_ring_fill_stats_data(struct aq_ring_s *self, u64 *data);

drivers/net/ethernet/engleder/tsnep_main.c

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -719,17 +719,25 @@ static void tsnep_xdp_xmit_flush(struct tsnep_tx *tx)
719719

720720
static bool tsnep_xdp_xmit_back(struct tsnep_adapter *adapter,
721721
struct xdp_buff *xdp,
722-
struct netdev_queue *tx_nq, struct tsnep_tx *tx)
722+
struct netdev_queue *tx_nq, struct tsnep_tx *tx,
723+
bool zc)
723724
{
724725
struct xdp_frame *xdpf = xdp_convert_buff_to_frame(xdp);
725726
bool xmit;
727+
u32 type;
726728

727729
if (unlikely(!xdpf))
728730
return false;
729731

732+
/* no page pool for zero copy */
733+
if (zc)
734+
type = TSNEP_TX_TYPE_XDP_NDO;
735+
else
736+
type = TSNEP_TX_TYPE_XDP_TX;
737+
730738
__netif_tx_lock(tx_nq, smp_processor_id());
731739

732-
xmit = tsnep_xdp_xmit_frame_ring(xdpf, tx, TSNEP_TX_TYPE_XDP_TX);
740+
xmit = tsnep_xdp_xmit_frame_ring(xdpf, tx, type);
733741

734742
/* Avoid transmit queue timeout since we share it with the slow path */
735743
if (xmit)
@@ -1273,7 +1281,7 @@ static bool tsnep_xdp_run_prog(struct tsnep_rx *rx, struct bpf_prog *prog,
12731281
case XDP_PASS:
12741282
return false;
12751283
case XDP_TX:
1276-
if (!tsnep_xdp_xmit_back(rx->adapter, xdp, tx_nq, tx))
1284+
if (!tsnep_xdp_xmit_back(rx->adapter, xdp, tx_nq, tx, false))
12771285
goto out_failure;
12781286
*status |= TSNEP_XDP_TX;
12791287
return true;
@@ -1323,7 +1331,7 @@ static bool tsnep_xdp_run_prog_zc(struct tsnep_rx *rx, struct bpf_prog *prog,
13231331
case XDP_PASS:
13241332
return false;
13251333
case XDP_TX:
1326-
if (!tsnep_xdp_xmit_back(rx->adapter, xdp, tx_nq, tx))
1334+
if (!tsnep_xdp_xmit_back(rx->adapter, xdp, tx_nq, tx, true))
13271335
goto out_failure;
13281336
*status |= TSNEP_XDP_TX;
13291337
return true;

drivers/net/ethernet/intel/i40e/i40e_dcb.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@
4343
#define I40E_LLDP_TLV_SUBTYPE_SHIFT 0
4444
#define I40E_LLDP_TLV_SUBTYPE_MASK (0xFF << I40E_LLDP_TLV_SUBTYPE_SHIFT)
4545
#define I40E_LLDP_TLV_OUI_SHIFT 8
46-
#define I40E_LLDP_TLV_OUI_MASK (0xFFFFFF << I40E_LLDP_TLV_OUI_SHIFT)
46+
#define I40E_LLDP_TLV_OUI_MASK (0xFFFFFFU << I40E_LLDP_TLV_OUI_SHIFT)
4747

4848
/* Defines for IEEE ETS TLV */
4949
#define I40E_IEEE_ETS_MAXTC_SHIFT 0

drivers/net/ethernet/intel/ice/ice_osdep.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
#define rd64(a, reg) readq((a)->hw_addr + (reg))
2525

2626
#define ice_flush(a) rd32((a), GLGEN_STAT)
27-
#define ICE_M(m, s) ((m) << (s))
27+
#define ICE_M(m, s) ((m ## U) << (s))
2828

2929
struct ice_dma_mem {
3030
void *va;

drivers/net/ethernet/intel/ice/ice_type.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1072,7 +1072,7 @@ struct ice_aq_get_set_rss_lut_params {
10721072
#define ICE_OROM_VER_BUILD_SHIFT 8
10731073
#define ICE_OROM_VER_BUILD_MASK (0xffff << ICE_OROM_VER_BUILD_SHIFT)
10741074
#define ICE_OROM_VER_SHIFT 24
1075-
#define ICE_OROM_VER_MASK (0xff << ICE_OROM_VER_SHIFT)
1075+
#define ICE_OROM_VER_MASK (0xffU << ICE_OROM_VER_SHIFT)
10761076
#define ICE_SR_PFA_PTR 0x40
10771077
#define ICE_SR_1ST_NVM_BANK_PTR 0x42
10781078
#define ICE_SR_NVM_BANK_SIZE 0x43

drivers/net/ethernet/marvell/octeontx2/af/rvu_npc.c

Lines changed: 15 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1850,8 +1850,8 @@ void npc_mcam_rsrcs_deinit(struct rvu *rvu)
18501850
{
18511851
struct npc_mcam *mcam = &rvu->hw->mcam;
18521852

1853-
kfree(mcam->bmap);
1854-
kfree(mcam->bmap_reverse);
1853+
bitmap_free(mcam->bmap);
1854+
bitmap_free(mcam->bmap_reverse);
18551855
kfree(mcam->entry2pfvf_map);
18561856
kfree(mcam->cntr2pfvf_map);
18571857
kfree(mcam->entry2cntr_map);
@@ -1904,21 +1904,20 @@ int npc_mcam_rsrcs_init(struct rvu *rvu, int blkaddr)
19041904
mcam->pf_offset = mcam->nixlf_offset + nixlf_count;
19051905

19061906
/* Allocate bitmaps for managing MCAM entries */
1907-
mcam->bmap = kmalloc_array(BITS_TO_LONGS(mcam->bmap_entries),
1908-
sizeof(long), GFP_KERNEL);
1907+
mcam->bmap = bitmap_zalloc(mcam->bmap_entries, GFP_KERNEL);
19091908
if (!mcam->bmap)
19101909
return -ENOMEM;
19111910

1912-
mcam->bmap_reverse = kmalloc_array(BITS_TO_LONGS(mcam->bmap_entries),
1913-
sizeof(long), GFP_KERNEL);
1911+
mcam->bmap_reverse = bitmap_zalloc(mcam->bmap_entries, GFP_KERNEL);
19141912
if (!mcam->bmap_reverse)
19151913
goto free_bmap;
19161914

19171915
mcam->bmap_fcnt = mcam->bmap_entries;
19181916

19191917
/* Alloc memory for saving entry to RVU PFFUNC allocation mapping */
1920-
mcam->entry2pfvf_map = kmalloc_array(mcam->bmap_entries,
1921-
sizeof(u16), GFP_KERNEL);
1918+
mcam->entry2pfvf_map = kcalloc(mcam->bmap_entries, sizeof(u16),
1919+
GFP_KERNEL);
1920+
19221921
if (!mcam->entry2pfvf_map)
19231922
goto free_bmap_reverse;
19241923

@@ -1941,21 +1940,21 @@ int npc_mcam_rsrcs_init(struct rvu *rvu, int blkaddr)
19411940
if (err)
19421941
goto free_entry_map;
19431942

1944-
mcam->cntr2pfvf_map = kmalloc_array(mcam->counters.max,
1945-
sizeof(u16), GFP_KERNEL);
1943+
mcam->cntr2pfvf_map = kcalloc(mcam->counters.max, sizeof(u16),
1944+
GFP_KERNEL);
19461945
if (!mcam->cntr2pfvf_map)
19471946
goto free_cntr_bmap;
19481947

19491948
/* Alloc memory for MCAM entry to counter mapping and for tracking
19501949
* counter's reference count.
19511950
*/
1952-
mcam->entry2cntr_map = kmalloc_array(mcam->bmap_entries,
1953-
sizeof(u16), GFP_KERNEL);
1951+
mcam->entry2cntr_map = kcalloc(mcam->bmap_entries, sizeof(u16),
1952+
GFP_KERNEL);
19541953
if (!mcam->entry2cntr_map)
19551954
goto free_cntr_map;
19561955

1957-
mcam->cntr_refcnt = kmalloc_array(mcam->counters.max,
1958-
sizeof(u16), GFP_KERNEL);
1956+
mcam->cntr_refcnt = kcalloc(mcam->counters.max, sizeof(u16),
1957+
GFP_KERNEL);
19591958
if (!mcam->cntr_refcnt)
19601959
goto free_entry_cntr_map;
19611960

@@ -1988,9 +1987,9 @@ int npc_mcam_rsrcs_init(struct rvu *rvu, int blkaddr)
19881987
free_entry_map:
19891988
kfree(mcam->entry2pfvf_map);
19901989
free_bmap_reverse:
1991-
kfree(mcam->bmap_reverse);
1990+
bitmap_free(mcam->bmap_reverse);
19921991
free_bmap:
1993-
kfree(mcam->bmap);
1992+
bitmap_free(mcam->bmap);
19941993

19951994
return -ENOMEM;
19961995
}

0 commit comments

Comments
 (0)