[SCSI] lpfc 8.3.42: Fixed using unsafe linked list macro for walking and deleting linked list
Signed-off-by: James Smart <james.smart@emulex.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
This commit is contained in:
parent
94cd65ddf4
commit
9a803a7449
@ -1249,7 +1249,7 @@ lpfc_bsg_hba_get_event(struct fc_bsg_job *job)
|
|||||||
struct lpfc_hba *phba = vport->phba;
|
struct lpfc_hba *phba = vport->phba;
|
||||||
struct get_ct_event *event_req;
|
struct get_ct_event *event_req;
|
||||||
struct get_ct_event_reply *event_reply;
|
struct get_ct_event_reply *event_reply;
|
||||||
struct lpfc_bsg_event *evt;
|
struct lpfc_bsg_event *evt, *evt_next;
|
||||||
struct event_data *evt_dat = NULL;
|
struct event_data *evt_dat = NULL;
|
||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
uint32_t rc = 0;
|
uint32_t rc = 0;
|
||||||
@ -1269,7 +1269,7 @@ lpfc_bsg_hba_get_event(struct fc_bsg_job *job)
|
|||||||
event_reply = (struct get_ct_event_reply *)
|
event_reply = (struct get_ct_event_reply *)
|
||||||
job->reply->reply_data.vendor_reply.vendor_rsp;
|
job->reply->reply_data.vendor_reply.vendor_rsp;
|
||||||
spin_lock_irqsave(&phba->ct_ev_lock, flags);
|
spin_lock_irqsave(&phba->ct_ev_lock, flags);
|
||||||
list_for_each_entry(evt, &phba->ct_ev_waiters, node) {
|
list_for_each_entry_safe(evt, evt_next, &phba->ct_ev_waiters, node) {
|
||||||
if (evt->reg_id == event_req->ev_reg_id) {
|
if (evt->reg_id == event_req->ev_reg_id) {
|
||||||
if (list_empty(&evt->events_to_get))
|
if (list_empty(&evt->events_to_get))
|
||||||
break;
|
break;
|
||||||
|
@ -15808,7 +15808,7 @@ lpfc_sli4_fcf_rr_index_set(struct lpfc_hba *phba, uint16_t fcf_index)
|
|||||||
void
|
void
|
||||||
lpfc_sli4_fcf_rr_index_clear(struct lpfc_hba *phba, uint16_t fcf_index)
|
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) {
|
if (fcf_index >= LPFC_SLI4_FCF_TBL_INDX_MAX) {
|
||||||
lpfc_printf_log(phba, KERN_ERR, LOG_FIP,
|
lpfc_printf_log(phba, KERN_ERR, LOG_FIP,
|
||||||
"2762 FCF (x%x) reached driver's book "
|
"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 */
|
/* Clear the eligible FCF record index bmask */
|
||||||
spin_lock_irq(&phba->hbalock);
|
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) {
|
if (fcf_pri->fcf_rec.fcf_index == fcf_index) {
|
||||||
list_del_init(&fcf_pri->list);
|
list_del_init(&fcf_pri->list);
|
||||||
break;
|
break;
|
||||||
|
Loading…
Reference in New Issue
Block a user