[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#650119: fails to boot on HP DL380 g4



Hi Peter,

Peter Verschoor wrote:

>                                             I applied the patch to my
> debian 3.1 kernel tree, built and installed a new kernel and it came
> up just fine.  Still testing to check everything else.

Thanks again for this.  Now the fix has been applied in Debian and in
upstream v3.2, and the bug is indeed closed, but I would like to see
this fixed in the upstream stable/longterm kernels.  (Especially the
3.0.y longterm tree, since that will help share the maintenance burden
from 3.2.y when tracking down cciss bugs.)

Could you test the following patch[*] against Linux 3.0.16 from
kernel.org?  Instructions for doing so are at [1].

If it works, I'll propose the patch to Greg for the 3.0.y longterm and
3.1.y stable branches, so others using the kernel can benefit from the
fix, too.

Sincerely,
Jonathan

[1] http://kernel-handbook.alioth.debian.org/ch-common-tasks.html#s-kernel-org-package
[*]

-- >8 --
From: "Stephen M. Cameron" <scameron@beardog.cce.hp.com>
Date: Mon, 28 Nov 2011 20:12:05 +0100
Subject: cciss: Add IRQF_SHARED back in for the non-MSI(X) interrupt handler

commit 6225da481597ebff09454c785fe0afc7f5fdbb77 upstream.

IRQF_SHARED is required for older controllers that don't support MSI(X)
and which may end up sharing an interrupt.

[jn: The upstream commit also removes the deprecated IRQF_DISABLED
 flag in the MSI(X) case, which is a noop so for stable we skip it.]

Signed-off-by: Stephen M. Cameron <scameron@beardog.cce.hp.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
---
 drivers/block/cciss.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/block/cciss.c b/drivers/block/cciss.c
index c2f9b3e3dec7..4a50a343c053 100644
--- a/drivers/block/cciss.c
+++ b/drivers/block/cciss.c
@@ -4860,7 +4860,7 @@ static int cciss_request_irq(ctlr_info_t *h,
 	}
 
 	if (!request_irq(h->intr[PERF_MODE_INT], intxhandler,
-			IRQF_DISABLED, h->devname, h))
+			IRQF_SHARED, h->devname, h))
 		return 0;
 	dev_err(&h->pdev->dev, "Unable to get irq %d for %s\n",
 		h->intr[PERF_MODE_INT], h->devname);
-- 
1.7.8.3




Reply to: