> -----Original Message-----
> From: Zhouyang Jia <jiazhouyan...@gmail.com>
> Sent: Tuesday, June 12, 2018 10:18 AM
> Cc: Zhouyang Jia <jiazhouyan...@gmail.com>; Dept-Eng QLogic Storage
> Upstream <qlogic-storage-upstr...@cavium.com>; James E.J. Bottomley
> <j...@linux.vnet.ibm.com>; Martin K. Petersen <martin.peter...@oracle.com>;
> linux-s...@vger.kernel.org; linux-kernel@vger.kernel.org
> Subject: [PATCH] scsi: qla4xxx: add error handling for try_module_get
> 
> When try_module_get fails, the lack of error-handling code may cause
> unexpected results.
> 
> This patch adds error-handling code after calling try_module_get.
> 
> Signed-off-by: Zhouyang Jia <jiazhouyan...@gmail.com>
> ---
>  drivers/scsi/qla4xxx/ql4_os.c | 9 +++++++--
>  1 file changed, 7 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/scsi/qla4xxx/ql4_os.c b/drivers/scsi/qla4xxx/ql4_os.c 
> index
> 0e13349..6b677ab 100644
> --- a/drivers/scsi/qla4xxx/ql4_os.c
> +++ b/drivers/scsi/qla4xxx/ql4_os.c
> @@ -7687,7 +7687,10 @@ static int qla4xxx_sysfs_ddb_logout_sid(struct
> iscsi_cls_session *cls_sess)
>        * to be seamless without actually destroying the
>        * session
>        **/
> -     try_module_get(qla4xxx_iscsi_transport.owner);
> +     if (!try_module_get(qla4xxx_iscsi_transport.owner))
> +             ql4_printk(KERN_WARNING, ha,
> +                     "%s: cannot get module.\n", __func__);
> +
>       iscsi_destroy_endpoint(ddb_entry->conn->ep);
> 
>       spin_lock_irqsave(&ha->hardware_lock, flags); @@ -8970,7 +8973,9
> @@ static void qla4xxx_destroy_fw_ddb_session(struct scsi_qla_host *ha)
>                        * to be seamless without actually destroying the
>                        * session
>                        **/
> -                     try_module_get(qla4xxx_iscsi_transport.owner);
> +                     if (!try_module_get(qla4xxx_iscsi_transport.owner))
> +                             ql4_printk(KERN_WARNING, ha,
> +                                     "%s: cannot get module.\n",
> __func__);
>                       iscsi_destroy_endpoint(ddb_entry->conn->ep);
>                       qla4xxx_free_ddb(ha, ddb_entry);
>                       iscsi_session_teardown(ddb_entry->sess);
> --
> 2.7.4

Thanks,

Acked-by: Manish Rangankar <manish.rangan...@cavium.com>

Reply via email to