[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <E5313AF6F2BFD14293E5FD0F94750F86A82D66F782@HQ1-EXCH01.corp.brocade.com>
Date: Tue, 28 Jun 2011 16:32:58 -0700
From: Rasesh Mody <rmody@...cade.com>
To: Shyam Iyer <shyam.iyer.t@...il.com>,
"netdev@...r.kernel.org" <netdev@...r.kernel.org>
CC: Debashis Dutt <ddutt@...cade.COM>, Jing Huang <huangj@...cade.COM>,
"davem@...emloft.net" <davem@...emloft.net>,
Shyam Iyer <shyam_iyer@...l.com>
Subject: RE: [PATCH] [v3][net][bna] Fix call trace when interrupts are
disabled while sleeping function kzalloc is called
>From: Shyam Iyer [mailto:shyam.iyer.t@...il.com]
>Sent: Tuesday, June 28, 2011 11:58 AM
>
>request_threaded irq will call kzalloc that can sleep. Initializing the
>flags variable outside of spin_lock_irqsave/restore in
>bnad_mbox_irq_alloc will avoid call traces like below.
>
>@@ -1125,18 +1125,17 @@ bnad_mbox_irq_alloc(struct bnad *bnad,
> if (bnad->cfg_flags & BNAD_CF_MSIX) {
> irq_handler = (irq_handler_t)bnad_msix_mbox_handler;
> irq = bnad->msix_table[bnad->msix_num - 1].vector;
>- flags = 0;
> intr_info->intr_type = BNA_INTR_T_MSIX;
> intr_info->idl[0].vector = bnad->msix_num - 1;
> } else {
> irq_handler = (irq_handler_t)bnad_isr;
> irq = bnad->pcidev->irq;
>- flags = IRQF_SHARED;
>+ irq_flags = IRQF_SHARED;
> intr_info->intr_type = BNA_INTR_T_INTX;
> /* intr_info->idl.vector = 0 ? */
> }
> spin_unlock_irqrestore(&bnad->bna_lock, flags);
>-
>+ flags = irq_flags;
> sprintf(bnad->mbox_irq_name, "%s", BNAD_NAME);
>
> /*
Patch looks fine.
Acked-by: Rasesh Mody <rmody@...cade.com>
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists