Bug#280330: Kernel 2.6.8 - mod DAC960 crashes
reassign #280330 kernel-source-2.6.8
thanks
On Mon, Nov 08, 2004 at 07:57:54PM +0100, Gunnar von Boehn wrote:
> Package: kernel-image
> Version: 2.6.8-powerpc
>
> Hello,
>
> I run Kernel 2.6.8 on powerpc. (On a Pegasos to be precise. :-) )
>
> I've tried out a SCSI Raid-controller.
> A Mylex AcceleRaid 150 (960 PRL)
>
> Unfortunately when loading the driver DAC960 (version 2.5.47) Linux
> freezes.
> When pressing [power] I can see a Kernel panic.
>
> What is the best way to proceed ?
Hi thanks for the bug report.
There seems to be scant few changes to the DAC960 of late so I had
no luck finding a fix lying around for this. I did notice one minor
patch to the DAC960, but it seems unlikely that it would resolve
your problem because it just addresses a failure case when
memory allocation fails (I think). I attached it in any case.
Is there any chance that you could see if the problem is reproduced
on 2.6.9? I believe there are popwerpc packages on d.o.
--
Horms
# origin: davej (BitKeeper)
# cset: 1.1832.63.4 (2.6) key=4137928dGJs4GSBlEz2kyDRU_iLDtA
# inclusion: upstream
# descrition: [PATCH] Clean up failure path in DAC960
# revision date: Tue, 09 Nov 2004 15:03:49 +0900
#
# rset: ChangeSet|1.1832.63.3..1.1832.63.4
# rset: drivers/block/DAC960.c|1.72..1.73
#
# This is a BitKeeper generated diff -Nru style patch.
#
# ChangeSet
# 2004/09/02 14:37:17-07:00 davej@redhat.com
# [PATCH] Clean up failure path in DAC960
#
# 1. If the ScatterGatherPool allocation fails, its pointless
# trying to allocate a RequestSensePool.
# 2. Free up the ScatterGatherPool if the RequestSensePool allocation fails.
#
# Spotted with the source checker from Coverity.com.
#
# Signed-off-by: Dave Jones <davej@redhat.com>
# Signed-off-by: Linus Torvalds <torvalds@osdl.org>
#
# drivers/block/DAC960.c
# 2004/06/07 03:07:03-07:00 davej@redhat.com +6 -1
# Clean up failure path in DAC960
#
diff -Nru a/drivers/block/DAC960.c b/drivers/block/DAC960.c
--- a/drivers/block/DAC960.c 2004-11-09 15:03:49 +09:00
+++ b/drivers/block/DAC960.c 2004-11-09 15:03:49 +09:00
@@ -288,12 +288,17 @@
Controller->PCIDevice,
DAC960_V2_ScatterGatherLimit * sizeof(DAC960_V2_ScatterGatherSegment_T),
sizeof(DAC960_V2_ScatterGatherSegment_T), 0);
+ if (ScatterGatherPool == NULL)
+ return DAC960_Failure(Controller,
+ "AUXILIARY STRUCTURE CREATION (SG)");
RequestSensePool = pci_pool_create("DAC960_V2_RequestSense",
Controller->PCIDevice, sizeof(DAC960_SCSI_RequestSense_T),
sizeof(int), 0);
- if (ScatterGatherPool == NULL || RequestSensePool == NULL)
+ if (RequestSensePool == NULL) {
+ pci_pool_destroy(ScatterGatherPool);
return DAC960_Failure(Controller,
"AUXILIARY STRUCTURE CREATION (SG)");
+ }
Controller->ScatterGatherPool = ScatterGatherPool;
Controller->V2.RequestSensePool = RequestSensePool;
}
Reply to: