Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
authorJakub Kicinski <kuba@kernel.org>
Thu, 22 May 2025 16:42:41 +0000 (09:42 -0700)
committerJakub Kicinski <kuba@kernel.org>
Thu, 22 May 2025 16:42:41 +0000 (09:42 -0700)
Cross-merge networking fixes after downstream PR (net-6.15-rc8).

Conflicts:
  80f2ab46c2ee ("irdma: free iwdev->rf after removing MSI-X")
  4bcc063939a5 ("ice, irdma: fix an off by one in error handling code")
  c24a65b6a27c ("iidc/ice/irdma: Update IDC to support multiple consumers")
https://lore.kernel.org/20250513130630.280ee6c5@canb.auug.org.au

No extra adjacent changes.

Signed-off-by: Jakub Kicinski <kuba@kernel.org>
17 files changed:
1  2 
MAINTAINERS
drivers/infiniband/hw/irdma/main.c
drivers/net/ethernet/airoha/airoha_eth.c
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
drivers/net/ethernet/intel/ice/ice_virtchnl.c
drivers/net/ethernet/intel/idpf/idpf.h
drivers/net/ethernet/intel/idpf/idpf_lib.c
drivers/net/ethernet/intel/idpf/idpf_txrx.c
drivers/net/ethernet/marvell/octeontx2/nic/otx2_vf.c
drivers/net/ethernet/microchip/lan743x_main.c
drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c
drivers/net/ethernet/ti/am65-cpsw-nuss.c
drivers/ptp/ptp_ocp.c
include/net/netdev_lock.h
mm/page_alloc.c
net/bridge/br_private.h
net/ipv4/ipmr.c

diff --cc MAINTAINERS
Simple merge
index abb532bc8ce4dfc9f637224b5bfa951bc2e84bda,7599e31b574369058573e8f6cf9ce9d5b07e6ffd..1e840bbd619d2e33c83bcc02a7338b62b3cc8939
@@@ -221,8 -221,8 +221,8 @@@ static int irdma_init_interrupts(struc
                        break;
  
        if (i < IRDMA_MIN_MSIX) {
-               for (; i > 0; i--)
+               while (--i >= 0)
 -                      ice_free_rdma_qvector(pf, &rf->msix_entries[i]);
 +                      ice_free_rdma_qvector(cdev, &rf->msix_entries[i]);
  
                kfree(rf->msix_entries);
                return -ENOMEM;
@@@ -245,40 -245,35 +245,42 @@@ static void irdma_deinit_interrupts(str
  
  static void irdma_remove(struct auxiliary_device *aux_dev)
  {
 -      struct iidc_auxiliary_dev *iidc_adev = container_of(aux_dev,
 -                                                          struct iidc_auxiliary_dev,
 -                                                          adev);
 -      struct ice_pf *pf = iidc_adev->pf;
        struct irdma_device *iwdev = auxiliary_get_drvdata(aux_dev);
 +      struct iidc_rdma_core_auxiliary_dev *iidc_adev;
 +      struct iidc_rdma_core_dev_info *cdev_info;
 +
 +      iidc_adev = container_of(aux_dev, struct iidc_rdma_core_auxiliary_dev, adev);
 +      cdev_info = iidc_adev->cdev_info;
  
 +      ice_rdma_update_vsi_filter(cdev_info, iwdev->vsi_num, false);
        irdma_ib_unregister_device(iwdev);
 -      ice_rdma_update_vsi_filter(pf, iwdev->vsi_num, false);
 -      irdma_deinit_interrupts(iwdev->rf, pf);
 +      irdma_deinit_interrupts(iwdev->rf, cdev_info);
  
 -      pr_debug("INIT: Gen2 PF[%d] device remove success\n", PCI_FUNC(pf->pdev->devfn));
+       kfree(iwdev->rf);
 +      pr_debug("INIT: Gen2 PF[%d] device remove success\n", PCI_FUNC(cdev_info->pdev->devfn));
  }
  
 -static void irdma_fill_device_info(struct irdma_device *iwdev, struct ice_pf *pf,
 -                                 struct ice_vsi *vsi)
 +static void irdma_fill_device_info(struct irdma_device *iwdev,
 +                                 struct iidc_rdma_core_dev_info *cdev_info)
  {
 +      struct iidc_rdma_priv_dev_info *iidc_priv = cdev_info->iidc_priv;
        struct irdma_pci_f *rf = iwdev->rf;
  
 -      rf->cdev = pf;
 +      rf->sc_dev.hw = &rf->hw;
 +      rf->iwdev = iwdev;
 +      rf->cdev = cdev_info;
 +      rf->hw.hw_addr = iidc_priv->hw_addr;
 +      rf->pcidev = cdev_info->pdev;
 +      rf->hw.device = &rf->pcidev->dev;
 +      rf->pf_id = iidc_priv->pf_id;
        rf->gen_ops.register_qset = irdma_lan_register_qset;
        rf->gen_ops.unregister_qset = irdma_lan_unregister_qset;
 -      rf->hw.hw_addr = pf->hw.hw_addr;
 -      rf->pcidev = pf->pdev;
 -      rf->pf_id = pf->hw.pf_id;
 -      rf->default_vsi.vsi_idx = vsi->vsi_num;
 -      rf->protocol_used = pf->rdma_mode & IIDC_RDMA_PROTOCOL_ROCEV2 ?
 -                          IRDMA_ROCE_PROTOCOL_ONLY : IRDMA_IWARP_PROTOCOL_ONLY;
 +
 +      rf->default_vsi.vsi_idx = iidc_priv->vport_id;
 +      rf->protocol_used =
 +              cdev_info->rdma_protocol == IIDC_RDMA_PROTOCOL_ROCEV2 ?
 +              IRDMA_ROCE_PROTOCOL_ONLY : IRDMA_IWARP_PROTOCOL_ONLY;
        rf->rdma_ver = IRDMA_GEN_2;
        rf->rsrc_profile = IRDMA_HMC_PROFILE_DEFAULT;
        rf->rst_to = IRDMA_RST_TIMEOUT_HZ;
Simple merge
Simple merge
diff --cc mm/page_alloc.c
Simple merge
Simple merge
diff --cc net/ipv4/ipmr.c
Simple merge