All of lore.kernel.org
 help / color / mirror / Atom feed
From: Himanshu Madhani <himanshu.madhani@oracle.com>
To: Javed Hasan <jhasan@marvell.com>
Cc: Martin Petersen <martin.petersen@oracle.com>,
	linux-scsi <linux-scsi@vger.kernel.org>,
	"GR-QLogic-Storage-Upstream@marvell.com" 
	<GR-QLogic-Storage-Upstream@marvell.com>
Subject: Re: [PATCH] qedf: Added NULL pointer checks in qedf_update_link_speed().
Date: Wed, 12 May 2021 21:31:05 +0000	[thread overview]
Message-ID: <B932C218-C284-438D-9BE3-7FB60501E73C@oracle.com> (raw)
In-Reply-To: <20210512072533.23618-1-jhasan@marvell.com>



> On May 12, 2021, at 2:25 AM, Javed Hasan <jhasan@marvell.com> wrote:
> 
> Issue :- BUG: unable to handle kernel NULL pointer dereference at 000000000000003c
> On installation of RHEL-8.3.0-20200820.n.0 distro below stack
> was generating on error.
> 
> [   14.042059] Call Trace:
> [   14.042061]  <IRQ>
> [   14.042068]  qedf_link_update+0x144/0x1f0 [qedf]
> [   14.042117]  qed_link_update+0x5c/0x80 [qed]
> [   14.042135]  qed_mcp_handle_link_change+0x2d2/0x410 [qed]
> [   14.042155]  ? qed_set_ptt+0x70/0x80 [qed]
> [   14.042170]  ? qed_set_ptt+0x70/0x80 [qed]
> [   14.042186]  ? qed_rd+0x13/0x40 [qed]
> [   14.042205]  qed_mcp_handle_events+0x437/0x690 [qed]
> [   14.042221]  ? qed_set_ptt+0x70/0x80 [qed]
> [   14.042239]  qed_int_sp_dpc+0x3a6/0x3e0 [qed]
> [   14.042245]  tasklet_action_common.isra.14+0x5a/0x100
> [   14.042250]  __do_softirq+0xe4/0x2f8
> [   14.042253]  irq_exit+0xf7/0x100
> [   14.042255]  do_IRQ+0x7f/0xd0
> [   14.042257]  common_interrupt+0xf/0xf
> [   14.042259]  </IRQ>
> 
> Root cause :- API qedf_link_update() is getting called from QED.
>  but by that time shost_data is not initialised. That is leading NULL pointer dereference
>  when we try to derefference shost_data while updating supported_speeds.
> 
>  fc_host_supported_speeds(lport->host) = lport->link_supported_speeds;
> 
> Expansion of fc_host_supported_speeds.
> #define fc_host_supported_speeds(x)	\
>  (((struct fc_host_attrs *)(x)->shost_data)->supported_speeds)
> 
> Fix :- Added NULL pointer check for shost_data.
> 
> Signed-off-by: Javed Hasan <jhasan@marvell.com>
> 
> diff --git a/drivers/scsi/qedf/qedf_main.c b/drivers/scsi/qedf/qedf_main.c
> index 69f7784233f9..756231151882 100644
> --- a/drivers/scsi/qedf/qedf_main.c
> +++ b/drivers/scsi/qedf/qedf_main.c
> @@ -536,7 +536,9 @@ static void qedf_update_link_speed(struct qedf_ctx *qedf,
> 	if (linkmode_intersects(link->supported_caps, sup_caps))
> 		lport->link_supported_speeds |= FC_PORTSPEED_20GBIT;
> 
> -	fc_host_supported_speeds(lport->host) = lport->link_supported_speeds;
> +	if (lport->host && lport->host->shost_data)
> +		fc_host_supported_speeds(lport->host) =
> +			lport->link_supported_speeds;
> }
> 
> static void qedf_bw_update(void *dev)
> -- 
> 2.18.2
> 

This should be sent to stable with 

Fixes: 61d8658b4a435 ("scsi: qedf: Add QLogic FastLinQ offload FCoE driver framework.”)
Cc: <stable@vger.kernel.org>

With above added, Looks Good. 

Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com>

--
Himanshu Madhani	 Oracle Linux Engineering


  reply	other threads:[~2021-05-12 22:42 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-05-12  7:25 [PATCH] qedf: Added NULL pointer checks in qedf_update_link_speed() Javed Hasan
2021-05-12 21:31 ` Himanshu Madhani [this message]
2021-05-15  3:13 ` Martin K. Petersen
2021-05-15 22:14 ` Martin K. Petersen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=B932C218-C284-438D-9BE3-7FB60501E73C@oracle.com \
    --to=himanshu.madhani@oracle.com \
    --cc=GR-QLogic-Storage-Upstream@marvell.com \
    --cc=jhasan@marvell.com \
    --cc=linux-scsi@vger.kernel.org \
    --cc=martin.petersen@oracle.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.