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

Bug#418757: Debian Etch: Patch: /proc/scsi/aacraid missing



As noted by Marcin Owsiany <porridge@debian.org> last year, with the
default Debian Etch kernel, /proc/scsi/aacraid is missing on the Debian
Etch kernel, even when the AACRAID driver is loaded and operating. 

Amongst other things this prevents using the Dell afacli management tool
to monitor/manage the RAID arrays, since it checks for
/proc/scsi/aacraid and aborts if it is not found.

In the link that Marcin Owsiany provided:

http://lists.us.dell.com/pipermail/linux-poweredge/2007-January/029281.html

is a trivial patch for the aacraid driver which sets the necessary 
elements in the structure which allow the /proc/scsi/aacraid file to
appear.  Apparently originally from some Dell Engineers.

Would it be possible to have this applied to the Debian Etch kernel at
the next point release?  (Etch and a half?)  It's against 2.6.16 
but seems easy enough to sort out for Etch's 2.6.18 kernel.

I've included it below to make it easier for you to get at.

Ewen

-=- cut here -=-
From: Patrick Boyd <Patrick_Boyd at dell.com>, 
      Bill Edwards <Bill_Edwards at dell.com>

The problem that we are having is that on the current version of RedHat
Enterprise Linux 5 (2.6.16 kernel) the Adaptec raid management libraries
(AFALIB) no longer function. We were able to root cause this to the fact
that the /proc/scsi/aacraid directory was missing.

This directory is created if two properties are set in the
scsi_host_template structure: proc_name and proc_info. However, previous
driver version were not setting proc_info and as far as we can tell
this was just being set to uninitialized memory which was allowing the
directory creation to succeed. Apparently compiler or runtime behavior
has changed so that uninitialized entries in this static struct are set
to 0. Our solution is to simply create a function and put the function
pointer into the struct to restore the original behavior under the
new compiler.

Signed-off-by: Patrick Boyd <Patrick_Boyd at dell.com>, Bill Edwards <Bill_Edwards at dell.com>

---

--- linux-2.6.16/drivers/scsi/aacraid/linit.c.orig	2006-08-30 11:53:58.000000000 -0500
+++ linux-2.6.16/drivers/scsi/aacraid/linit.c	2006-08-30 11:55:27.000000000 -0500
@@ -782,10 +782,18 @@ static struct file_operations aac_cfg_fo
 	.open		= aac_cfg_open,
 };
 
+static int aacraid_proc_info(struct Scsi_Host *host, char *buffer, char **start, off_t offset,
+                                int length, int inout) {
+	return 0;
+}
+
+
 static struct scsi_host_template aac_driver_template = {
 	.module				= THIS_MODULE,
 	.name           		= "AAC",
 	.proc_name			= AAC_DRIVERNAME,
+	.proc_info			= aacraid_proc_info,
 	.info           		= aac_info,
 	.ioctl          		= aac_ioctl,
 #ifdef CONFIG_COMPAT
-=- cut here -=-



Reply to: