@@ -7405,6 +7405,20 @@ static void bnxt_hwrm_rx_agg_ring_free(struct bnxt *bp,
7405
7405
bp -> grp_info [grp_idx ].agg_fw_ring_id = INVALID_HW_RING_ID ;
7406
7406
}
7407
7407
7408
+ static void bnxt_hwrm_cp_ring_free (struct bnxt * bp ,
7409
+ struct bnxt_cp_ring_info * cpr )
7410
+ {
7411
+ struct bnxt_ring_struct * ring ;
7412
+
7413
+ ring = & cpr -> cp_ring_struct ;
7414
+ if (ring -> fw_ring_id == INVALID_HW_RING_ID )
7415
+ return ;
7416
+
7417
+ hwrm_ring_free_send_msg (bp , ring , RING_FREE_REQ_RING_TYPE_L2_CMPL ,
7418
+ INVALID_HW_RING_ID );
7419
+ ring -> fw_ring_id = INVALID_HW_RING_ID ;
7420
+ }
7421
+
7408
7422
static void bnxt_hwrm_ring_free (struct bnxt * bp , bool close_path )
7409
7423
{
7410
7424
u32 type ;
@@ -7450,17 +7464,9 @@ static void bnxt_hwrm_ring_free(struct bnxt *bp, bool close_path)
7450
7464
struct bnxt_ring_struct * ring ;
7451
7465
int j ;
7452
7466
7453
- for (j = 0 ; j < cpr -> cp_ring_count && cpr -> cp_ring_arr ; j ++ ) {
7454
- struct bnxt_cp_ring_info * cpr2 = & cpr -> cp_ring_arr [j ];
7467
+ for (j = 0 ; j < cpr -> cp_ring_count && cpr -> cp_ring_arr ; j ++ )
7468
+ bnxt_hwrm_cp_ring_free ( bp , & cpr -> cp_ring_arr [j ]) ;
7455
7469
7456
- ring = & cpr2 -> cp_ring_struct ;
7457
- if (ring -> fw_ring_id == INVALID_HW_RING_ID )
7458
- continue ;
7459
- hwrm_ring_free_send_msg (bp , ring ,
7460
- RING_FREE_REQ_RING_TYPE_L2_CMPL ,
7461
- INVALID_HW_RING_ID );
7462
- ring -> fw_ring_id = INVALID_HW_RING_ID ;
7463
- }
7464
7470
ring = & cpr -> cp_ring_struct ;
7465
7471
if (ring -> fw_ring_id != INVALID_HW_RING_ID ) {
7466
7472
hwrm_ring_free_send_msg (bp , ring , type ,
0 commit comments