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

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



On Wed, Jun 11, 2008 at 04:28:49PM +1200, Ewen McNeill wrote:
> 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.

Thanks Ewen. The first step in getting it into Debian would be to make
sure it gets upstream. Otherwise, adding it to etch means we either
need to maintain the out of tree patch for future releases or drop it
and cause a feature regression. Once its upstream it will naturally
end up in the queue for a future Debian release and we can consider
backporting it to current stable.

> 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 -=-
> 
> 
> 

-- 
dann frazier




Reply to: