public inbox for linux-scsi@vger.kernel.org
 help / color / mirror / Atom feed
* [BK-PATCH] 3w-9xxx: proc interface
@ 2004-07-02 16:08 Ricky Beam
  2004-07-02 18:35 ` Christoph Hellwig
  0 siblings, 1 reply; 4+ messages in thread
From: Ricky Beam @ 2004-07-02 16:08 UTC (permalink / raw)
  To: Adam Radford; +Cc: Linux SCSI List

[-- Attachment #1: Type: TEXT/PLAIN, Size: 220 bytes --]

3dm2 (the currently available one anyway) needs /proc/scsi/3w-9xxx to
discover any controllers.  The current in-kernel driver doesn't contain any
/proc/scsi support.  The attached patch restores the interface.

--Ricky


[-- Attachment #2: Type: TEXT/PLAIN, Size: 4962 bytes --]

This BitKeeper patch contains the following changesets:
1.1411

# User:	jfbeam
# Host:	xactional.com
# Root:	/opt/kernel/src/bk-linux-2.6

# Patch vers:	1.3
# Patch type:	REGULAR

== ChangeSet ==
torvalds@athlon.transmeta.com|ChangeSet|20020205173056|16047|c1d11a41ed024864
jfbeam@xactional.com|ChangeSet|20040702152713|32646
D 1.1411 04/07/02 11:32:05-04:00 jfbeam@xactional.com +1 -0
B torvalds@athlon.transmeta.com|ChangeSet|20020205173056|16047|c1d11a41ed024864
C
c [PATCH] restore 3w-9xxx legacy /proc/scsi interface
c 
c  - 3dm2 depends on the proc interface to discover adapters
K 32774
P ChangeSet
------------------------------------------------

0a0
> aradford@amcc.com[jejb]|drivers/scsi/3w-9xxx.c|20040604003829|14232|181b5ad9bdb5ae05 jfbeam@xactional.com|drivers/scsi/3w-9xxx.c|20040702153155|56598

== drivers/scsi/3w-9xxx.c ==
aradford@amcc.com[jejb]|drivers/scsi/3w-9xxx.c|20040604003829|14232|181b5ad9bdb5ae05
akpm@osdl.org[jejb]|drivers/scsi/3w-9xxx.c|20040604025344|33526
D 1.4 04/07/02 11:31:55-04:00 jfbeam@xactional.com +98 -0
B torvalds@athlon.transmeta.com|ChangeSet|20020205173056|16047|c1d11a41ed024864
C
c [PATCH] restore legacy /proc/scsi interface
K 56598
O -rw-rw-r--
P drivers/scsi/3w-9xxx.c
------------------------------------------------

I117 7
#ifdef CONFIG_SCSI_PROC_FS
/* Support /proc/scsi/3w-9xxx/... :: Necessary for 3dm2 */
static int twa_copy_info(TW_Info *info, char *fmt, ...);
static void twa_copy_mem_info(TW_Info *info, char *data, int len);
static int twa_scsi_proc_info(struct Scsi_Host *shost, char *buffer, char **start, off_t offset, int length, int inout);
#endif /* CONFIG_SCSI_PROC_FS */
\
I1719 87
#ifdef CONFIG_SCSI_PROC_FS
/* This function is called by twa_scsi_proc_info */
static void twa_copy_mem_info(TW_Info *info, char *data, int len)
{
	if (info->position + len > info->length)
		len = info->length - info->position;
\
	if (info->position + len < info->offset) {
		info->position += len;
		return;
	}
	if (info->position < info->offset) {
		data += (info->offset - info->position);
		len  -= (info->offset - info->position);
	}
	if (len > 0) {
		memcpy(info->buffer + info->position, data, len);
		info->position += len;
	}
} /* End twa_copy_mem_info() */
\
/* This function is called by twa_scsi_proc_info */
static int twa_copy_info(TW_Info *info, char *fmt, ...)
{
	va_list args;
	char buf[81];
	int len;
\
	va_start(args, fmt);
	len = vsprintf(buf, fmt, args);
	va_end(args);
	twa_copy_mem_info(info, buf, len);
\
	return len;
} /* End twa_copy_info() */
\
/* This function handles input and output from /proc/scsi/3w-9xxx/x */
static int twa_scsi_proc_info(struct Scsi_Host *shost, char *buffer, char **start, off_t offset, int length, int inout)
{
	TW_Device_Extension *tw_dev = NULL;
	TW_Info info;
	unsigned int i;
	int retval = -EINVAL;
\
	/* Find the correct device extension */
	for (i = 0; i < twa_device_extension_count; i++) 
		if (twa_device_extension_list[i]->host->host_no == shost->host_no)
			tw_dev = twa_device_extension_list[i];
	if (!tw_dev) {
		TW_PRINTK(tw_dev->host, TW_DRIVER, 0x2c, "No device extension for proc operation");
		goto out;
	}
\
	info.buffer = buffer;
	info.length = length;
	info.offset = offset;
	info.position = 0;
\
	if (!inout) {
		/* Read */
		if (start) {
			*start = buffer;
		}
		twa_copy_info(&info, "scsi%d: 3ware 9000 Storage Controller\n", shost->host_no);
		twa_copy_info(&info, "Driver version: %s\n", twa_driver_version);
		twa_copy_info(&info, "Current commands posted:       %4d\n", tw_dev->posted_request_count);
		twa_copy_info(&info, "Max commands posted:           %4d\n", tw_dev->max_posted_request_count);
		twa_copy_info(&info, "Current pending commands:      %4d\n", tw_dev->pending_request_count);
		twa_copy_info(&info, "Max pending commands:          %4d\n", tw_dev->max_pending_request_count);
		twa_copy_info(&info, "Last sgl length:               %4d\n", tw_dev->sgl_entries);
		twa_copy_info(&info, "Max sgl length:                %4d\n", tw_dev->max_sgl_entries);
		twa_copy_info(&info, "Last sector count:             %4d\n", tw_dev->sector_count);
		twa_copy_info(&info, "Max sector count:              %4d\n", tw_dev->max_sector_count);
		twa_copy_info(&info, "SCSI Host Resets:              %4d\n", tw_dev->num_resets);
		twa_copy_info(&info, "SCSI Aborts/Timeouts:          %4d\n", tw_dev->num_aborts);
		twa_copy_info(&info, "AEN's:                         %4d\n", tw_dev->aen_count);
	}
	if (info.position > info.offset) {
		retval = info.position - info.offset;
	} else {
		retval = 0;
	}
out:
	return retval;
} /* End twa_scsi_proc_info() */
#endif /* CONFIG_SCSI_PROC_FS */
\
I1944 4
#ifdef CONFIG_SCSI_PROC_FS
        .proc_name              = "3w-9xxx",
        .proc_info              = twa_scsi_proc_info,
#endif /* CONFIG_SCSI_PROC_FS */

# Patch checksum=43f8b553

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [BK-PATCH] 3w-9xxx: proc interface
  2004-07-02 16:08 Ricky Beam
@ 2004-07-02 18:35 ` Christoph Hellwig
  2004-07-02 18:42   ` Ricky Beam
  0 siblings, 1 reply; 4+ messages in thread
From: Christoph Hellwig @ 2004-07-02 18:35 UTC (permalink / raw)
  To: Ricky Beam; +Cc: Adam Radford, Linux SCSI List

On Fri, Jul 02, 2004 at 12:08:23PM -0400, Ricky Beam wrote:
> 3dm2 (the currently available one anyway) needs /proc/scsi/3w-9xxx to
> discover any controllers.  The current in-kernel driver doesn't contain any
> /proc/scsi support.  The attached patch restores the interface.

I'd rather wait for a new 3dm2 release instead of adding deprecated interfaces.
Adam, any schedule for a new release?

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [BK-PATCH] 3w-9xxx: proc interface
  2004-07-02 18:35 ` Christoph Hellwig
