Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge branch 'intel-wired-lan-driver-updates-2024-05-23-ice-idpf'

Jacob Keller says:

====================
Intel Wired LAN Driver Updates 2024-05-23 (ice, idpf)

This series contains two fixes which finished up testing.

First, Alexander fixes an issue in idpf caused by enabling NAPI and
interrupts prior to actually allocating the Rx buffers.

Second, Jacob fixes the ice driver VSI VLAN counting logic to ensure that
addition and deletion of VLANs properly manages the total VSI count.
====================

Link: https://lore.kernel.org/r/20240523-net-2024-05-23-intel-net-fixes-v1-0-17a923e0bb5f@intel.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>

+15 -10
+6 -5
drivers/net/ethernet/intel/ice/ice_vsi_vlan_lib.c
··· 45 45 return -EINVAL; 46 46 47 47 err = ice_fltr_add_vlan(vsi, vlan); 48 - if (err && err != -EEXIST) { 48 + if (!err) 49 + vsi->num_vlan++; 50 + else if (err == -EEXIST) 51 + err = 0; 52 + else 49 53 dev_err(ice_pf_to_dev(vsi->back), "Failure Adding VLAN %d on VSI %i, status %d\n", 50 54 vlan->vid, vsi->vsi_num, err); 51 - return err; 52 - } 53 55 54 - vsi->num_vlan++; 55 - return 0; 56 + return err; 56 57 } 57 58 58 59 /**
+1
drivers/net/ethernet/intel/idpf/idpf_lib.c
··· 1394 1394 } 1395 1395 1396 1396 idpf_rx_init_buf_tail(vport); 1397 + idpf_vport_intr_ena(vport); 1397 1398 1398 1399 err = idpf_send_config_queues_msg(vport); 1399 1400 if (err) {
+7 -5
drivers/net/ethernet/intel/idpf/idpf_txrx.c
··· 3746 3746 */ 3747 3747 void idpf_vport_intr_deinit(struct idpf_vport *vport) 3748 3748 { 3749 + idpf_vport_intr_dis_irq_all(vport); 3749 3750 idpf_vport_intr_napi_dis_all(vport); 3750 3751 idpf_vport_intr_napi_del_all(vport); 3751 - idpf_vport_intr_dis_irq_all(vport); 3752 3752 idpf_vport_intr_rel_irq(vport); 3753 3753 } 3754 3754 ··· 4179 4179 4180 4180 idpf_vport_intr_map_vector_to_qs(vport); 4181 4181 idpf_vport_intr_napi_add_all(vport); 4182 - idpf_vport_intr_napi_ena_all(vport); 4183 4182 4184 4183 err = vport->adapter->dev_ops.reg_ops.intr_reg_init(vport); 4185 4184 if (err) ··· 4192 4193 if (err) 4193 4194 goto unroll_vectors_alloc; 4194 4195 4195 - idpf_vport_intr_ena_irq_all(vport); 4196 - 4197 4196 return 0; 4198 4197 4199 4198 unroll_vectors_alloc: 4200 - idpf_vport_intr_napi_dis_all(vport); 4201 4199 idpf_vport_intr_napi_del_all(vport); 4202 4200 4203 4201 return err; 4202 + } 4203 + 4204 + void idpf_vport_intr_ena(struct idpf_vport *vport) 4205 + { 4206 + idpf_vport_intr_napi_ena_all(vport); 4207 + idpf_vport_intr_ena_irq_all(vport); 4204 4208 } 4205 4209 4206 4210 /**
+1
drivers/net/ethernet/intel/idpf/idpf_txrx.h
··· 990 990 void idpf_vport_intr_update_itr_ena_irq(struct idpf_q_vector *q_vector); 991 991 void idpf_vport_intr_deinit(struct idpf_vport *vport); 992 992 int idpf_vport_intr_init(struct idpf_vport *vport); 993 + void idpf_vport_intr_ena(struct idpf_vport *vport); 993 994 enum pkt_hash_types idpf_ptype_to_htype(const struct idpf_rx_ptype_decoded *decoded); 994 995 int idpf_config_rss(struct idpf_vport *vport); 995 996 int idpf_init_rss(struct idpf_vport *vport);