|
@@ -15808,7 +15808,7 @@ lpfc_sli4_fcf_rr_index_set(struct lpfc_hba *phba, uint16_t fcf_index)
|
|
|
void
|
|
|
lpfc_sli4_fcf_rr_index_clear(struct lpfc_hba *phba, uint16_t fcf_index)
|
|
|
{
|
|
|
- struct lpfc_fcf_pri *fcf_pri;
|
|
|
+ struct lpfc_fcf_pri *fcf_pri, *fcf_pri_next;
|
|
|
if (fcf_index >= LPFC_SLI4_FCF_TBL_INDX_MAX) {
|
|
|
lpfc_printf_log(phba, KERN_ERR, LOG_FIP,
|
|
|
"2762 FCF (x%x) reached driver's book "
|
|
@@ -15818,7 +15818,8 @@ lpfc_sli4_fcf_rr_index_clear(struct lpfc_hba *phba, uint16_t fcf_index)
|
|
|
}
|
|
|
/* Clear the eligible FCF record index bmask */
|
|
|
spin_lock_irq(&phba->hbalock);
|
|
|
- list_for_each_entry(fcf_pri, &phba->fcf.fcf_pri_list, list) {
|
|
|
+ list_for_each_entry_safe(fcf_pri, fcf_pri_next, &phba->fcf.fcf_pri_list,
|
|
|
+ list) {
|
|
|
if (fcf_pri->fcf_rec.fcf_index == fcf_index) {
|
|
|
list_del_init(&fcf_pri->list);
|
|
|
break;
|