@ 2004-07-02 18:42   ` Ricky Beam
  0 siblings, 0 replies; 4+ messages in thread
From: Ricky Beam @ 2004-07-02 18:42 UTC (permalink / raw)
  To: Christoph Hellwig; +Cc: Adam Radford, Linux SCSI List

On Fri, 2 Jul 2004, Christoph Hellwig wrote:
>On Fri, Jul 02, 2004 at 12:08:23PM -0400, Ricky Beam wrote:
>> 3dm2 (the currently available one anyway) needs /proc/scsi/3w-9xxx to
>> discover any controllers.  The current in-kernel driver doesn't contain any
>> /proc/scsi support.  The attached patch restores the interface.
>
>I'd rather wait for a new 3dm2 release instead of adding deprecated interfaces.
>Adam, any schedule for a new release?

Well, I'm not the only one who cannot monitor/control their array with the
current in-kernel driver.  I don't care if the proc interface makes it
back into the kernel; the systems I assemble with a 9500 will have the
proc interface restored until I have a 3dm2 in hand that doesn't need it.

Having a non-functioning 3dm2 is a major problem in my book. (technically,
not have a firmware update interface in the kernel's driver is also a
concern.)

Locking the door before you have a key to get back in is a bad idea.

--Ricky



^ permalink raw reply	[flat|nested] 4+ messages in thread

* RE: [BK-PATCH] 3w-9xxx: proc interface
@ 2004-07-07 18:27 Adam Radford
  0 siblings, 0 replies; 4+ messages in thread
From: Adam Radford @ 2004-07-07 18:27 UTC (permalink / raw)
  To: Ricky Beam, Christoph Hellwig; +Cc: Linux SCSI List

Rick,

There should be a beta version of 3dm2 & tw_cli that will work with the in-kernel
3w-9xxx driver on the 3ware website sometime this week.  
I'd rather not re-add deprecated interfaces.

-Adam

-----Original Message-----
From: Ricky Beam [mailto:jfbeam@bluetronic.net]
Sent: Friday, July 02, 2004 11:42 AM
To: Christoph Hellwig
Cc: Adam Radford; Linux SCSI List
Subject: Re: [BK-PATCH] 3w-9xxx: proc interface


On Fri, 2 Jul 2004, Christoph Hellwig wrote:
>On Fri, Jul 02, 2004 at 12:08:23PM -0400, Ricky Beam wrote:
>> 3dm2 (the currently available one anyway) needs /proc/scsi/3w-9xxx to
>> discover any controllers.  The current in-kernel driver doesn't contain any
>> /proc/scsi support.  The attached patch restores the interface.
>
>I'd rather wait for a new 3dm2 release instead of adding deprecated interfaces.
>Adam, any schedule for a new release?

Well, I'm not the only one who cannot monitor/control their array with the
current in-kernel driver.  I don't care if the proc interface makes it
back into the kernel; the systems I assemble with a 9500 will have the
proc interface restored until I have a 3dm2 in hand that doesn't need it.

Having a non-functioning 3dm2 is a major problem in my book. (technically,
not have a firmware update interface in the kernel's driver is also a
concern.)

Locking the door before you have a key to get back in is a bad idea.

--Ricky




^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2004-07-07 18:28 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-07-07 18:27 [BK-PATCH] 3w-9xxx: proc interface Adam Radford
  -- strict thread matches above, loose matches on Subject: below --
2004-07-02 16:08 Ricky Beam
2004-07-02 18:35 ` Christoph Hellwig
2004-07-02 18:42   ` Ricky Beam

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox