Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753866Ab2ECLiU (ORCPT ); Thu, 3 May 2012 07:38:20 -0400 Received: from ch1ehsobe001.messaging.microsoft.com ([216.32.181.181]:4153 "EHLO ch1outboundpool.messaging.microsoft.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753292Ab2ECLiO convert rfc822-to-8bit (ORCPT ); Thu, 3 May 2012 07:38:14 -0400 X-SpamScore: -9 X-BigFish: VPS-9(zz1432N98dK1447Izz1202hzz8275bhz2ei2a8h668h839h944h) X-Forefront-Antispam-Report: CIP:198.70.193.64;KIP:(null);UIP:(null);IPV:NLI;H:avexcashub1.qlogic.com;RD:avexcashub2.qlogic.com;EFVD:NLI Date: Thu, 3 May 2012 07:38:06 -0400 From: Chad Dupuis To: Jerry Hoemann CC: "JBottomley@parallels.com" , Andrew Vasquez , Dept-Eng Linux Driver , "linux-scsi@vger.kernel.org" , linux-kernel Subject: Re: [PATCH] [SCSI] qla2xxx: qla2x00_probe_one kernel panic. In-Reply-To: <1335975445-14595-1-git-send-email-jerry.hoemann@hp.com> Message-ID: References: <1335975445-14595-1-git-send-email-jerry.hoemann@hp.com> User-Agent: Alpine 2.00 (WNT 1167 2008-08-23) X-X-Sender: cdupuis@qlm.qlogic.com MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII"; format=flowed Content-Transfer-Encoding: 8BIT X-OriginatorOrg: qlogic.com Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2495 Lines: 69 On Wed, 2 May 2012, Jerry Hoemann wrote: > When qla2x00_probe_one fails, its back-out logic tries to free up > resources already allocated. > > When qla2x00_probe_one fails at the steps for qla2x00_request_irqs > or qla2x00_alloc_queues, it will call qla2x00_free_device. This > path eventually calls qla2x00_free_irqs which accesses ha->rsp_q_map. > However, the rsp_q_map pointer hasn't been initialized yet. > > This causes a "NULL pointer dereference" panic. > > Signed-off-by: Jerry Hoemann > --- > drivers/scsi/qla2xxx/qla_os.c | 9 ++------- > 1 files changed, 2 insertions(+), 7 deletions(-) > > diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c > index a2f9992..7aeb5aa 100644 > --- a/drivers/scsi/qla2xxx/qla_os.c > +++ b/drivers/scsi/qla2xxx/qla_os.c > @@ -2420,7 +2420,7 @@ qla2x00_probe_one(struct pci_dev *pdev, const struct pci_device_id *id) > /* Set up the irqs */ > ret = qla2x00_request_irqs(ha, rsp); > if (ret) > - goto probe_init_failed; > + goto probe_hw_failed; > > pci_save_state(pdev); > > @@ -2429,7 +2429,7 @@ que_init: > if (!qla2x00_alloc_queues(ha)) { > ql_log(ql_log_fatal, base_vha, 0x003d, > "Failed to allocate memory for queue pointers.. aborting.\n"); > - goto probe_init_failed; > + goto probe_hw_failed; > } > > ha->rsp_q_map[0] = rsp; > @@ -2579,11 +2579,6 @@ skip_dpc: > > return 0; > > -probe_init_failed: > - qla2x00_free_req_que(ha, req); > - qla2x00_free_rsp_que(ha, rsp); > - ha->max_req_queues = ha->max_rsp_queues = 0; > - > probe_failed: > if (base_vha->timer_active) > qla2x00_stop_timer(base_vha); > Hi Jerry, Thanks for the patch. We'll be sending a patch that fixes this issue soon to the list. --Chad This message and any attached documents contain information from QLogic Corporation or its wholly-owned subsidiaries that may be confidential. If you are not the intended recipient, you may not read, copy, distribute, or use this information. If you have received this transmission in error, please notify the sender immediately by reply e-mail and then delete this message. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/