Loading drivers/scsi/bfa/bfad.c +1 −1 Original line number Diff line number Diff line Loading @@ -33,7 +33,7 @@ #include <fcb/bfa_fcb.h> BFA_TRC_FILE(LDRV, BFAD); static DEFINE_MUTEX(bfad_mutex); DEFINE_MUTEX(bfad_mutex); LIST_HEAD(bfad_list); static int bfad_inst; int bfad_supported_fc4s; Loading drivers/scsi/bfa/bfad_drv.h +1 −0 Original line number Diff line number Diff line Loading @@ -293,5 +293,6 @@ extern struct list_head bfad_list; extern int bfa_lun_queue_depth; extern int bfad_supported_fc4s; extern int bfa_linkup_delay; extern struct mutex bfad_mutex; #endif /* __BFAD_DRV_H__ */ drivers/scsi/bfa/bfad_im.c +9 −4 Original line number Diff line number Diff line Loading @@ -518,7 +518,9 @@ bfad_im_scsi_host_alloc(struct bfad_s *bfad, struct bfad_im_port_s *im_port, { int error = 1; mutex_lock(&bfad_mutex); if (!idr_pre_get(&bfad_im_port_index, GFP_KERNEL)) { mutex_unlock(&bfad_mutex); printk(KERN_WARNING "idr_pre_get failure\n"); goto out; } Loading @@ -526,10 +528,13 @@ bfad_im_scsi_host_alloc(struct bfad_s *bfad, struct bfad_im_port_s *im_port, error = idr_get_new(&bfad_im_port_index, im_port, &im_port->idr_id); if (error) { mutex_unlock(&bfad_mutex); printk(KERN_WARNING "idr_get_new failure\n"); goto out; } mutex_unlock(&bfad_mutex); im_port->shost = bfad_os_scsi_host_alloc(im_port, bfad); if (!im_port->shost) { error = 1; Loading Loading @@ -563,7 +568,9 @@ bfad_im_scsi_host_alloc(struct bfad_s *bfad, struct bfad_im_port_s *im_port, out_fc_rel: scsi_host_put(im_port->shost); out_free_idr: mutex_lock(&bfad_mutex); idr_remove(&bfad_im_port_index, im_port->idr_id); mutex_unlock(&bfad_mutex); out: return error; } Loading @@ -571,8 +578,6 @@ bfad_im_scsi_host_alloc(struct bfad_s *bfad, struct bfad_im_port_s *im_port, void bfad_im_scsi_host_free(struct bfad_s *bfad, struct bfad_im_port_s *im_port) { unsigned long flags; bfa_trc(bfad, bfad->inst_no); bfa_log(bfad->logmod, BFA_LOG_LINUX_SCSI_HOST_FREE, im_port->shost->host_no); Loading @@ -582,9 +587,9 @@ bfad_im_scsi_host_free(struct bfad_s *bfad, struct bfad_im_port_s *im_port) scsi_remove_host(im_port->shost); scsi_host_put(im_port->shost); spin_lock_irqsave(&bfad->bfad_lock, flags); mutex_lock(&bfad_mutex); idr_remove(&bfad_im_port_index, im_port->idr_id); spin_unlock_irqrestore(&bfad->bfad_lock, flags); mutex_unlock(&bfad_mutex); } static void Loading Loading
drivers/scsi/bfa/bfad.c +1 −1 Original line number Diff line number Diff line Loading @@ -33,7 +33,7 @@ #include <fcb/bfa_fcb.h> BFA_TRC_FILE(LDRV, BFAD); static DEFINE_MUTEX(bfad_mutex); DEFINE_MUTEX(bfad_mutex); LIST_HEAD(bfad_list); static int bfad_inst; int bfad_supported_fc4s; Loading
drivers/scsi/bfa/bfad_drv.h +1 −0 Original line number Diff line number Diff line Loading @@ -293,5 +293,6 @@ extern struct list_head bfad_list; extern int bfa_lun_queue_depth; extern int bfad_supported_fc4s; extern int bfa_linkup_delay; extern struct mutex bfad_mutex; #endif /* __BFAD_DRV_H__ */
drivers/scsi/bfa/bfad_im.c +9 −4 Original line number Diff line number Diff line Loading @@ -518,7 +518,9 @@ bfad_im_scsi_host_alloc(struct bfad_s *bfad, struct bfad_im_port_s *im_port, { int error = 1; mutex_lock(&bfad_mutex); if (!idr_pre_get(&bfad_im_port_index, GFP_KERNEL)) { mutex_unlock(&bfad_mutex); printk(KERN_WARNING "idr_pre_get failure\n"); goto out; } Loading @@ -526,10 +528,13 @@ bfad_im_scsi_host_alloc(struct bfad_s *bfad, struct bfad_im_port_s *im_port, error = idr_get_new(&bfad_im_port_index, im_port, &im_port->idr_id); if (error) { mutex_unlock(&bfad_mutex); printk(KERN_WARNING "idr_get_new failure\n"); goto out; } mutex_unlock(&bfad_mutex); im_port->shost = bfad_os_scsi_host_alloc(im_port, bfad); if (!im_port->shost) { error = 1; Loading Loading @@ -563,7 +568,9 @@ bfad_im_scsi_host_alloc(struct bfad_s *bfad, struct bfad_im_port_s *im_port, out_fc_rel: scsi_host_put(im_port->shost); out_free_idr: mutex_lock(&bfad_mutex); idr_remove(&bfad_im_port_index, im_port->idr_id); mutex_unlock(&bfad_mutex); out: return error; } Loading @@ -571,8 +578,6 @@ bfad_im_scsi_host_alloc(struct bfad_s *bfad, struct bfad_im_port_s *im_port, void bfad_im_scsi_host_free(struct bfad_s *bfad, struct bfad_im_port_s *im_port) { unsigned long flags; bfa_trc(bfad, bfad->inst_no); bfa_log(bfad->logmod, BFA_LOG_LINUX_SCSI_HOST_FREE, im_port->shost->host_no); Loading @@ -582,9 +587,9 @@ bfad_im_scsi_host_free(struct bfad_s *bfad, struct bfad_im_port_s *im_port) scsi_remove_host(im_port->shost); scsi_host_put(im_port->shost); spin_lock_irqsave(&bfad->bfad_lock, flags); mutex_lock(&bfad_mutex); idr_remove(&bfad_im_port_index, im_port->idr_id); spin_unlock_irqrestore(&bfad->bfad_lock, flags); mutex_unlock(&bfad_mutex); } static void Loading