@@ -2527,34 +2527,6 @@ int ice_schedule_reset(struct ice_pf *pf, enum ice_reset_req reset)
25272527 return 0 ;
25282528}
25292529
2530- /**
2531- * ice_irq_affinity_notify - Callback for affinity changes
2532- * @notify: context as to what irq was changed
2533- * @mask: the new affinity mask
2534- *
2535- * This is a callback function used by the irq_set_affinity_notifier function
2536- * so that we may register to receive changes to the irq affinity masks.
2537- */
2538- static void
2539- ice_irq_affinity_notify (struct irq_affinity_notify * notify ,
2540- const cpumask_t * mask )
2541- {
2542- struct ice_q_vector * q_vector =
2543- container_of (notify , struct ice_q_vector , affinity_notify );
2544-
2545- cpumask_copy (& q_vector -> affinity_mask , mask );
2546- }
2547-
2548- /**
2549- * ice_irq_affinity_release - Callback for affinity notifier release
2550- * @ref: internal core kernel usage
2551- *
2552- * This is a callback function used by the irq_set_affinity_notifier function
2553- * to inform the current notification subscriber that they will no longer
2554- * receive notifications.
2555- */
2556- static void ice_irq_affinity_release (struct kref __always_unused * ref ) {}
2557-
25582530/**
25592531 * ice_vsi_ena_irq - Enable IRQ for the given VSI
25602532 * @vsi: the VSI being configured
@@ -2618,19 +2590,6 @@ static int ice_vsi_req_irq_msix(struct ice_vsi *vsi, char *basename)
26182590 err );
26192591 goto free_q_irqs ;
26202592 }
2621-
2622- /* register for affinity change notifications */
2623- if (!IS_ENABLED (CONFIG_RFS_ACCEL )) {
2624- struct irq_affinity_notify * affinity_notify ;
2625-
2626- affinity_notify = & q_vector -> affinity_notify ;
2627- affinity_notify -> notify = ice_irq_affinity_notify ;
2628- affinity_notify -> release = ice_irq_affinity_release ;
2629- irq_set_affinity_notifier (irq_num , affinity_notify );
2630- }
2631-
2632- /* assign the mask for this irq */
2633- irq_update_affinity_hint (irq_num , & q_vector -> affinity_mask );
26342593 }
26352594
26362595 err = ice_set_cpu_rx_rmap (vsi );
@@ -2646,9 +2605,6 @@ static int ice_vsi_req_irq_msix(struct ice_vsi *vsi, char *basename)
26462605free_q_irqs :
26472606 while (vector -- ) {
26482607 irq_num = vsi -> q_vectors [vector ]-> irq .virq ;
2649- if (!IS_ENABLED (CONFIG_RFS_ACCEL ))
2650- irq_set_affinity_notifier (irq_num , NULL );
2651- irq_update_affinity_hint (irq_num , NULL );
26522608 devm_free_irq (dev , irq_num , & vsi -> q_vectors [vector ]);
26532609 }
26542610 return err ;
@@ -3675,6 +3631,9 @@ void ice_set_netdev_features(struct net_device *netdev)
36753631 */
36763632 netdev -> hw_features |= NETIF_F_RXFCS ;
36773633
3634+ /* Allow core to manage IRQs affinity */
3635+ netif_set_affinity_auto (netdev );
3636+
36783637 netif_set_tso_max_size (netdev , ICE_MAX_TSO_SIZE );
36793638}
36803639
0 commit comments