Re: [PATCH 3/3] PCI, scsi, ahci: Unify usages of 0x1b4b vendor ID to use PCI_VENDOR_ID_MARVELL_EXT

2013-04-08 Thread Jeff Garzik

On 04/04/2013 02:23 PM, Bjorn Helgaas wrote:

On Wed, Mar 20, 2013 at 10:35 PM, Myron Stowe myron.st...@redhat.com wrote:

With the 0x1b4b vendor ID #define in place, convert hard-coded ID values.
Also, unify the previous SCSI specific use of this vendor ID to the new
macro.

Signed-off-by: Myron Stowe myron.st...@redhat.com
---

  drivers/ata/ahci.c   |   10 +-
  drivers/scsi/mvsas/mv_init.c |6 +++---
  drivers/scsi/mvumi.c |4 ++--
  drivers/scsi/mvumi.h |1 -
  4 files changed, 10 insertions(+), 11 deletions(-)


Jeff  James, if you don't object to these, I can push them through my
PCI tree along with the corresponding pci_ids.h addition.


ACK



--
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v14 1/3] scsi: sr: support runtime pm

2013-01-25 Thread Jeff Garzik

On 01/23/2013 02:09 AM, Aaron Lu wrote:

This patch adds runtime pm support for sr.

It did this by increasing the runtime usage_count of the device when
its block device is accessed. And decreasing the runtime usage_count
of the device when the access is done.

If there is media inside, runtime suspend is not allowed as we don't
always know if the ODD is being used or not.

The idea is discussed here:
http://thread.gmane.org/gmane.linux.acpi.devel/55243/focus=52703
and the restriction to check media inside is discussed here:
http://thread.gmane.org/gmane.linux.ide/53665/focus=58836

Signed-off-by: Aaron Lu aaron...@intel.com
Acked-by: Alan Stern st...@rowland.harvard.edu
Acked-by: James Bottomley james.bottom...@hansenpartnership.com
---
  drivers/scsi/sr.c | 42 +++---
  1 file changed, 39 insertions(+), 3 deletions(-)


applied 1-3



--
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v13 2/9] libata: identify and init ZPODD devices

2013-01-21 Thread Jeff Garzik

On 01/15/2013 04:20 AM, Aaron Lu wrote:

The ODD can be enabled for ZPODD if the following three conditions are
satisfied:
1 The ODD supports device attention;
2 The platform can runtime power off the ODD through ACPI;
3 The ODD is either slot type or drawer type.
For such ODDs, zpodd_init is called and a new structure is allocated for
it to store ZPODD related stuffs.

And the zpodd_dev_enabled function is used to test if ZPODD is currently
enabled for this ODD.

A new config CONFIG_SATA_ZPODD is added to selectively build ZPODD code.

Signed-off-by: Aaron Lu aaron...@intel.com
Acked-by: Tejun Heo t...@kernel.org


How possible is it to apply patches 2-6 right now?  It appears possible 
according to my read, but I've not tested this guess.


Jeff





--
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v13 8/9] libata: do not suspend port if normal ODD is attached

2013-01-21 Thread Jeff Garzik

On 01/15/2013 04:21 AM, Aaron Lu wrote:

For ODDs, the upper layer will poll for media change every few
seconds, which will make it enter and leave suspend state very
often. And as each suspend will also cause a hard/soft reset,
the gain of runtime suspend is very little while the ODD may
malfunction after constantly being reset. So the idle callback
here will not proceed to suspend if a non-ZPODD capable ODD is
attached to the port.

Signed-off-by: Aaron Lu aaron...@intel.com
Acked-by: Tejun Heo t...@kernel.org
---
  drivers/ata/libata-core.c | 19 +++
  1 file changed, 19 insertions(+)


applied patches #2-6 and #8


--
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v12 7/9] libata: scsi: no poll when ODD is powered off

2013-01-14 Thread Jeff Garzik

On 01/11/2013 01:44 PM, Tejun Heo wrote:

Hello,

On Fri, Jan 11, 2013 at 11:16:26AM +0800, Aaron Lu wrote:

OK, will make it atomic in next version, thanks for the advice.

Perhaps I can add two scsi helper functions in scsi_lib.c like:

void sdev_disable_disk_events(struct scsi_device *sdev)
{
atomic_inc(sdev-disk_events_disable_depth);
}

void sdev_enable_disk_events(struct scsi_device *sdev)
{
if (WARN_ON_ONCE(atomic_read(sdev-disk_events_disable_depth) = 0))
return;
atomic_dec(sdev-disk_events_disable_depth);
}

And call them in ATA layer. Do you like this?


Sounds good to me.  James, how does the series look to you?


Indeed.  Want James' Acked-by for patch #1.

I think it's ready.  It can go into libata-dev.git #upstream, and be 
reverted prior to Linus push if James NAKs.


Jeff



--
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v9 06/10] ata: zpodd: check zero power ready status

2012-12-03 Thread Jeff Garzik

On 12/03/2012 11:23 AM, Tejun Heo wrote:

Hello, James.

On Mon, Dec 03, 2012 at 08:25:43AM +, James Bottomley wrote:

diff --git a/include/scsi/scsi_device.h b/include/scsi/scsi_device.h
index e65c62e..1756151 100644
--- a/include/scsi/scsi_device.h
+++ b/include/scsi/scsi_device.h
@@ -160,6 +160,7 @@ struct scsi_device {
unsigned can_power_off:1; /* Device supports runtime power off */
unsigned wce_default_on:1;  /* Cache is ON by default */
unsigned no_dif:1;  /* T10 PI (DIF) should be disabled */
+   unsigned event_driven:1; /* No need to poll the device */

DECLARE_BITMAP(supported_events, SDEV_EVT_MAXBITS); /* supported events 
*/
struct list_head event_list;/* asserted events */


Yes, but if we can get away with doing that, it should be in genhd
because it's completely generic.

I was imagining we'd have to fake the reply to the test unit ready or
some other commands, which is why it would need to be in sr.c

The check events code is Tejun's baby, if he's OK with it then just do
it in genhd.c


The problem here is there's no easy to reach genhd from libata (or the
other way around) without going through sr.  I think we're gonna have
to have something in sr one way or the other.


 ...which is precisely as I said when v1 of this ZPODD patchset appeared.

sr modifications cannot be avoided.

Jeff




--
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [patch,v3 06/10] ata: use scsi_host_alloc_node

2012-11-15 Thread Jeff Garzik

On 11/09/2012 02:18 PM, Jeff Moyer wrote:

Signed-off-by: Jeff Moyer jmo...@redhat.com
---
  drivers/ata/libata-scsi.c |3 ++-
  1 files changed, 2 insertions(+), 1 deletions(-)


Acked-by: Jeff Garzik jgar...@redhat.com



--
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v7 2/6] scsi: sr: support runtime pm

2012-09-30 Thread Jeff Garzik

On 09/29/2012 06:31 PM, Rafael J. Wysocki wrote:

On Saturday, September 29, 2012, Alan Stern wrote:

Can arbitrary SCSI devices be ZP, or does this notion apply only to
ATAPI-based drives?  That's the key question, and the answer determines
where the ZP support belongs.


I agree.  That said for now I'm not aware of any other ZP devices.  It also
is unclear whether or not their requirements would be the same for the
ZPODD devices.


Not quite.

The key question is whether or not this operates at the SCSI command set 
level.  ATAPI is simply SCSI MMC command set tunnelling.


The ATA-specific bits that belong in libata include everything below the 
SCSI command set: bus details, delivering the command to the device, 
returning the command response, etc.


sr handles the SCSI command set details.  SATA optical devices are 
aligned with the SCSI MMC command set, which periodically synchronizes 
with USB and ATAPI industry efforts.


There are ugly hacks around the edges, where sometimes ATA or USB 
subsystems may tweak the request or response in passing, but that is the 
general model:  it belongs in libata UNLESS the operation is occurring 
wholly at the SCSI command set level.


Because USB and ATA chose to use the SCSI command set, it is sadly 
inevitable that there might be a few details -- hopefully glossed over 
with layer-hopping hooks and flags -- within 'sr' that are bus-specific.


The simple fact of only ZPODD devices out there are ATA is not the 
decision-maker for where the code should live.  It is more a question 
where ZPODD belongs in the device/command set model currently employed.


Jeff




--
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v7 2/6] scsi: sr: support runtime pm

2012-09-30 Thread Jeff Garzik

On 09/29/2012 06:44 PM, Rafael J. Wysocki wrote:

On Saturday, September 29, 2012, Aaron Lu wrote:

On 09/29/2012 10:29 PM, Alan Stern wrote:

On Sat, 29 Sep 2012, Aaron Lu wrote:


I don't think this is a good idea, quite frankly.  sr seems to be a too
generic place for that.


Does this mean sr can only have code that is useful to all devices it
manages? i.e. If a piece of code enables a feature for a special kind of
ODD(like the sata based ZPODD), it shouldn't be done in sr?


Drivers are allowed to have special features and quirks that apply only
to some devices.


I think SATA based zero power capable ODDs are the some devices.




There is nothing in theory stopping us from doing this in ata layer.
For the loading mechanism, we can always send an ATAPI command to figure
it out.

So gentlemen, I need your opinions on where this ZPODD code should live
before I can continue this work, thanks.


Can arbitrary SCSI devices be ZP, or does this notion apply only to
ATAPI-based drives?  That's the key question, and the answer determines
where the ZP support belongs.


I don't know if arbitrary SCSI devices can be ZP or not, the SPC spec
doesn't seem to define such a power state.

ZPODD is defined for sata based ATAPI ODD which supports device
attention, but doesn't specify how the ODD is powered off and how the
device attention pin notifies OS. On x86 systems, these are implemented
by ACPI.

Though SCSI devices may not have a general notion of ZP, the fact that
ZPODD are managed by sr driver is enough to make the decision that ZPODD
code can live in sr?


Well, only a part of it is handled by sr, the high-level part so to speak.
The low-level handling is done by the ATA layer.  Now, since sr is the
high-level part and is supposed to be generic, I don't think it's appropriate
to make it care about some low-level things specific to ATA (because there is
another layer of code supposed to handle those).


On the other hand, the sr driver certainly deserves to have some form
of runtime PM support, even for devices that aren't ZP.


Agree.

And the following codes need to find a home:
- Code used to handle ACPI wake notification(currently done in ATA, but
   causes the annoying need_eject flag in scsi_device);


And quite frankly I'd more and more convinced that this flag isn't really
necessary.

What you really want to achieve is to eject the tray of a tray-type ODD
if the eject is signaled through a GPE.  I don't see anything for sr to
do in that.  Moreover, you probably would like to do that even if the
drive is not powered down, right?

I wonder if this mechanism can be used for user space notification
without polling regardless of whether or not the zero-power feature is
used?


Fair questions, and I think this is finally getting to the heart of the 
matter/solution.




- Code to check if the ODD is ready to be powered off per the ZPODD
   spec.


If that can be done at the ATA level, I'd prefer it too.


Does the ready-to-poweroff check involve SCSI/MMC command set commands?

If no, it probably belongs in libata.

If yes, it probably belongs in sr.

Jeff




--
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v7 2/6] scsi: sr: support runtime pm

2012-09-30 Thread Jeff Garzik

On 09/30/2012 10:47 AM, Alan Stern wrote:

On Sun, 30 Sep 2012, Aaron Lu wrote:


Makes sense to me, but there is a problem if I want to block events
checking for the disk, as I do not have a pointer to the gendisk in ATA
layer.


You may discover the gendisk by going the ATA - SCSI - block route.



The tray will be ejected by the ODD itself when it has power, I do not
need to do that. Moreover, I don't think I need enable the GPE bit when
it has power.


It sounds like you need to add only two things to the sr layer: An
interface to enable/disable event checking and an interface to request
an eject.  (And perhaps ejects can be carried out entirely within the
ATAPI layer, with no need to involve sr.)


Sounds reasonable.

Jeff




--
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v7 2/6] scsi: sr: support runtime pm

2012-09-30 Thread Jeff Garzik

On 09/30/2012 03:43 PM, Alan Stern wrote:

On Sun, 30 Sep 2012, Jeff Garzik wrote:


The simple fact of only ZPODD devices out there are ATA is not the
decision-maker for where the code should live.  It is more a question
where ZPODD belongs in the device/command set model currently employed.


I don't really accept this argument.  It's a little like saying: The
tty layer uses ioctl commands to control RS232 line settings; therefore
RS232 settings should be handled in the VFS layer as part of the ioctl
core.


Hardly -- sr is an optical device driver, much more aligned.

And libata is probably at least 50% of the entire sr userbase, if not 
much much more.


Jeff




--
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [SCSI PATCH] sd: max-retries becomes configurable

2012-09-26 Thread Jeff Garzik

On 09/25/2012 06:38 AM, James Bottomley wrote:

On Tue, 2012-09-25 at 01:21 -0400, Jeff Garzik wrote:

Can you be more specific about sysfs location?  A runtime-writable (via
sysfs!) module parameter for a module-wide default seemed appropriate.


Well, if it's really important, the same thing should happen with
retries as happened with timeout (it became a request_queue property),
but it could be hacked as a struct scsi_disk one with a corresponding
entry in sd_dis_attrs.


Well, it is already a request property...  but assigned at 
initialization from sd-specific code.  sd also passes this through 
scmd-allowed to rq-retries.


It could become a request_queue property, but that seems like a hack as 
it is simply passed right back into SCSI EH, for SCSI-specific disposition.


Jeff



--
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[SCSI PATCH] sd: max-retries becomes configurable

2012-09-24 Thread Jeff Garzik


 drivers/scsi/sd.c |4 
 drivers/scsi/sd.h |2 +-
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c
index 4df73e5..d15074b 100644
--- a/drivers/scsi/sd.c
+++ b/drivers/scsi/sd.c
@@ -92,6 +92,10 @@ MODULE_ALIAS_SCSI_DEVICE(TYPE_DISK);
 MODULE_ALIAS_SCSI_DEVICE(TYPE_MOD);
 MODULE_ALIAS_SCSI_DEVICE(TYPE_RBC);
 
+static int sd_max_retries = 5;
+module_param_named(max_retries, sd_max_retries, int, 0644);
+MODULE_PARM_DESC(max_retries, Maximum number of retries, before failing 
command (default 5));
+
 #if !defined(CONFIG_DEBUG_BLOCK_EXT_DEVT)
 #define SD_MINORS  16
 #else
diff --git a/drivers/scsi/sd.h b/drivers/scsi/sd.h
index f703f48..f8488fa 100644
--- a/drivers/scsi/sd.h
+++ b/drivers/scsi/sd.h
@@ -18,7 +18,7 @@
 /*
  * Number of allowed retries
  */
-#define SD_MAX_RETRIES 5
+#define SD_MAX_RETRIES sd_max_retries
 #define SD_PASSTHROUGH_RETRIES 1
 #define SD_MAX_MEDIUM_TIMEOUTS 2
 
--
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v7 3/6] scsi: sr: support zero power ODD(ZPODD)

2012-09-24 Thread Jeff Garzik

On 09/12/2012 04:29 AM, Aaron Lu wrote:

When ODD is runtime suspended, we will check if it is OK to remove
its power:
1 For tray type, no medium inside and tray closed;
2 For slot type, no medium inside.
And if yes, we will set the ready_to_power_off flag as an indication to
ATA layer that it is safe to place this device into ACPI D3 cold power
state.

And when it is powered off, we will set the powered_off flag so that the
periodically running check_events will not bother this device by simply
return.

Signed-off-by: Aaron Lu aaron...@intel.com
---
  drivers/ata/libata-acpi.c  | 27 +++
  drivers/scsi/sr.c  | 53 ++
  drivers/scsi/sr.h  |  1 +
  drivers/scsi/sr_ioctl.c|  7 +-
  include/scsi/scsi_device.h |  3 +++
  5 files changed, 81 insertions(+), 10 deletions(-)

diff --git a/drivers/ata/libata-acpi.c b/drivers/ata/libata-acpi.c
index 902b5a4..9aca057 100644
--- a/drivers/ata/libata-acpi.c
+++ b/drivers/ata/libata-acpi.c
@@ -854,7 +854,7 @@ void ata_acpi_set_state(struct ata_port *ap, pm_message_t 
state)
  {
struct ata_device *dev;
acpi_handle handle;
-   int acpi_state;
+   int acpi_state, ret;

/* channel first and then drives for power on and vica versa
   for power off */
@@ -869,17 +869,24 @@ void ata_acpi_set_state(struct ata_port *ap, pm_message_t 
state)

if (state.event != PM_EVENT_ON) {
acpi_state = acpi_pm_device_sleep_state(
-   dev-sdev-sdev_gendev, NULL, ACPI_STATE_D3);
-   if (acpi_state  0)
-   acpi_bus_set_power(handle, acpi_state);
-   /* TBD: need to check if it's runtime pm request */
-   acpi_pm_device_run_wake(
-   dev-sdev-sdev_gendev, true);
+   dev-sdev-sdev_gendev, NULL,
+   dev-sdev-ready_to_power_off ?
+   ACPI_STATE_D3 : ACPI_STATE_D3_HOT);
+   if (acpi_state  0) {
+   ret = acpi_bus_set_power(handle, acpi_state);
+   if (!ret  acpi_state == ACPI_STATE_D3)
+   dev-sdev-powered_off = 1;
+
+   /* TODO: check if it's runtime pm request */
+   acpi_pm_device_run_wake(
+   dev-sdev-sdev_gendev, true);
+   }
} else {
/* Ditto */
acpi_pm_device_run_wake(
dev-sdev-sdev_gendev, false);
acpi_bus_set_power(handle, ACPI_STATE_D0);
+   dev-sdev-powered_off = 0;
}
}

@@ -985,8 +992,10 @@ static void ata_acpi_wake_dev(acpi_handle handle, u32 
event, void *context)
struct ata_device *ata_dev = context;

if (event == ACPI_NOTIFY_DEVICE_WAKE  ata_dev 
-   pm_runtime_suspended(ata_dev-sdev-sdev_gendev))
-   scsi_autopm_get_device(ata_dev-sdev);
+   ata_dev-sdev-powered_off) {
+   ata_dev-sdev-need_eject = 1;
+   pm_runtime_resume(ata_dev-sdev-sdev_gendev);
+   }
  }



these bits are Acked-by: Jeff Garzik jgar...@redhat.com

but obviously that is contingent upon acceptance of the upper level SCSI 
and ACPI changes.




--
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v7 6/6] libata: acpi: respect may_power_off flag

2012-09-24 Thread Jeff Garzik

On 09/12/2012 04:29 AM, Aaron Lu wrote:

If user does not want the device to be powered off when runtime
suspended by setting may_power_off flag to 0, we will not choose
D3 cold for it.

Signed-off-by: Aaron Lu aaron...@intel.com
---
  drivers/ata/libata-acpi.c | 5 -
  1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/ata/libata-acpi.c b/drivers/ata/libata-acpi.c
index 9aca057..24347e0 100644
--- a/drivers/ata/libata-acpi.c
+++ b/drivers/ata/libata-acpi.c
@@ -855,6 +855,7 @@ void ata_acpi_set_state(struct ata_port *ap, pm_message_t 
state)
struct ata_device *dev;
acpi_handle handle;
int acpi_state, ret;
+   bool power_off_allowed;

/* channel first and then drives for power on and vica versa
   for power off */
@@ -868,9 +869,11 @@ void ata_acpi_set_state(struct ata_port *ap, pm_message_t 
state)
continue;

if (state.event != PM_EVENT_ON) {
+   power_off_allowed = dev-sdev-ready_to_power_off 
+   dev-sdev-may_power_off;
acpi_state = acpi_pm_device_sleep_state(
dev-sdev-sdev_gendev, NULL,
-   dev-sdev-ready_to_power_off ?
+   power_off_allowed ?
ACPI_STATE_D3 : ACPI_STATE_D3_HOT);


Acked-by: Jeff Garzik jgar...@redhat.com

with the same caveat as with the rest of this patchset:  contingent upon 
acceptance of the other API changes.




--
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v2 1/4] scsi: introduce sync_before_stop flag

2012-09-24 Thread Jeff Garzik

On 09/18/2012 04:31 AM, Aaron Lu wrote:

I agree that it is better handled in libata's SALT, I tried to do this
but didn't find a good way so I introduced this flag. The SALT is 1-1
mapping, I'm not sure how to handle this 1-2 mapping.


That is the crux of the matter:  it is rather difficult within the 
current code, if there is not a 1:1 correspondence between SCSI command 
and ATA command.


The solution that works within libata-scsi.c involves creating two 
ata_queued_cmd's, and managing the issuance and completion yourself.


But really -- the most practical route seems to be simply to set WCE, to 
trigger the desired behavior.


Jeff



--
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] ahci: add a boot option to enable promise ahci

2012-09-24 Thread Jeff Garzik
On 09/23/2012 10:34 PM, Tony Hung - PTT 洪瑞嶸 wrote:
 linux-3.2.0/drivers/ata/ahci.c: In function 'hptiop_host_request_callback':
 
 Use min_t(size_t, ...) to fix.
 
 Signed-off-by: Tony Hung tony.h...@tw.promise.com
 ---
 
 diff --git a/linux-3.2.0/drivers/ata/ahci.c b/linux-3.2.0/drivers/ata/ahci.c
 --- a/linux-3.2.0/drivers/ata/ahci.c  2012-08-29 13:40:26.046851693 +0800
 +++ b/linux-3.2.0/drivers/ata/ahci.c  2012-08-30 17:23:10.207838960 +0800
 @@ -430,6 +430,9 @@ static int marvell_enable = 1;
   module_param(marvell_enable, int, 0644);
   MODULE_PARM_DESC(marvell_enable, Marvell SATA via AHCI (1 = enabled));
 
 +static int promise_enable;
 +module_param(promise_enable, int, 0644);
 +MODULE_PARM_DESC(promise_enable, Promise SATA via AHCI (1 = enabled));
 
   static void ahci_pci_save_initial_config(struct pci_dev *pdev,
struct ahci_host_priv *hpriv)
 @@ -1049,6 +1052,16 @@ static int ahci_init_one(struct pci_dev
   if (pdev-vendor == PCI_VENDOR_ID_MARVELL  !marvell_enable)
   return -ENODEV;
 
 +/*
 + * In RAID mode, Promise software RAID need to replace
 + * original AHCI module, but if AHCI driver build-in kernel,
 + * Promise AHCI module need a boot option to disable it
 + */
 +if (promise_enable 
 +((pdev-class  8) == PCI_CLASS_STORAGE_RAID) 
 + (pdev-vendor == PCI_VENDOR_ID_ATI ||
 +  pdev-vendor == PCI_VENDOR_ID_AMD))
 +return -ENODEV;

We need the patch for the Promise Software RAID driver, to accept this...

Jeff




--
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [SCSI PATCH] sd: max-retries becomes configurable

2012-09-24 Thread Jeff Garzik

On 09/25/2012 12:06 AM, James Bottomley wrote:

On Mon, 2012-09-24 at 17:00 -0400, Jeff Garzik wrote:


  drivers/scsi/sd.c |4 
  drivers/scsi/sd.h |2 +-
  2 files changed, 5 insertions(+), 1 deletion(-)


I'm not opposed in principle to doing this (except that it should be a
sysfs parameter like all our other controls), but what's the reasoning
behind needing it changed?


vendor hat on

Periodically turns up as a useful field sledgehammer for solving 
problems, until the real problem is found and fixed.  Got tired of a 
very similar patch manually bouncing around the hey, pssst, this worked 
for me backchannel IT network.


/red hat

Can you be more specific about sysfs location?  A runtime-writable (via 
sysfs!) module parameter for a module-wide default seemed appropriate.


Jeff



--
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [RFC][PATCH] libata: enable SATA disk fua detection on default

2012-09-09 Thread Jeff Garzik

On 09/09/2012 04:34 PM, Arvydas Sidorenko wrote:

Meanwhile there already has a number of SATA disks that have supported
this feature.  So I think maybe we can enable it.

Regards,
Zheng


Blindly enabling FUA by default in my opinion is not a good idea at all.
I believe the focus should be on detecting FUA support on the device
instead, which the kernel at this point cannot reliably do (is it possible?).


Premature assumptions.  It is entirely possible that FUA is detected 
accurately, but the software is missing a flush somewhere that FUA 
requires, if disks are to be used in FUA mode.


The filesystem and the block layer must properly generate and order 
their I/Os based on the FUA enablement bits that appear in the block 
layer after libata discovers the SATA FUA feature.


Jeff




--
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v6 4/7] libata: acpi: set can_power_off for both ODD and HD

2012-09-06 Thread Jeff Garzik

On 09/04/2012 10:24 AM, Aaron Lu wrote:

From: Aaron Lu aaron...@intel.com

Hard disk may also be runtime powered off, so set can_power_off flag
for it too if condition satisfies.

Signed-off-by: Aaron Lu aaron...@intel.com


Acked-by: Jeff Garzik jgar...@redhat.com



--
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v6 7/7] libata: acpi: respect may_power_off flag

2012-09-06 Thread Jeff Garzik

On 09/04/2012 10:24 AM, Aaron Lu wrote:

From: Aaron Lu aaron...@intel.com

If user does not want the device being powered off when runtime
suspended by setting may_power_off flag to 0, we will not choose D3 cold
ACPI D-State for it.

Signed-off-by: Aaron Lu aaron...@intel.com
---
  drivers/ata/libata-acpi.c | 4 +++-
  1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/ata/libata-acpi.c b/drivers/ata/libata-acpi.c
index 6c8f89c..774180d 100644
--- a/drivers/ata/libata-acpi.c
+++ b/drivers/ata/libata-acpi.c
@@ -869,7 +869,9 @@ void ata_acpi_set_state(struct ata_port *ap, pm_message_t 
state)

if (state.event != PM_EVENT_ON) {
acpi_state = acpi_pm_device_sleep_state(
-   dev-sdev-sdev_gendev, NULL, ACPI_STATE_D3);
+   dev-sdev-sdev_gendev, NULL,
+   dev-sdev-may_power_off ?
+   ACPI_STATE_D3_COLD : ACPI_STATE_D3_HOT);
if (acpi_state  0)
acpi_bus_set_power(handle, acpi_state);


Acked-by: Jeff Garzik jgar...@redhat.com



--
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Enabling FUA for SATA drives (was Re: [RFC][PATCH] libata: enable SATA disk fua detection on default)

2012-08-17 Thread Jeff Garzik

On 05/07/2012 11:24 PM, Zheng Liu wrote:

From: Zheng Liu wenqing...@taobao.com

Currently, SATA disk fua detection is disabled on default because most of
devices don't support this feature at that time.  With the development of
technology, more and more SATA disks support this feature.  So now we can enable
this detection on default.

Although fua detection is defined as a kernel module parameter, it is too hard
to set its value because it must be loaded and set before system starts up.
That needs to modify initrd file.  So it is inconvenient for administrator who
needs to manage a huge number of servers.

CC: Jeff Garzik j...@garzik.org
Signed-off-by: Zheng Liu wenqing...@taobao.com
---
  drivers/ata/libata-core.c |4 ++--
  1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
index 23763a1..3627251 100644
--- a/drivers/ata/libata-core.c
+++ b/drivers/ata/libata-core.c
@@ -133,9 +133,9 @@ int atapi_passthru16 = 1;
  module_param(atapi_passthru16, int, 0444);
  MODULE_PARM_DESC(atapi_passthru16, Enable ATA_16 passthru for ATAPI devices 
(0=off, 1=on [default]));

-int libata_fua = 0;
+int libata_fua = 1;
  module_param_named(fua, libata_fua, int, 0444);
-MODULE_PARM_DESC(fua, FUA support (0=off [default], 1=on));
+MODULE_PARM_DESC(fua, FUA support (0=off, 1=on [default]));


Applied.  Let's see how far down the rabbit hole we go ;-)

The FUA decision, as previously indicated, was based on early SATA 
drives, and perhaps better ones are available now.  Only testing will 
tell, at this point.


The larger questions, raised by Christoph and others remain unaddressed 
(though perhaps we can start addressing them now, with this patch):


* what is smart flushing policy for ATA devices with FUA?

* ATA NCQ's flush is not queued

* ATA NCQ always had the FUA bit...

* ...but mixing ATA NCQ FUA and !FUA in a queue is not fully supported 
by the existing code


and probably a few other details I forgot :)

Jeff







--
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [patch] [SCSI] mvsas: fix a vs bug

2012-08-16 Thread Jeff Garzik

On 08/16/2012 07:04 AM, Dan Carpenter wrote:

The 1  (slot_idx % 32) condition is always true.  The intent was to
test a bit field here using bitwise AND.  We do the test correctly a few
lines later in the do while loop.

Signed-off-by: Dan Carpenter dan.carpen...@oracle.com


Acked-by: Jeff Garzik jgar...@redhat.com



--
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v4 4/7] scsi: sr: block events when runtime suspended

2012-08-03 Thread Jeff Garzik

On 08/03/2012 05:50 AM, Aaron Lu wrote:

Hello,

Not sure if I should use EXPORT_SYMBOL or EXPORT_SYMBOL_GPL, any
comments?


Typically you follow the pattern of similar exports in the file (or in 
the API, if no others are in the file).


Jeff





--
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v3 0/7] ZPODD patches for scsi tree

2012-07-26 Thread Jeff Garzik

On 07/26/2012 06:05 AM, Aaron Lu wrote:

v3:
Rebase on top of scsi-misc tree;
Add the sr related patches previously in Jeff's libata tree;
Re-organize the sr patches.
A problem for now: for patch
scsi: sr: support zero power ODD(ZPODD)
I can't set a flag in libata-acpi.c since a related function is
missing in scsi-misc tree. Will fix this when 3.6-rc1 released.


What does this mean?  Would you be more specific?

Jeff



--
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v3 0/7] ZPODD patches for scsi tree

2012-07-26 Thread Jeff Garzik

On 07/26/2012 10:41 AM, Aaron Lu wrote:

On Thu, Jul 26, 2012 at 09:43:37AM -0400, Jeff Garzik wrote:

On 07/26/2012 06:05 AM, Aaron Lu wrote:

I can't set a flag in libata-acpi.c since a related function is
missing in scsi-misc tree. Will fix this when 3.6-rc1 released.



What does this mean?  Would you be more specific?



The patch libata-acpi: add ata port runtime D3Cold support by Lin Ming
introduced a function ata_acpi_wake_dev in libata-acpi.c, and only lives
in libata-next tree but not scsi-misc tree.

[...]

Another minor issue is, I need to use the can_power_off and
wakeup_by_user flag of the scsi_device structure in sr patches, but
they are all introduced in patches in libata-next tree, so I have to
re-define them in this patch set. Will cause conflict if James send
these sr patches to Linus. Any way to avoid this?



Linus said he just merged the libata patches, so they should appear in 
the torvalds/linux.git as soon as he pushes out (in the next 12 hours, 
I'm guessing).


Up to James how he wants to coordinate after that...  he might pull in 
Linus's tree into scsi-misc or another solution.


Jeff


--
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [resend PATCH 5/5] libsas, ipr: cleanup ata_host flags initialization via ata_host_init

2012-07-25 Thread Jeff Garzik

On 07/10/2012 12:06 AM, Dan Williams wrote:

libsas and ipr pass flags to ata_host_init that are meant for the port.

ata_host flags:
ATA_HOST_SIMPLEX= (1  0),   /* Host is simplex, one DMA 
channel per host only */
ATA_HOST_STARTED= (1  1),   /* Host started */
ATA_HOST_PARALLEL_SCAN  = (1  2),   /* Ports on this host can be 
scanned in parallel */
ATA_HOST_IGNORE_ATA = (1  3),   /* Ignore ATA devices on this 
host. */

flags passed by libsas:
ATA_FLAG_SATA   = (1  1),
ATA_FLAG_PIO_DMA= (1  7), /* PIO cmds via DMA */
ATA_FLAG_NCQ= (1  10), /* host supports NCQ */

The only one that aliases is ATA_HOST_STARTED which is a 'don't care' in
the libsas and ipr cases since ata_hosts from these sources are not
registered with libata.

Cc: Brian King brk...@us.ibm.com
Reported-by: Hannes Reinecke h...@suse.com
Signed-off-by: Dan Williams dan.j.willi...@intel.com
---
  drivers/ata/libata-core.c |   10 ++
  drivers/scsi/ipr.c|3 +--
  drivers/scsi/libsas/sas_ata.c |5 +
  include/linux/libata.h|3 +--


Acked-by: Jeff Garzik jgar...@redhat.com




--
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [git patches] libata updates

2012-07-25 Thread Jeff Garzik
On Wed, Jul 25, 2012 at 04:35:51PM -0400, Jeff Garzik wrote:
 Please pull 641589bff714f39b33ef1d7f02eaa009f2993b64 from
 git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev.git 
 tags/upstream
 

Oh, I forgot to point out the merge commit, making my HEAD more recent
than might be expected.  There was a merge conflict and an API change
that needed to be dealt with, in order for your pull to be correct.

Jeff



--
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [git patches] libata updates

2012-07-25 Thread Jeff Garzik

On 07/25/2012 04:35 PM, Jeff Garzik wrote:


Please pull 641589bff714f39b33ef1d7f02eaa009f2993b64 from
git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev.git 
tags/upstream

(text copied from the upstream-linus tag)
Notable changes:

* Updating libata to directly bind with ACPI / runtime power mgmt.
   This is a pre-req for SATA ZPODD (CD-ROM power management).

   Touches ACPI (exports++) and SCSI in minor ways.  Has been in linux-next
   for weeks.

   The rest of [ZPODD] will probably come via SCSI tree, as it involves
   a lot of updates to the 'sr' driver etc.


BTW Lin and Aaron, note that this did not include these changes:

  sr: check support for device busy class events
  sr: support zero power ODD
  sr: make sure ODD is in resumed state in block ioctl

as in the end I wanted to put the brakes on SCSI-touching patches. 
These should be able to go into James' scsi-misc tree with the other 
SCSI-area ZPODD changes.


For those three 'sr' changes listed above, you may add

Acked-by: Jeff Garzik jgar...@redhat.com

when moving them over.

Jeff



--
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [git patches] libata updates

2012-07-25 Thread Jeff Garzik

On 07/25/2012 06:06 PM, Linus Torvalds wrote:

On Wed, Jul 25, 2012 at 1:43 PM, Jeff Garzik j...@garzik.org wrote:

On Wed, Jul 25, 2012 at 04:35:51PM -0400, Jeff Garzik wrote:

Please pull 641589bff714f39b33ef1d7f02eaa009f2993b64 from
git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev.git 
tags/upstream



Oh, I forgot to point out the merge commit, making my HEAD more recent
than might be expected.  There was a merge conflict and an API change
that needed to be dealt with, in order for your pull to be correct.


So I'd *much* rather see an explanation of what the conflict is when
you ask me to pull, and let me handle it, rather than you pre-merging
things for me. I *want* to see conflicts between subsystems.
Seriously.


Tried to add some explanation to the merge commit itself, giving plenty 
of detail.


Even so, separately, it still needed that post-merge compile fix.

Jeff



--
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [git patches] libata updates

2012-07-25 Thread Jeff Garzik

On 07/25/2012 06:31 PM, Linus Torvalds wrote:

On Wed, Jul 25, 2012 at 3:26 PM, Jeff Garzik jgar...@pobox.com wrote:


Even so, separately, it still needed that post-merge compile fix.


And that's yet another example of how *NOT* to do things.

If the merge has errors like that, then they should be fixed up in the merge.

Please. Don't do this. Let me merge stuff, and you explain in the pull
request why it gets merge problems. Not this mess.

That merge itself was *trivial*. I do those kinds of fixups in my
sleep and you don't even need to explain those. The non-trivial part
you did as a separate commit. But neither of those should have been
I'll pre-merge for Linus so that he doesn't see these problems.


What is the right course in when a post-merge change is needed?

Jeff





--
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [git patches] libata updates

2012-07-25 Thread Jeff Garzik

On 07/25/2012 07:30 PM, Linus Torvalds wrote:

On Wed, Jul 25, 2012 at 3:58 PM, Jeff Garzik jgar...@pobox.com wrote:


What is the right course in when a post-merge change is needed?


Just describe the issue and the required change. Than I can just do it
as part of the merge, and now the whole series is bisectable,
including the merge itself.

Here's a (fairly bad) example:

   http://www.spinics.net/lists/netdev/msg192349.html

and the reason I call that a bad example is not because that's a bad
pull request, but simply that those are all real data conflicts, not
the more subtle kind of it merges fine, but because new code
introduced uses an interface that changed, you need to do xyz.


Thanks, so noted.  I guess if the merge gets more complex than something 
easily described in an email, that implies that maintainers should do 
more cross-coordination and maybe a merge tree.


What's the best way for libata to move forward, now that this hideous 
merge has been pushed out to the Well Known libata branches?  The 
pre-jgarzik-merge commit you would have pulled is 
dc7f71f486f4f5fa96f6dcf86833da020cde8a11 had my pull request been proper.


I can lop off the top 3 commits and force-update the libata-dev.git 
branches, then send a new pull request -- but you have grumbled at that 
sort of behavior in maintainer trees before too...


Jeff


--
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [resend PATCH 1/5] libata: reset once

2012-07-24 Thread Jeff Garzik

On 07/10/2012 12:05 AM, Dan Williams wrote:

Hotplug testing with libsas currently encounters a 55 second wait for
link recovery to give up.  In the case where the user trusts the
response time of their devices permit the recovery attempts to be
limited to one.

Signed-off-by: Dan Williams dan.j.willi...@intel.com


Acked-by: Jeff Garzik jgar...@redhat.com

--
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [resend PATCH 2/5] libata: export ata_port suspend/resume infrastructure for sas

2012-07-24 Thread Jeff Garzik

On 07/10/2012 12:05 AM, Dan Williams wrote:

Reuse ata_port_{suspend|resume}_common for sas.  This path is chosen
over adding coordination between ata-tranport and sas-transport because
libsas wants to revalidate the domain at resume-time at the host level.
It can not validate links have resumed properly until libata has had a
chance to perform its revalidation, and any sane placing of an ata_port
in the sas-transport model would delay it's resumption until after the
host.

Export the common portion of port suspend/resume (bypass pm_runtime),
and allow sas to perform these operations asynchronously (similar to the
libsas async-ata probe implmentation).  Async operation is determined by
having an external, rather than stack based, location for storing the
result of the operation.

Reviewed-by: Jacek Danecki jacek.dane...@intel.com
Signed-off-by: Dan Williams dan.j.willi...@intel.com


Acked-by: Jeff Garzik jgar...@redhat.com




--
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Need help with libata error handling in libsas

2008-02-25 Thread Jeff Garzik

James Bottomley wrote:

On Mon, 2008-02-25 at 10:34 -0600, Brian King wrote:

The new libata-eh is used for more than just EH. It is used for device
probing, device revalidation, and power management. It is also woken for
all command failures and is where the request sense for ATAPI devices is
issued. Device revalidation following reset is also critical for ATA and
ATAPI devices. One example of this is some SATA/PATA converter chips
lose their DMA xfer settings following a reset and default to PIO mode
only. Any DMA transfer that is attempted simply hangs.


Strongly seconded.  Doing your own ATA EH would be foolish, as that 
would imply duplicating all that carefully-time-tested logic handling 
devices which follow the ATA specs... about 98% of the time :)


Just the set-transfer-mode logic took years to get right for the 
majority of ATA devices.




OK ... I'm grepping around in the source trying to figure out all of
this.  Is it documented anywhere?  That would really help me out at the
moment.


Unfortunately, not really.  The simplistic version is...  freeze, set 
some flags, call a function to schedule EH as needed -- most notably 
when your HBA signals an ATA device error or some other error in the ATA 
domain.



Regardless of all this...   libsas IMO will cause some libata-EH growing 
pains.  libsas needs libata-EH for probing, revalidation, 
initialization, etc.  But libsas probably does NOT need libata-EH for 
certain duties like SATA PHY diagnosis and link handling.


libsas needs libata-EH.  Unfortunately for libsas, libata-EH was written 
from the libata controls the world point of view, and probably needs 
some modifications to play well in the new SATA/SAS shared worldview.


Brian's recommendation is quite sane...  your -error_handler() probably 
just needs hard reset (aka COMRESET) capability.


Jeff



-
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] [3/22] Remove unchecked_isa_dma in advansys.c

2008-02-25 Thread Jeff Garzik

Matthew Wilcox wrote:

On Mon, Feb 25, 2008 at 11:40:35PM +0100, Andi Kleen wrote:

(I must have fixed it somehow because it works on parisc, which is most
unforgiving of drivers which do DMA without the DMA API).

At least on x86 the DMA API cannot do ISA bouncing.


You're saying that if I set a 24-bit DMA mask, and then do a
pci_alloc_coherent(), x86 might hand me back something that's not
accessible?  That would be just broken.


Indeed.

Jeff



-
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] mvsas: convert from rough draft to working driver

2008-02-25 Thread Jeff Garzik

Ke Wei wrote:

On Sat, Feb 23, 2008 at 11:28:50AM -0500, Jeff Garzik wrote:

Ke Wei wrote:

Convert rough draft Marvell 6440 driver to a working driver.
Added support for SAS and SATA devices, hotplug, wide port, and expanders.
This patch is based on:
branch 'mvsas' of 
git.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6.git
Yay!  Perfect patch:  good tech content, applyable to #mvsas, and the 
most important part, the driver works :)


One minor (though important) detail:  may we assume this patch has the 
same Signed-off-by as previous patches?




Oah, I have no idea how to diff between the previous 5th commit and
current to use git-format-patch command, so I had to use git-diff to
create patch. As a result, I format to place my Signed-off-by when
sending email.
Jeff, Do you have a good suggestion?  Thank you for your help.


That's just a simple mistake, so I wouldn't worry about it.  We all 
forget such things, every now and then.


If I forget to sign-off on a patch, I usually just reply to my own email 
(publicly), providing the Signed-off-by line requested...  which is 
precisely what you did below :)




Signed-off-by: Ke Wei [EMAIL PROTECTED]


Thanks!

Jeff



-
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [GIT PATCH] scsi fixes for 2.6.25-rc2

2008-02-23 Thread Jeff Garzik

James Bottomley wrote:

This is the latest crop of bug fixes plus one new driver: mvsas.  We're

[...]

Jeff Garzik (1):
  mvsas: Add Marvell 6440 SAS/SATA driver

[...]

Ke Wei (1):
  mvsas: convert from rough draft to working driver



I know I am probably shooting myself in the foot here, since I am the 
original author of mvsas, but...


Should we be adding new drivers during -rc?

On one hand, it's clear the addition does not break anything, and adds 
value for users.


On the other hand, it's clearly not a bug fix, and -rc could easily get 
bloated with new drivers that didn't make the merge window.


On the net driver side of things, I have a few new net drivers that I 
have queued for 2.6.26, because they did not make the merge window. 
This is inconsistent with your apparently policy.


I would just prefer to have a clear and consistent policy here, 
regarding new drivers during -rc.


Thanks,

Jeff


-
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [GIT PATCH] scsi fixes for 2.6.25-rc2

2008-02-23 Thread Jeff Garzik

Jeff Garzik wrote:
On the net driver side of things, I have a few new net drivers that I 
have queued for 2.6.26, because they did not make the merge window. This 
is inconsistent with your apparently policy.


s/apparently/apparent/

Sometimes my fingers don't type the words that come out of my brain :)

Jeff


-
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH] mvsas: fix build warning, clean prototypes

2008-02-23 Thread Jeff Garzik
- Fix build 'make randconfig' build warning spotted by Toralf Foerster:

drivers/scsi/mvsas.c: In function 'mvs_hexdump':
drivers/scsi/mvsas.c:715: error: implicit declaration of function 'isalnum'

- Remove unneeded prototypes (spotted by hch)

Signed-off-by: Jeff Garzik [EMAIL PROTECTED]
---
NOTE:  A proper fix, as noted in initial review (and by hch), would
be to convert this driver over to using lib/hexdump.c, to eliminate
a hand-rolled hexdump function.


 drivers/scsi/mvsas.c |   13 +
 1 file changed, 1 insertion(+), 12 deletions(-)

diff --git a/drivers/scsi/mvsas.c b/drivers/scsi/mvsas.c
index 30e20e6..d4a6ac3 100755
--- a/drivers/scsi/mvsas.c
+++ b/drivers/scsi/mvsas.c
@@ -35,6 +35,7 @@
 #include linux/spinlock.h
 #include linux/delay.h
 #include linux/dma-mapping.h
+#include linux/ctype.h
 #include scsi/libsas.h
 #include asm/io.h
 
@@ -632,15 +633,6 @@ static int mvs_phy_control(struct asd_sas_phy *sas_phy, 
enum phy_func func,
   void *funcdata);
 static u32 mvs_read_phy_ctl(struct mvs_info *mvi, u32 port);
 static void mvs_write_phy_ctl(struct mvs_info *mvi, u32 port, u32 val);
-static u32 mvs_read_port(struct mvs_info *mvi, u32 off, u32 off2, u32 port);
-static void mvs_write_port(struct mvs_info *mvi, u32 off, u32 off2,
-   u32 port, u32 val);
-static u32 mvs_read_port_cfg_data(struct mvs_info *mvi, u32 port);
-static void mvs_write_port_cfg_data(struct mvs_info *mvi, u32 port, u32 val);
-static void mvs_write_port_cfg_addr(struct mvs_info *mvi, u32 port, u32 addr);
-static u32 mvs_read_port_vsr_data(struct mvs_info *mvi, u32 port);
-static void mvs_write_port_vsr_data(struct mvs_info *mvi, u32 port, u32 val);
-static void mvs_write_port_vsr_addr(struct mvs_info *mvi, u32 port, u32 addr);
 static u32 mvs_read_port_irq_stat(struct mvs_info *mvi, u32 port);
 static void mvs_write_port_irq_stat(struct mvs_info *mvi, u32 port, u32 val);
 static void mvs_write_port_irq_mask(struct mvs_info *mvi, u32 port, u32 val);
@@ -649,9 +641,6 @@ static u32 mvs_read_port_irq_mask(struct mvs_info *mvi, u32 
port);
 static u32 mvs_is_phy_ready(struct mvs_info *mvi, int i);
 static void mvs_detect_porttype(struct mvs_info *mvi, int i);
 static void mvs_update_phyinfo(struct mvs_info *mvi, int i, int get_st);
-static void mvs_free_reg_set(struct mvs_info *mvi, struct mvs_port *port);
-static u8 mvs_assign_reg_set(struct mvs_info *mvi, struct mvs_port *port);
-static u32 mvs_is_sig_fis_received(u32 irq_status);
 
 static int mvs_scan_finished(struct Scsi_Host *, unsigned long);
 static void mvs_scan_start(struct Scsi_Host *);
-
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [GIT PATCH] scsi fixes for 2.6.25-rc2

2008-02-23 Thread Jeff Garzik

Olof Johansson wrote:

Hi,

On Sat, Feb 23, 2008 at 09:13:33AM -0600, James Bottomley wrote:


Jeff Garzik (1):
  mvsas: Add Marvell 6440 SAS/SATA driver

[...]

 drivers/scsi/mvsas.c| 2981 


I just noticed that the file permissions on that file are 755 in current
git, that was probably not intentional?


Definitely not intentional.  They were 0644 in the original changeset 
(the one from me you highlighted), then the second changeset updating 
mvsas somehow changed the perms.


Jeff



-
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [GIT PATCH] scsi fixes for 2.6.25-rc2

2008-02-23 Thread Jeff Garzik

Andrew Morton wrote:

On Sat, 23 Feb 2008 12:31:02 -0800 (PST) Linus Torvalds [EMAIL PROTECTED] 
wrote:



On Sat, 23 Feb 2008, Jeff Garzik wrote:

I know I am probably shooting myself in the foot here, since I am the original
author of mvsas, but...

Should we be adding new drivers during -rc?
I'm personally of the opinion that a new driver that doesn't add anything 
but itself (ie no infrastructure changes etc) is fine. I'd rather have a 
new, rough driver that might work, than no driver at all, and it's not 
like it can cause a regression if you don't enable it.




Yes, I too think that adding new standalone code in late -rc is OK.


ACK, thanks!

Jeff



-
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 1/1] [SCSI] gdth: misc cleanups, preparation for ISA/EISA hotplug API

2008-02-23 Thread Jeff Garzik
Several misc. cleanups:

- remove recently-noop'd 'reverse_scan' module parm

- remove pointless function prototypes

- remove ha-pccb, its value always == ha-cmdext

- move thrice-redundant DMA memory alloc and (in EISA's case, mapping)
  into common functions gdth_ha_alloc(), gdth_ha_free()

- delete pointless zero-initializations of ha struct members, as these
  are zeroed when ha is allocated (and never assigned any other value,
  prior to the explicit zero initializations)

- consolidate thrice-repeated spinlock init

Signed-off-by: Jeff Garzik [EMAIL PROTECTED]
---
NOTE: Applies on top of my previous two gdth patches (PCI hotplug prep,
PCI hotplug convert).

 drivers/scsi/gdth.c |  299 ++
 drivers/scsi/gdth.h |1 -
 2 files changed, 108 insertions(+), 192 deletions(-)

diff --git a/drivers/scsi/gdth.c b/drivers/scsi/gdth.c
index ad9aff2..b17eb15 100644
--- a/drivers/scsi/gdth.c
+++ b/drivers/scsi/gdth.c
@@ -51,8 +51,6 @@
  * reserve_list:h,b,t,l,h,b,t,l,... reserve particular drive(s) with 
  *  h- controller no., b- channel no., 
  *  t- target ID, l- LUN
- * reverse_scan:Y   reverse scan order for PCI controllers 
- * reverse_scan:N   scan PCI controllers like BIOS
  * max_ids:xx - target ID count per channel (1..MAXID)
  * rescan:Y rescan all channels/IDs 
  * rescan:N use all devices found until now
@@ -66,7 +64,7 @@
  * force_dma32:Yuse only 32 bit DMA mode
  * force_dma32:Nuse 64 bit DMA mode, if supported
  *
- * The default values are: gdth=disable:N,reserve_mode:1,reverse_scan:N,
+ * The default values are: gdth=disable:N,reserve_mode:1,
  *  max_ids:127,rescan:N,hdr_channel:0,
  *  shared_access:Y,probe_eisa_isa:N,force_dma32:N.
  * Here is another example: gdth=reserve_list:0,1,2,0,0,1,3,0,rescan:Y.
@@ -77,7 +75,7 @@
  * with ' ' and all ':' with '=' and you must use 
  * '1' in place of 'Y' and '0' in place of 'N'.
  * 
- * Default: modprobe gdth disable=0 reserve_mode=1 reverse_scan=0
+ * Default: modprobe gdth disable=0 reserve_mode=1
  *   max_ids=127 rescan=0 hdr_channel=0 shared_access=0
  *   probe_eisa_isa=0 force_dma32=0
  * The other example: modprobe gdth reserve_list=0,1,2,0,0,1,3,0 rescan=1.
@@ -148,29 +146,13 @@ static int gdth_sync_event(gdth_ha_str *ha, int service, 
unchar index,
 static int gdth_async_event(gdth_ha_str *ha);
 static void gdth_log_event(gdth_evt_data *dvr, char *buffer);
 
-static void gdth_putq(gdth_ha_str *ha, Scsi_Cmnd *scp, unchar priority);
-static void gdth_next(gdth_ha_str *ha);
 static int gdth_fill_raw_cmd(gdth_ha_str *ha, Scsi_Cmnd *scp, unchar b);
 static int gdth_special_cmd(gdth_ha_str *ha, Scsi_Cmnd *scp);
-static gdth_evt_str *gdth_store_event(gdth_ha_str *ha, ushort source,
-  ushort idx, gdth_evt_data *evt);
 static int gdth_read_event(gdth_ha_str *ha, int handle, gdth_evt_str *estr);
-static void gdth_readapp_event(gdth_ha_str *ha, unchar application, 
-   gdth_evt_str *estr);
-static void gdth_clear_events(void);
 
-static void gdth_copy_internal_data(gdth_ha_str *ha, Scsi_Cmnd *scp,
-char *buffer, ushort count, int to_buffer);
 static int gdth_internal_cache_cmd(gdth_ha_str *ha, Scsi_Cmnd *scp);
 static int gdth_fill_cache_cmd(gdth_ha_str *ha, Scsi_Cmnd *scp, ushort hdrive);
 
-static void gdth_enable_int(gdth_ha_str *ha);
-static int gdth_test_busy(gdth_ha_str *ha);
-static int gdth_get_cmd_index(gdth_ha_str *ha);
-static void gdth_release_event(gdth_ha_str *ha);
-static int gdth_wait(gdth_ha_str *ha, int index,ulong32 time);
-static int gdth_internal_cmd(gdth_ha_str *ha, unchar service, ushort opcode,
- ulong32 p1, ulong64 p2,ulong64 
p3);
 static int gdth_search_drives(gdth_ha_str *ha);
 static int gdth_analyse_hdrive(gdth_ha_str *ha, ushort hdrive);
 
@@ -181,7 +163,6 @@ static int gdth_close(struct inode *inode, struct file 
*filep);
 static int gdth_ioctl(struct inode *inode, struct file *filep,
   unsigned int cmd, unsigned long arg);
 
-static void gdth_flush(gdth_ha_str *ha);
 static int gdth_halt(struct notifier_block *nb, ulong event, void *buf);
 static int gdth_queuecommand(Scsi_Cmnd *scp,void (*done)(Scsi_Cmnd *));
 static int __gdth_queuecommand(gdth_ha_str *ha, struct scsi_cmnd *scp,
@@ -336,8 +317,6 @@ static int reserve_list[MAX_RES_ARGS] =
 {0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
  0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
  0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff};
-/* scan order for PCI controllers */
-static int reverse_scan = 0;
 /* virtual channel for the host drives */
 static

Re: [PATCH 1/1] [SCSI] gdth: misc cleanups, preparation for ISA/EISA hotplug API

2008-02-23 Thread Jeff Garzik

Christoph Hellwig wrote:

Eventually we shoud just kill the INT_COAL ifdefed code.  It has never
been enabled and clutters up the driver quite badly.


Noted (queued)...  fine by me, and makes life easier.



+#ifdef CONFIG_EISA
+   if ((ha-type == GDT_EISA)  (ha-ccb_phys))
+   pci_unmap_single(ha-pdev, ha-ccb_phys, sizeof(gdth_cmd_str),
+PCI_DMA_BIDIRECTIONAL);
+#endif /* CONFIG_EISA */


I don't think moving this into the common helper makes any sense, as
it's only ever done for the eisa adapter.  Just keep it local there.


+#ifdef CONFIG_EISA
+   if (ha-type == GDT_EISA) {
+   ha-ccb_phys = pci_map_single(ha-pdev, ha-cmdext,
+   sizeof(gdth_cmd_str), PCI_DMA_BIDIRECTIONAL);
+   if (!ha-ccb_phys)
+   goto out_free;
+   }
+#endif /* CONFIG_EISA */


Same here.


hm.  We'll see how it plays out...  on the remove side, the above is 
exact what happens in gdth_remove_one() without my patch, thus 
consolidating two cases of the same code into one.  There is a 
less-strong argument for doing the allocation that way, but it may turn 
out to be useful anyway once the ISA/EISA API conversion is complete.


Jeff


-
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 1/1] [SCSI] gdth: misc cleanups, preparation for ISA/EISA hotplug API

2008-02-23 Thread Jeff Garzik

Christoph Hellwig wrote:

On Sun, Feb 24, 2008 at 12:18:23AM -0500, Jeff Garzik wrote:
hm.  We'll see how it plays out...  on the remove side, the above is 
exact what happens in gdth_remove_one() without my patch, thus 
consolidating two cases of the same code into one.  There is a less-strong 
argument for doing the allocation that way, but it may turn out to be 
useful anyway once the ISA/EISA API conversion is complete.


EISA -remove has a different prototype from PCI -remove from ISA
-remove, so gdth_remove_one will be split up eventually.  Having the
scsi_host_put duplicated in each shouldn't be too much of a problem :)


We'll see what the final result is...  you might turn out to be right. 
If people want to avoid merging this patch because of this issue, that's 
fine.


Jeff



-
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 2/5] aic94xx: plumb in I_T_nexus_reset task management function

2008-02-23 Thread Jeff Garzik

James Bottomley wrote:

Currently aic94xx has no exported I_T_nexus_reset function.  This is a
bit of a huge problem, since sas_ata relies on this function to
perform an ATA phy reset and also it means that if abort fails, we
really have no bigger hammer to hit everything with.

Plumb in the I_T_nexus_reset by quiescing the sequencer, sending the
correct phy reset (link for ATA and hard for SAS) and then carefully
resuming the sequencer again.

Signed-off-by: James Bottomley [EMAIL PROTECTED]
---
 drivers/scsi/aic94xx/aic94xx.h  |1 +
 drivers/scsi/aic94xx/aic94xx_init.c |2 +-
 drivers/scsi/aic94xx/aic94xx_tmf.c  |   58 --
 3 files changed, 56 insertions(+), 5 deletions(-)


Tangent:

Now that patches for ipr and sata_sx4 exist, libsas is the last holdout 
using libata's old error handling paths.


I think Darrick was either scoping that work, or had preliminary patches?

Anyway, that's holding back removal of a lot of libata code, so I wanted 
to make sure the issue remained in people's minds...


Jeff



-
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] Marvell 6440 SAS/SATA driver

2008-02-22 Thread Jeff Garzik

Ke Wei wrote:

Added support for Expander. Based on version 0.1 for mvsas.


Signed-off-by: Ke Wei [EMAIL PROTECTED]
---
diff --git a/drivers/scsi/mvsas.c b/drivers/scsi/mvsas.c
old mode 100644
new mode 100755
index 03638b9..3c7a154
--- a/drivers/scsi/mvsas.c
+++ b/drivers/scsi/mvsas.c
@@ -2,6 +2,7 @@
mvsas.c - Marvell 88SE6440 SAS/SATA support
 
 	Copyright 2007 Red Hat, Inc.

+   Copyright 2008 Marvell. [EMAIL PROTECTED]
 
 	This program is free software; you can redistribute it and/or

modify it under the terms of the GNU General Public License as
@@ -25,6 +26,13 @@
  structures.  this permits elimination of all the le32_to_cpu()
  and cpu_to_le32() conversions.
 
+	Changelog:

+   2008-02-22  0.5 Added support for Expander.
+   2008-02-05  0.4 Added support for hotplug and wide port.
+   2008-01-22  0.3 Added support for SAS HD and SATA Devices.
+   2008-01-09  0.2 detect SAS disk.
+   2007-09-25  0.1 rough draft, Initial version.
+
  */
 
 #include linux/kernel.h



Technical content:  looks good, ACK

Patch content:  looks diff'd against correct version, ACK

But we still have one major process problem, and a couple minor problems 
to fix:


1) [minor] please do not include a changelog in the source code.  That's 
what the git repository history is for.


2) [minor] Your patch description (email body) is incorrect.  It should 
describe all changes since version 0.1, the version you diff'd against:


Convert rough draft Marvell 6440 driver to a working driver.

Added support for SAS and SATA devices, hotplug, wide port,
and expanders.

3) [minor] Your email subject should reflect that you are updating 
version 0.1, the version you diff'd against:


[PATCH] mvsas: convert from rough draft to working driver

4) [major] Your email was encoded in base64, which makes it difficult 
for automated tools to handle, and difficult for some mail clients to 
view and reply-to.


It will require some email configuration on your part to disable this, 
and send the email as a text/plain message.


I've copied Saeed Bishara @ Marvell on this email.  Saeed has been 
successfully sending patch for the sata_mv driver (5040, 6080, 6042, 
etc.)  Maybe Saeed can advise you on his email setup?




In any case, once we fix this last problem -- base64 -- we can finally 
apply your patch and get things moving.


You are very close to having a working Linux kernel development setup, 
thanks for your patience!


Jeff




-
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 1/2] libsas: Provide a transport-level facility to request SAS addrs

2008-02-19 Thread Jeff Garzik

Darrick J. Wong wrote:

Provide a facility to use the request_firmware() interface to get a SAS
address from userspace.  This can be used by SAS LLDDs that cannot
obtain the address from the host adapter.

Resend of 8 Oct. 2007 patch, now based off 2.6.25-rc2 + scsi_misc.

Signed-off-by: Darrick J. Wong [EMAIL PROTECTED]
---

 drivers/scsi/libsas/sas_scsi_host.c |   41 +++
 include/scsi/libsas.h   |2 ++
 2 files changed, 43 insertions(+), 0 deletions(-)


ACK patches 1-2


-
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] 2.6.25-rc1-git2: GDT SCSI: change drivers/scsi/gdth.c into using pci_get device

2008-02-17 Thread Jeff Garzik

Boaz Harrosh wrote:

On Sat, Feb 16 2008 at 18:37 +0200, Matthew Wilcox [EMAIL PROTECTED] wrote:

On Wed, Feb 13, 2008 at 10:57:37AM +0200, Boaz Harrosh wrote:

I still don't have a card for testing myself. Again anyone
wants to send me a card. Intel people anybody home?

Apparently Intel sold this line of cards to Adaptec.  The copyright
notice in the file backs this up:

 * Copyright (C) 1995-06 ICP vortex GmbH, Achim Leubner *
 * Copyright (C) 2002-04 Intel Corporation  *
 * Copyright (C) 2003-06 Adaptec Inc.   *
 * [EMAIL PROTECTED]  *



OK I never got this guy to ping back. CCing [EMAIL PROTECTED]

Who is the right contact person, regarding the HW that is supported
by the gdth driver? Form what we see in driver commit logs (above), 
it was transfered to  Adaptec from Intel in 2003. Is that still so?


In my experience Achim does respond, but this driver is probably very 
low priority, so it might take a while...


Jeff




-
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] gdth: convert to PCI hotplug API

2008-02-15 Thread Jeff Garzik

James Bottomley wrote:

diff --git a/drivers/scsi/gdth.c b/drivers/scsi/gdth.c
index c825239..1b53e92 100644
--- a/drivers/scsi/gdth.c
+++ b/drivers/scsi/gdth.c
@@ -595,85 +595,107 @@ static int __init gdth_search_isa(ulong32 bios_adr)
 #endif /* CONFIG_ISA */
 
 #ifdef CONFIG_PCI

-static void gdth_search_dev(gdth_pci_str *pcistr, ushort *cnt,
-ushort vendor, ushort dev);
+static gdth_pci_str gdth_pcistr[MAXHA];
+static int gdth_pci_cnt;
+static bool gdth_pci_registered;


Could we get rid of these static arrays and MAXHA entirely?  It should
be possible just to bung the parameters in pci_str into gdth_ha_str and
dump the arrays.



I kept those array for one reason:  you need it to preserve the existing 
in-driver PCI device sort.


If we can eliminate the sorting, then the array can easily disappear.

I /think/ the sort can be eliminated now because we have pci=reverse, 
but I have not verified that guess.


Jeff



-
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 1/2] SCSI/gdth: PCI probe cleanups, prep for PCI hotplug API conversion

2008-02-15 Thread Jeff Garzik
- Reduce uses of gdth_pci_str::pdev, preferring a local variable
  (or function arg) 'pdev' instead.

- Reduce uses of gdth_pcistr array, preferring local variable
  (or function arg) 'pcistr' instead.

- Eliminate lone use of gdth_pci_str::irq, using equivalent
  pdev-irq instead

- Eliminate assign-only gdth_pci_str::io_mm

Note:  If the indentation seems weird, that's because a line was
converted from spaces to tabs, when it was modified.

Signed-off-by: Jeff Garzik [EMAIL PROTECTED]
---
NOTE: this patch series supercedes the previous gdth: convert to PCI
hotplug API patch.

 drivers/scsi/gdth.c |   59 --
 drivers/scsi/gdth.h |2 -
 2 files changed, 28 insertions(+), 33 deletions(-)

diff --git a/drivers/scsi/gdth.c b/drivers/scsi/gdth.c
index 6d67f5c..56c2b91 100644
--- a/drivers/scsi/gdth.c
+++ b/drivers/scsi/gdth.c
@@ -653,7 +653,6 @@ static void __init gdth_search_dev(gdth_pci_str *pcistr, 
ushort *cnt,
 
 /* GDT PCI controller found, resources are already in pdev */
 pcistr[*cnt].pdev = pdev;
-pcistr[*cnt].irq = pdev-irq;
 base0 = pci_resource_flags(pdev, 0);
 base1 = pci_resource_flags(pdev, 1);
 base2 = pci_resource_flags(pdev, 2);
@@ -668,7 +667,6 @@ static void __init gdth_search_dev(gdth_pci_str *pcistr, 
ushort *cnt,
 !(base1  IORESOURCE_IO)) 
 continue;
 pcistr[*cnt].dpmem = pci_resource_start(pdev, 2);
-pcistr[*cnt].io_mm = pci_resource_start(pdev, 0);
 pcistr[*cnt].io= pci_resource_start(pdev, 1);
 }
 TRACE2((Controller found at %d/%d, irq %d, dpmem 0x%lx\n,
@@ -913,7 +911,8 @@ static int __init gdth_init_isa(ulong32 
bios_adr,gdth_ha_str *ha)
 #endif /* CONFIG_ISA */
 
 #ifdef CONFIG_PCI
-static int __init gdth_init_pci(gdth_pci_str *pcistr,gdth_ha_str *ha)
+static int __init gdth_init_pci(struct pci_dev *pdev, gdth_pci_str *pcistr,
+   gdth_ha_str *ha)
 {
 register gdt6_dpram_str __iomem *dp6_ptr;
 register gdt6c_dpram_str __iomem *dp6c_ptr;
@@ -925,14 +924,14 @@ static int __init gdth_init_pci(gdth_pci_str 
*pcistr,gdth_ha_str *ha)
 
 TRACE((gdth_init_pci()\n));
 
-if (pcistr-pdev-vendor == PCI_VENDOR_ID_INTEL)
+if (pdev-vendor == PCI_VENDOR_ID_INTEL)
 ha-oem_id = OEM_ID_INTEL;
 else
 ha-oem_id = OEM_ID_ICP;
-ha-brd_phys = (pcistr-pdev-bus-number  8) | (pcistr-pdev-devfn  
0xf8);
-ha-stype = (ulong32)pcistr-pdev-device;
-ha-irq = pcistr-irq;
-ha-pdev = pcistr-pdev;
+ha-brd_phys = (pdev-bus-number  8) | (pdev-devfn  0xf8);
+ha-stype = (ulong32)pdev-device;
+ha-irq = pdev-irq;
+ha-pdev = pdev;
 
 if (ha-pdev-device = PCI_DEVICE_ID_VORTEX_GDT6000B) {  /* GDT6000/B */
 TRACE2((init_pci() dpmem %lx irq %d\n,pcistr-dpmem,ha-irq));
@@ -960,8 +959,7 @@ static int __init gdth_init_pci(gdth_pci_str 
*pcistr,gdth_ha_str *ha)
 continue;
 }
 iounmap(ha-brd);
-pci_write_config_dword(pcistr-pdev, 
-   PCI_BASE_ADDRESS_0, i);
+   pci_write_config_dword(pdev, PCI_BASE_ADDRESS_0, i);
 ha-brd = ioremap(i, sizeof(gdt6_dpram_str)); 
 if (ha-brd == NULL) {
 printk(GDT-PCI: Initialization error (DPMEM remap 
error)\n);
@@ -1070,8 +1068,7 @@ static int __init gdth_init_pci(gdth_pci_str 
*pcistr,gdth_ha_str *ha)
 continue;
 }
 iounmap(ha-brd);
-pci_write_config_dword(pcistr-pdev, 
-   PCI_BASE_ADDRESS_2, i);
+   pci_write_config_dword(pdev, PCI_BASE_ADDRESS_2, i);
 ha-brd = ioremap(i, sizeof(gdt6c_dpram_str)); 
 if (ha-brd == NULL) {
 printk(GDT-PCI: Initialization error (DPMEM remap 
error)\n);
@@ -1163,16 +1160,16 @@ static int __init gdth_init_pci(gdth_pci_str 
*pcistr,gdth_ha_str *ha)
 }
 
 /* manipulate config. space to enable DPMEM, start RP controller */
-pci_read_config_word(pcistr-pdev, PCI_COMMAND, command);
+   pci_read_config_word(pdev, PCI_COMMAND, command);
 command |= 6;
-pci_write_config_word(pcistr-pdev, PCI_COMMAND, command);
-if (pci_resource_start(pcistr-pdev, 8) == 1UL)
-pci_resource_start(pcistr-pdev, 8) = 0UL;
+   pci_write_config_word(pdev, PCI_COMMAND, command);
+   if (pci_resource_start(pdev, 8) == 1UL)
+   pci_resource_start(pdev, 8) = 0UL;
 i = 0xFEFF0001UL;
-pci_write_config_dword(pcistr-pdev, PCI_ROM_ADDRESS, i);
+   pci_write_config_dword(pdev, PCI_ROM_ADDRESS, i);
 gdth_delay(1);
-pci_write_config_dword(pcistr-pdev, PCI_ROM_ADDRESS,
-   pci_resource_start(pcistr-pdev, 8));
+   pci_write_config_dword(pdev

Re: [PATCH 1/5] gdth: update deprecated pci_find_device

2008-02-14 Thread Jeff Garzik

Boaz Harrosh wrote:

From: Sergio Luis [EMAIL PROTECTED]

Fix compilation warning in gdth.c, which was using the deprecated
pci_find_device.

drivers/scsi/gdth.c:645: warning: 'pci_find_device' is deprecated (declared at 
include/linux/pci.h:495)

Changing it to use pci_get_device, instead.

Signed-off-by: Sergio Luis [EMAIL PROTECTED]
Signed-off-by: James Bottomley [EMAIL PROTECTED]
---
 drivers/scsi/Kconfig |2 +-
 drivers/scsi/gdth.c  |7 +--
 2 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/drivers/scsi/Kconfig b/drivers/scsi/Kconfig
index 184c7ae..46fcb82 100644
--- a/drivers/scsi/Kconfig
+++ b/drivers/scsi/Kconfig
@@ -725,7 +725,7 @@ config SCSI_FD_MCS
 
 config SCSI_GDTH

tristate Intel/ICP (former GDT SCSI Disk Array) RAID Controller 
support
-   depends on (ISA || EISA || PCI)  SCSI  ISA_DMA_API  PCI_LEGACY
+   depends on (ISA || EISA || PCI)  SCSI  ISA_DMA_API
---help---
  Formerly called GDT SCSI Disk Array Controller Support.
 
diff --git a/drivers/scsi/gdth.c b/drivers/scsi/gdth.c

index b253b8c..5f0e054 100644
--- a/drivers/scsi/gdth.c
+++ b/drivers/scsi/gdth.c
@@ -643,12 +643,15 @@ static void __init gdth_search_dev(gdth_pci_str *pcistr, 
ushort *cnt,
   *cnt, vendor, device));
 
 pdev = NULL;
-while ((pdev = pci_find_device(vendor, device, pdev)) 
+while ((pdev = pci_get_device(vendor, device, pdev))

!= NULL) {
 if (pci_enable_device(pdev))
 continue;
-if (*cnt = MAXHA)
+if (*cnt = MAXHA) {
+pci_dev_put(pdev);
 return;
+}


This patch is already upstream...  (unfortunately)

Jeff



-
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 1/5] gdth: update deprecated pci_find_device

2008-02-14 Thread Jeff Garzik

James Bottomley wrote:

On Thu, 2008-02-14 at 15:13 -0500, Jeff Garzik wrote:

Boaz Harrosh wrote:

From: Sergio Luis [EMAIL PROTECTED]

Fix compilation warning in gdth.c, which was using the deprecated
pci_find_device.

[...]

This patch is already upstream...  (unfortunately)


I think, in spite of the cover name (patches for stable), these are for
the set of testers who're based on 2.6.24.


Oops!  My mistake, then.

Jeff



-
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] gdth: convert to PCI hotplug API

2008-02-14 Thread Jeff Garzik

Boaz Harrosh wrote:

do you intend this to be pushed into 2.6.25-rcx or this is already
for 2.6.26? Should we put this in -mm tree for testing?



Not intended for 2.6.25.  I just wanted to get this in process 
somewhere, and keep this issue moving.  I would definitely prefer to 
have this tested before it goes to Linus.


Its a long term goal to kill pci_find_device(), and this conversion was 
a side effect of that.


Jeff



-
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] gdth: convert to PCI hotplug API

2008-02-14 Thread Jeff Garzik
Comments noted for my next round of revisions (its a low priority, so 
definitely not this week).  Good spotting, thanks!


Jeff




-
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [SCSI] gdth: update deprecated pci_find_device

2008-02-13 Thread Jeff Garzik

Linux Kernel Mailing List wrote:

Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=99109301d103fbf0de43fc5a580a406c12a501e0
Commit: 99109301d103fbf0de43fc5a580a406c12a501e0
Parent: 61c92814dc324b541391757062ff02fbf3b08086
Author: Sergio Luis [EMAIL PROTECTED]
AuthorDate: Tue Feb 12 20:48:03 2008 -0300
Committer:  James Bottomley [EMAIL PROTECTED]
CommitDate: Wed Feb 13 09:33:10 2008 -0600

[SCSI] gdth: update deprecated pci_find_device

Fix compilation warning in gdth.c, which was using the deprecated

pci_find_device.

drivers/scsi/gdth.c:645: warning: 'pci_find_device' is deprecated (declared at include/linux/pci.h:495)

Changing it to use pci_get_device, instead.

Signed-off-by: Sergio Luis [EMAIL PROTECTED]

Signed-off-by: James Bottomley [EMAIL PROTECTED]
---
 drivers/scsi/Kconfig |2 +-
 drivers/scsi/gdth.c  |7 +--
 2 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/drivers/scsi/Kconfig b/drivers/scsi/Kconfig
index a5f0aaa..a7a0813 100644
--- a/drivers/scsi/Kconfig
+++ b/drivers/scsi/Kconfig
@@ -722,7 +722,7 @@ config SCSI_FD_MCS
 
 config SCSI_GDTH

tristate Intel/ICP (former GDT SCSI Disk Array) RAID Controller 
support
-   depends on (ISA || EISA || PCI)  SCSI  ISA_DMA_API  PCI_LEGACY
+   depends on (ISA || EISA || PCI)  SCSI  ISA_DMA_API
---help---
  Formerly called GDT SCSI Disk Array Controller Support.
 
diff --git a/drivers/scsi/gdth.c b/drivers/scsi/gdth.c

index 7079fef..6d67f5c 100644
--- a/drivers/scsi/gdth.c
+++ b/drivers/scsi/gdth.c
@@ -642,12 +642,15 @@ static void __init gdth_search_dev(gdth_pci_str *pcistr, 
ushort *cnt,
   *cnt, vendor, device));
 
 pdev = NULL;
-while ((pdev = pci_find_device(vendor, device, pdev)) 
+while ((pdev = pci_get_device(vendor, device, pdev))

!= NULL) {
 if (pci_enable_device(pdev))
 continue;
-if (*cnt = MAXHA)
+if (*cnt = MAXHA) {
+pci_dev_put(pdev);
 return;
+}
+


Why no pci_dev_put() in the module cleanup path?

Jeff



-
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH] gdth: convert to PCI hotplug API

2008-02-12 Thread Jeff Garzik

Signed-off-by: Jeff Garzik [EMAIL PROTECTED]
---
 drivers/scsi/gdth.c |  143 +++-
 1 file changed, 86 insertions(+), 57 deletions(-)

06196f50915da97bb897495863f9f084d785c1e4
diff --git a/drivers/scsi/gdth.c b/drivers/scsi/gdth.c
index c825239..1b53e92 100644
--- a/drivers/scsi/gdth.c
+++ b/drivers/scsi/gdth.c
@@ -595,85 +595,107 @@ static int __init gdth_search_isa(ulong32 bios_adr)
 #endif /* CONFIG_ISA */
 
 #ifdef CONFIG_PCI
-static void gdth_search_dev(gdth_pci_str *pcistr, ushort *cnt,
-ushort vendor, ushort dev);
+static gdth_pci_str gdth_pcistr[MAXHA];
+static int gdth_pci_cnt;
+static bool gdth_pci_registered;
 
-static int __init gdth_search_pci(gdth_pci_str *pcistr)
+static bool __init gdth_search_vortex(ushort device)
 {
-ushort device, cnt;
-
-TRACE((gdth_search_pci()\n));
-
-cnt = 0;
-for (device = 0; device = PCI_DEVICE_ID_VORTEX_GDT6555; ++device)
-gdth_search_dev(pcistr, cnt, PCI_VENDOR_ID_VORTEX, device);
-for (device = PCI_DEVICE_ID_VORTEX_GDT6x17RP; 
- device = PCI_DEVICE_ID_VORTEX_GDTMAXRP; ++device)
-gdth_search_dev(pcistr, cnt, PCI_VENDOR_ID_VORTEX, device);
-gdth_search_dev(pcistr, cnt, PCI_VENDOR_ID_VORTEX, 
-PCI_DEVICE_ID_VORTEX_GDTNEWRX);
-gdth_search_dev(pcistr, cnt, PCI_VENDOR_ID_VORTEX, 
-PCI_DEVICE_ID_VORTEX_GDTNEWRX2);
-gdth_search_dev(pcistr, cnt, PCI_VENDOR_ID_INTEL,
-PCI_DEVICE_ID_INTEL_SRC);
-gdth_search_dev(pcistr, cnt, PCI_VENDOR_ID_INTEL,
-PCI_DEVICE_ID_INTEL_SRC_XSCALE);
-return cnt;
+   if (device = PCI_DEVICE_ID_VORTEX_GDT6555)
+   return true;
+   if (device = PCI_DEVICE_ID_VORTEX_GDT6x17RP 
+   device = PCI_DEVICE_ID_VORTEX_GDTMAXRP)
+   return true;
+   if (device == PCI_DEVICE_ID_VORTEX_GDTNEWRX ||
+   device == PCI_DEVICE_ID_VORTEX_GDTNEWRX2)
+   return true;
+   return false;
 }
 
+static int gdth_pci_init_one(struct pci_dev *pdev,
+const struct pci_device_id *ent);
+static void gdth_pci_remove_one(struct pci_dev *pdev);
+static void gdth_remove_one(gdth_ha_str *ha);
+
 /* Vortex only makes RAID controllers.
  * We do not really want to specify all 550 ids here, so wildcard match.
  */
-static struct pci_device_id gdthtable[] __maybe_unused = {
-{PCI_VENDOR_ID_VORTEX,PCI_ANY_ID,PCI_ANY_ID, PCI_ANY_ID},
-{PCI_VENDOR_ID_INTEL,PCI_DEVICE_ID_INTEL_SRC,PCI_ANY_ID,PCI_ANY_ID}, 
-
{PCI_VENDOR_ID_INTEL,PCI_DEVICE_ID_INTEL_SRC_XSCALE,PCI_ANY_ID,PCI_ANY_ID}, 
-{0}
+static struct pci_device_id gdthtable[] __devinitdata = {
+   { PCI_VDEVICE(VORTEX, PCI_ANY_ID) },
+   { PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_SRC) },
+   { PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_SRC_XSCALE) },
+   { } /* terminate list */
+};
+MODULE_DEVICE_TABLE(pci, gdthtable);
+
+static struct pci_driver gdth_pci_driver = {
+   .name   = gdth,
+   .id_table   = gdthtable,
+   .probe  = gdth_pci_init_one,
+   .remove = gdth_pci_remove_one,
 };
-MODULE_DEVICE_TABLE(pci,gdthtable);
 
-static void __init gdth_search_dev(gdth_pci_str *pcistr, ushort *cnt,
-   ushort vendor, ushort device)
+static void gdth_pci_remove_one(struct pci_dev *pdev)
+{
+   gdth_ha_str *ha = pci_get_drvdata(pdev);
+
+   pci_set_drvdata(pdev, NULL);
+
+   list_del(ha-list);
+   gdth_remove_one(ha);
+
+   pci_disable_device(pdev);
+}
+
+static int __devinit gdth_pci_init_one(struct pci_dev *pdev,
+  const struct pci_device_id *ent)
 {
-ulong base0, base1, base2;
-struct pci_dev *pdev;
+   ushort vendor = pdev-vendor;
+   ushort device = pdev-device;
+   ulong base0, base1, base2;
+   int rc;
 
-TRACE((gdth_search_dev() cnt %d vendor %x device %x\n,
-  *cnt, vendor, device));
+   TRACE((gdth_search_dev() cnt %d vendor %x device %x\n,
+  gdth_pci_cnt, vendor, device));
+
+   if (vendor == PCI_VENDOR_ID_VORTEX  !gdth_search_vortex(device))
+   return -ENODEV;
+
+   rc = pci_enable_device(pdev);
+   if (rc)
+   return rc;
+
+   if (gdth_pci_cnt = MAXHA)
+   return -EBUSY;
 
-pdev = NULL;
-while ((pdev = pci_find_device(vendor, device, pdev)) 
-   != NULL) {
-if (pci_enable_device(pdev))
-continue;
-if (*cnt = MAXHA)
-return;
 /* GDT PCI controller found, resources are already in pdev */
-pcistr[*cnt].pdev = pdev;
-pcistr[*cnt].irq = pdev-irq;
+   gdth_pcistr[gdth_pci_cnt].pdev = pdev;
+   gdth_pcistr[gdth_pci_cnt].irq = pdev-irq;
 base0 = pci_resource_flags(pdev, 0);
 base1 = pci_resource_flags(pdev, 1);
 base2 = pci_resource_flags(pdev, 2

Re: [PATCHSET #upstream] block/libata: update and use block layer padding and draining

2008-02-08 Thread Jeff Garzik

Jeff Garzik wrote:

Tejun Heo wrote:

This patchset updates block layer padding and draining support and
make libata use it.  It's based on James Bottomley's initial work and,
of the five, the last two patches are from James with some
modifications.

Please read the following thread for more info.

  http://thread.gmane.org/gmane.linux.scsi/37185

This patchset is on top of

  upstream (a6af42fc9a12165136d82206ad52f18c5955ce87)
+ kill-n_iter-and-fix-fsl patch [1]


ACK patchset...  lets definitely get these fixes upstream.

Once Jens is happy, I would prefer the merge the lot upstream, if that 
is OK with everyone involved?


Jens, ping?

It's a bug fix, so it would be nice to get this in soonish.  As noted, 
if all looks good, I would prefer to merge via libata-dev...


Thanks,

Jeff


-
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCHSET #upstream] block/libata: update and use block layer padding and draining

2008-02-08 Thread Jeff Garzik

Jens Axboe wrote:

On Fri, Feb 08 2008, Jeff Garzik wrote:

Jeff Garzik wrote:

Tejun Heo wrote:

This patchset updates block layer padding and draining support and
make libata use it.  It's based on James Bottomley's initial work and,
of the five, the last two patches are from James with some
modifications.

Please read the following thread for more info.

 http://thread.gmane.org/gmane.linux.scsi/37185

This patchset is on top of

 upstream (a6af42fc9a12165136d82206ad52f18c5955ce87)
+ kill-n_iter-and-fix-fsl patch [1]

ACK patchset...  lets definitely get these fixes upstream.

Once Jens is happy, I would prefer the merge the lot upstream, if that 
is OK with everyone involved?

Jens, ping?

It's a bug fix, so it would be nice to get this in soonish.  As noted, 
if all looks good, I would prefer to merge via libata-dev...


I'm ok with it, but lets please merge the block bits through the block
repo, since they are not trivial. Wont be until the week after next,
though.


hmmm, rather than delaying the bug fixes for two weeks, since you're OK 
with it we can push upstream now, and apply further fixes if problems 
arise during testing?


I would rather get these fixes out into wide testing sooner rather than 
later.


Jeff




-
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Integration of SCST in the mainstream Linux kernel

2008-02-06 Thread Jeff Garzik

Bart Van Assche wrote:

On Feb 5, 2008 6:50 PM, Jeff Garzik [EMAIL PROTECTED] wrote:

For remotely accessing data, iSCSI+fs is quite simply more overhead than
a networked fs.  With iSCSI you are doing

local VFS - local blkdev - network

whereas a networked filesystem is

local VFS - network


There are use cases than can be solved better via iSCSI and a
filesystem than via a network filesystem. One such use case is when
deploying a virtual machine whose data is stored on a network server:
in that case there is only one user of the data (so there are no
locking issues) and filesystem and block device each run in another
operating system: the filesystem runs inside the virtual machine and
iSCSI either runs in the hypervisor or in the native OS.


Hence the diskless root fs configuration I referred to in multiple 
emails...  whoopee, you reinvented NFS root with quotas :)


Jeff



-
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCHSET #upstream] block/libata: update and use block layer padding and draining

2008-02-06 Thread Jeff Garzik

Tejun Heo wrote:

This patchset updates block layer padding and draining support and
make libata use it.  It's based on James Bottomley's initial work and,
of the five, the last two patches are from James with some
modifications.

Please read the following thread for more info.

  http://thread.gmane.org/gmane.linux.scsi/37185

This patchset is on top of

  upstream (a6af42fc9a12165136d82206ad52f18c5955ce87)
+ kill-n_iter-and-fix-fsl patch [1]


ACK patchset...  lets definitely get these fixes upstream.

Once Jens is happy, I would prefer the merge the lot upstream, if that 
is OK with everyone involved?


Jeff



-
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] Marvell 6440 SAS/SATA driver

2008-02-06 Thread Jeff Garzik

Ke Wei wrote:

Added support for hotplug and wide port.


Signed-off-by: Ke Wei [EMAIL PROTECTED]
---
 drivers/scsi/mvsas.c |  445 ++
 1 files changed, 339 insertions(+), 106 deletions(-)


Technically speaking, everything is looking great so far.

We need to correct one process problem, and we should be able to get 
your work into the 'mvsas' branch of scsi-misc-2.6.git... and soon 
thereafter hopefully into the official upstream kernel.


The process problem is...  when making revisions, we need to get the 
full patch each time.  In this case, each patch should be diff'd against 
the current version in the 'mvsas' branch:  version 0.1.


The succession of emails would look like this:

Email #1:

Subject: [PATCH] mvsas: make it work

Convert the skeleton mvsas driver into a real, working
driver.  Currently, the following works:

SAS, SAS expanders, SAS wide ports
SATA devices, SATAPI

Signed-off-by: Ke Wei [EMAIL PROTECTED]


And then James, myself, other reviewers reply.  Or, you add some new 
features like hotplugging.


Each time, you must regenerate a full patch against the most git 
repository revision:


If a previous patch of yours, version 0.2, has been applied
to git, then you would create your patch against version 0.2.

If a previous patch of yours has NOT yet been applied to git,
then you would create your patch against version 0.1.

Thus, in this case, version 0.1 is in 'mvsas' branch, so your second 
email would then be


Email #2:

Subject: [PATCH v2] mvsas: make it work

Convert the skeleton mvsas driver into a real, working
driver.  Currently, the following works:

SAS, SAS expanders, SAS wide ports
SATA devices, SATAPI

Signed-off-by: Ke Wei [EMAIL PROTECTED]
---
Changes since last posting (version 0.2):
- fix coding problem


And then you continue your work, and add another revision while everyone 
else is sleeping, the third email would look like:


Email #3:

Subject: [PATCH v3] mvsas: make it work

Convert the skeleton mvsas driver into a real, working
driver.  Currently, the following works:

SAS, SAS expanders, SAS wide ports
SATA devices, SATAPI

Signed-off-by: Ke Wei [EMAIL PROTECTED]
---
Changes since last posting (version 0.3):
- add hotplug support
- add wide port support

Changes since last posting (version 0.2):
- fix coding problem


Thus, you always create a patch against the most recent source code in 
the git repository.


It is common for patches to go through a few revisions on the mailing 
list, before it is applied to the git repository.


So anyway...  send a patch against the latest #mvsas (version 0.1), and 
that patch should go in rapidly.


Thanks!  And keep up the good work,

Jeff



-
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 21/24][RFC] scsi_tgt: use of sense accessors

2008-02-05 Thread Jeff Garzik

FUJITA Tomonori wrote:

On Tue, 5 Feb 2008 11:21:33 -0500
Pete Wyckoff [EMAIL PROTECTED] wrote:


[EMAIL PROTECTED] wrote on Mon, 04 Feb 2008 19:53 +0200:

  FIXME: I need help with this driver (Pete?)
I used scsi_sense() in a none const way. But since
scsi_tgt is the ULD here, it can just access it's own sense
buffer directly. I did not use scsi_eh_cpy_sense() because
I did not want the extra copy. Pete will want to use a 260
bytes buffer here.

Signed-off-by: Boaz Harrosh [EMAIL PROTECTED]
Need-help-from: Pete Wyckoff [EMAIL PROTECTED]

FYI, I never use scsi_tgt.  Only just pure userspace on the target,
and a dumb ethernet NIC that does not know it is speaking any form
of SCSI.


Seems that many people misunderstand STGT iSCSI (and iSER), FCoE, and
SRP (not implemented yet) software target drivers. They don't use the
tgt kernel module. They just run in user space like user-space nfs
daemon.


FWIW, some AHCI and other SATA chips implement ATA target mode.  I'm 
watching this SCSI work with interest, hoping that many of the concepts 
(and code?) can be applied to SATA as well.


If for no other reason than I can build a cheap ATA protocol analyzer, 
or bridge.


Jeff



-
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Integration of SCST in the mainstream Linux kernel

2008-02-05 Thread Jeff Garzik

Bart Van Assche wrote:

On Feb 4, 2008 11:57 PM, Jeff Garzik [EMAIL PROTECTED] wrote:


Networked block devices are attractive because the concepts and
implementation are more simple than networked filesystems... but usually
you want to run some sort of filesystem on top.  At that point you might
as well run NFS or [gfs|ocfs|flavor-of-the-week], and ditch your
networked block device (and associated complexity).


Running a filesystem on top of iSCSI results in better performance
than NFS, especially if the NFS client conforms to the NFS standard
(=synchronous writes).
By searching the web search for the keywords NFS, iSCSI and
performance I found the following (6 years old) document:
http://www.technomagesinc.com/papers/ip_paper.html. A quote from the
conclusion:
Our results, generated by running some of industry standard benchmarks,
show that iSCSI significantly outperforms NFS for situations when
performing streaming, database like accesses and small file transactions.


async performs better than sync...  this is news?  Furthermore, NFSv4 
has not only async capability but delegation too (and RDMA if you like 
such things), so the comparison is not relevant to modern times.


But a networked filesystem (note I'm using that term, not NFS, from 
here on) is simply far more useful to the average user.  A networked 
block device is a building block -- and a useful one.  A networked 
filesystem is an immediately usable solution.


For remotely accessing data, iSCSI+fs is quite simply more overhead than 
a networked fs.  With iSCSI you are doing


local VFS - local blkdev - network

whereas a networked filesystem is

local VFS - network

iSCSI+fs also adds new manageability issues, because unless the 
filesystem is single-computer (such as diskless iSCSI root fs), you 
still need to go across the network _once again_ to handle filesystem 
locking and coordination issues.


There is no _fundamental_ reason why remote shared storage via iSCSI OSD 
 is any faster than a networked filesystem.



SCSI-over-IP has its uses.  Absolutely.  It needed to be standardized. 
But let's not pretend iSCSI is anything more than what it is.  Its a 
bloated cat5 cabling standard :)


Jeff



-
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Integration of SCST in the mainstream Linux kernel

2008-02-05 Thread Jeff Garzik

Olivier Galibert wrote:

On Mon, Feb 04, 2008 at 05:57:47PM -0500, Jeff Garzik wrote:

iSCSI and NBD were passe ideas at birth.  :)

Networked block devices are attractive because the concepts and 
implementation are more simple than networked filesystems... but usually 
you want to run some sort of filesystem on top.  At that point you might 
as well run NFS or [gfs|ocfs|flavor-of-the-week], and ditch your 
networked block device (and associated complexity).


Call me a sysadmin, but I find easier to plug in and keep in place an
ethernet cable than these parallel scsi cables from hell.  Every
server has at least two ethernet ports by default, with rarely any
surprises at the kernel level.  Adding ethernet cards is inexpensive,
and you pretty much never hear of compatibility problems between
cards.

So ethernet as a connection medium is really nice compared to scsi.
Too bad iscsi is demented and ATAoE/NBD inexistant.  Maybe external
SAS will be nice, but I don't see it getting to the level of
universality of ethernet any time soon.  And it won't get the same
amount of user-level compatibility testing in any case.


Indeed, at the end of the day iSCSI is a bloated cabling standard.  :)

It has its uses, but I don't see it as ever coming close to replacing 
direct-to-network (perhaps backed with local cachefs) filesystems... 
which is how all the hype comes across to me.


Cheap Lintel boxes everybody is familiar with _are_ the storage 
appliances.  Until mass-produced ATA and SCSI devices start shipping 
with ethernet connectors, anyway.


Jeff



-
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Integration of SCST in the mainstream Linux kernel

2008-02-05 Thread Jeff Garzik

Vladislav Bolkhovitin wrote:

Jeff Garzik wrote:
iSCSI is way, way too complicated. 


I fully agree. From one side, all that complexity is unavoidable for 
case of multiple connections per session, but for the regular case of 
one connection per session it must be a lot simpler.



Actually, think about those multiple connections...  we already had to 
implement fast-failover (and load bal) SCSI multi-pathing at a higher 
level.  IMO that portion of the protocol is redundant:   You need the 
same capability elsewhere in the OS _anyway_, if you are to support 
multi-pathing.


Jeff



-
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [patch] pci: pci_enable_device_bars() fix

2008-02-04 Thread Jeff Garzik

Ingo Molnar wrote:

* Jeff Garzik [EMAIL PROTECTED] wrote:


Ingo Molnar wrote:
so please tell me Jeff. If Greg, who is the super-maintainer of your 
code area, and who deals with your code every day and changes it 
every minute and hour, simply did not Cc: the SCSI list - how am i, a 
largely outside party in this matter, supposed to notice that 3 
maintainers and 3 mailing lists in the Cc: were somehow not enough 
and that i was supposed to grow the already sizable Cc: list even 
more?
Because, regardless of the situation, it's both common courtesy and 
wise practice to CC relevant driver maintainers, when you touch a 
driver.


And it's just common sense: Greg simply does not know the intimate 
details of every PCI driver.  Nor do I.  Nor you.


In the case of lpfc here, we have an active driver maintainer, and an 
up-to-date MAINTAINERS entry.  Even if you are too slack to read 
MAINTAINERS, 'git log' would have given you the same info.


Don't pretend there is some benefit here to ignoring the people that 
best know the driver.  I don't buy that; it simply makes no 
engineering sense whatsoever.


what you _STILL_ do not realize is the following: you still attribute 
the lack of Cc:s to some intention of mine. No, it was not my intention. 


I was never speaking to intent.

I was noting that, having been in the kernel community for years, both 
of you guys should know that you should always CC a driver author, when 
touching their driver.


Even after this thread, I have not even heard a yes, I agree, I should 
have CC'd the driver author since they know the most about the driver 
from either of you, which is quite disappointing.


Instead, I get this long thread in response...


  is just super fragile and does not serve users at all. Even Greg and i 
  got it wrong accidentally. If _we_ get it wrong, who will get it 


Sure.  But... do you agree the CC list should have included the driver 
author?  Do you agree that a mistake was made in this case?


Jeff


-
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 6/24][RFC] gdth: Use of scsi_eh API and sense accessors

2008-02-04 Thread Jeff Garzik

Boaz Harrosh wrote:

  Use of new scsi_eh API for setting sense information into
  the scsi command.

Signed-off-by: Boaz Harrosh [EMAIL PROTECTED]
---
 drivers/scsi/gdth.c |   47 ++-
 drivers/scsi/gdth.h |1 +
 2 files changed, 27 insertions(+), 21 deletions(-)

diff --git a/drivers/scsi/gdth.c b/drivers/scsi/gdth.c
index c825239..9fdd5ef 100644
--- a/drivers/scsi/gdth.c
+++ b/drivers/scsi/gdth.c
@@ -2098,6 +2098,16 @@ static void gdth_putq(gdth_ha_str *ha, Scsi_Cmnd *scp, 
unchar priority)
 #endif
 }
 
+static void gdth_set_4byte_sense(struct scsi_cmnd *scp, u8 sense_code)

+{
+   u8 sense[4];
+
+   memset(sense, 0, sizeof(sense));
+   sense[0] = 0x70;
+   sense[2] = sense_code;
+   scsi_eh_cpy_sense(scp, sense, sizeof(sense));
+}


IMO, setting 0x70 and 0x72 is highly common, and worthy of some simple 
helper functions.  See ata_scsi_set_sense() in libata-scsi.c or 
stex_set_sense() in stex.c, which is a copy of the former.


Jeff




-
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [patch] pci: pci_enable_device_bars() fix

2008-02-04 Thread Jeff Garzik

Andrew Morton wrote:

Actually I (and probably others) generally avoid cc'ing mailing lists on
patch traffic.  I spew out enough script-generated traffic as it is.


You pretty much always ensure the driver author gets CC'd, which is 
exemplary :)


Jeff



-
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: dmesg spam

2008-02-04 Thread Jeff Garzik

James Bottomley wrote:

It's here in sr_ioctl.c:


Ah, indeed.  My grep-fu sucks today.



I'm not averse to simply nuking the printk ... it's probably valueless
in a modern kernel, since something dbussy is supposed to tell you to
put a CD in the drive, not something in the kernel.


The reverse...  dbussy/HAL is implementing autodetection of media 
insertion, by polling ad infinitum.


Jeff


-
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Integration of SCST in the mainstream Linux kernel

2008-02-04 Thread Jeff Garzik

Alan Cox wrote:
better. So for example, I personally suspect that ATA-over-ethernet is way 
better than some crazy SCSI-over-TCP crap, but I'm biased for simple and 
low-level, and against those crazy SCSI people to begin with.


Current ATAoE isn't. It can't support NCQ. A variant that did NCQ and IP
would probably trash iSCSI for latency if nothing else.


AoE is truly a thing of beauty.  It has a two/three page RFC (say no more!).

But quite so...  AoE is limited to MTU size, which really hurts.  Can't 
really do tagged queueing, etc.



iSCSI is way, way too complicated.  It's an Internet protocol designed 
by storage designers, what do you expect?


For years I have been hoping that someone will invent a simple protocol 
(w/ strong auth) that can transit ATA and SCSI commands and responses. 
Heck, it would be almost trivial if the kernel had a TLS/SSL implementation.


Jeff



-
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: dmesg spam

2008-02-04 Thread Jeff Garzik

Andrew Morton wrote:

On Mon, 4 Feb 2008 15:24:55 +0100 Bartlomiej Zolnierkiewicz [EMAIL PROTECTED] 
wrote:


On Sunday 03 February 2008, Andrew Morton wrote:

With latest -mm, running fc8 I am getting this in the logs,

   ^^^
= SCSI/libata

cc:ing Jeff


once per second.

sr0: CDROM not ready.  Make sure there is a disc in the drive.
sr0: CDROM not ready.  Make sure there is a disc in the drive.
sr0: CDROM not ready.  Make sure there is a disc in the drive.
sr0: CDROM not ready.  Make sure there is a disc in the drive.
sr0: CDROM not ready.  Make sure there is a disc in the drive.
sr0: CDROM not ready.  Make sure there is a disc in the drive.
sr0: CDROM not ready.  Make sure there is a disc in the drive.
sr0: CDROM not ready.  Make sure there is a disc in the drive.
sr0: CDROM not ready.  Make sure there is a disc in the drive.


Well..  it's coming out of the kernel.  Presumably it's that cdrom polling
thing in KDE.  James recently made changes to sr_ioctl.c but I've been
buried in more terminal regressions than this one.


I don't see this in upstream...  can you isolate it to a particular git 
tree?


Clearly userland is initiating a once-per-second poll.  That is quite 
normal for 99% of CDROMs, which do not support async notification.


But also clearly that message is printk'd way too much in your case.

Jeff




-
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Integration of SCST in the mainstream Linux kernel

2008-02-04 Thread Jeff Garzik

Linus Torvalds wrote:


On Mon, 4 Feb 2008, Jeff Garzik wrote:

Well, speaking as a complete nutter who just finished the bare bones of an
NFSv4 userland server[1]...  it depends on your approach.


You definitely are a complete nutter ;)


If the userland server is the _only_ one accessing the data[2] -- i.e. the
database server model where ls(1) shows a couple multi-gigabyte files or a raw
partition -- then it's easy to get all the semantics right, including file
handles.  You're not racing with local kernel fileserving.


It's not really simple in general even then. The problems come with file 
handles, and two big issues in particular:


 - handling a reboot (of the server) without impacting the client really 
   does need a look up by file handle operation (which you can do by 
   logging the pathname to filehandle translation, but it certainly gets 
   problematic).


 - non-Unix-like filesystems don't necessarily have a stable st_ino 
   field (ie it may change over a rename or have no meaning what-so-ever, 
   things like that), and that makes trying to generate a filehandle 
   really interesting for them.


Both of these are easily handled if the server is 100% in charge of 
managing the filesystem _metadata_ and data.  That's what I meant by 
complete control.


i.e. it not ext3 or reiserfs or vfat, its a block device or 1000GB file 
managed by a userland process.


Doing it that way gives one a bit more freedom to tune the filesystem 
format directly.  Stable inode numbers and filehandles are just easy as 
they are with ext3.  I'm the filesystem format designer, after all. (run 
for your lives...)


You do wind up having to roll your own dcache in userspace, though.

A matter of taste in implementation, but it is not difficult...  I've 
certainly never been accused of having good taste :)



I do agree that it's possible - we obviously _did_ have a user-level NFSD 
for a long while, after all - but it's quite painful if you want to handle 
things well. Only allowing access through the NFSD certainly helps a lot, 
but still doesn't make it quite as trivial as you claim ;)


Nah, you're thinking about something different:  a userland NFSD 
competing with other userland processes for access to the same files, 
while the kernel ultimately manages the filesystem metadata.  Recipe for 
races and inequities, and it's good we moved away from that.


I'm talking about where a userland process manages the filesystem 
metadata too.  In a filesystem with a million files, ls(1) on the server 
will only show a single file:


[EMAIL PROTECTED] ~]$ ls -l /spare/fileserver-data/
total 70657116
-rw-r--r-- 1 jgarzik jgarzik 1818064825 2007-12-29 06:40 fsimage.1



Of course, I think you can make NFSv4 to use volatile filehandles instead 
of the traditional long-lived ones, and that really should avoid almost 
all of the problems with doing a NFSv4 server in user space. However, I'd 
expect there to be clients that don't do the whole volatile thing, or 
support the file handle becoming stale only at certain well-defined points 
(ie after renames, not at random reboot times).


Don't get me started on volatile versus persistent filehandles in 
NFSv4...  groan.


Jeff


-
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Integration of SCST in the mainstream Linux kernel

2008-02-04 Thread Jeff Garzik

Linus Torvalds wrote:

On Mon, 4 Feb 2008, Matt Mackall wrote:

But ATAoE is boring because it's not IP. Which means no routing,
firewalls, tunnels, congestion control, etc.


The thing is, that's often an advantage. Not just for performance.


NBD and iSCSI (for all its hideous growths) can take advantage of these
things.


.. and all this could equally well be done by a simple bridging protocol 
(completely independently of any AoE code).


The thing is, iSCSI does things at the wrong level. It *forces* people to 
use the complex protocols, when it's a known that a lot of people don't 
want it. 

Which is why these AoE and FCoE things keep popping up. 

It's easy to bridge ethernet and add a new layer on top of AoE if you need 
it. In comparison, it's *impossible* to remove an unnecessary layer from 
iSCSI.


This is why simple and low-level is good. It's always possible to build 
on top of low-level protocols, while it's generally never possible to 
simplify overly complex ones.


Never discount easy and just works, which is what IP (and TCP) gives 
you...


Sure you can use a bridging protocol and all that jazz, but I wager, to 
a network admin yet-another-IP-application is easier to evaluate, deploy 
and manage on existing networks.


Jeff



-
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH RESEND number 2] libata: eliminate the home grown dma padding in favour of that provided by the block layer

2008-02-03 Thread Jeff Garzik

James Bottomley wrote:

The aic94xx sequencer has a very finely honed sense of DMA transfers.
It's fully automated, and handles both ATA DMA and ATA PIO in the
sequencer engine (so all the driver sees is DMA).


ditto AHCI, and most other DMA engines



It reports both underrun and overrun conditions.  For DMA underrun


ditto AHCI, and most other DMA engines



(device transfers less than expected, it just returns what it has and
how much was missing as the residual) for DMA overrun (as in device
tried to take more than it was programmed to send on either read or
write) for PIO it does seem to zero fill or discard and then simply
report task complete with overrun and let libsas sort it out.  I suspect
for DMA it first tries DMAT before taking other actions, but I'd need a
protocol analyser (or the sequencer docs) to be sure.


Almost every other DMA engine on the planet besides aic94xx is pretty 
much the same...  you set up an s/g tables, and it reports overrun or 
underrun via an interrupt + status register bit.


It sounds like aic94xx might do more work in the firmware -- that counts 
as advanced, since some of the DMA engine cleanup clearly occurs in 
firmware, rather than pushed to kernel software.


Nowhere do I see anything about AHCI that is broken.  It has standard 
DMA engine behavior found in storage and non-storage hardware.




We handle overruns as error conditions in both SAS and ATA at the
moment, but the point is that the ATAPI device is fully happy and
quiesced when we do this.


That may be the result of aic94xx handling extra FIS's in the firmware, 
something we cannot depend on for purely silicon-based devices.


mvsas, broadsas, ahci, sata_sil24, and others behave similarly... 
Please don't mistake lack of firmware cleanup as broken hardware.


Jeff



-
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [patch] pci: pci_enable_device_bars() fix

2008-02-02 Thread Jeff Garzik

Ingo Molnar wrote:

===
--- linux.orig/drivers/scsi/lpfc/lpfc_init.c
+++ linux/drivers/scsi/lpfc/lpfc_init.c
@@ -1894,7 +1894,7 @@ lpfc_pci_probe_one(struct pci_dev *pdev,
uint16_t iotag;
int bars = pci_select_bars(pdev, IORESOURCE_MEM);
 
-	if (pci_enable_device_bars(pdev, bars))

+   if (pci_enable_device_io(pdev))
goto out;


Look at the line right above it...  AFAICS you want 
pci_enable_device_mem(), if the mask is selecting IORESOURCE_MEM BARs.


Also a CC to linux-scsi and the driver author would be nice, as they are 
the ones with hardware and can verify.


This set of changes seemed like 50% guesswork to me, without consulting 
the authors :(  And unlike many changes, you actually have to know the 
hardware [or get clues from surrounding code] to make the change.


Jeff



-
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [patch] pci: pci_enable_device_bars() fix

2008-02-02 Thread Jeff Garzik

Ingo Molnar wrote:
it would have been totally appropriate for me to just send a mail to 
lkml with the proper subject line about the breakage. (I might even have 
decided to stay completely silent about the issue and fix it for my own 
build, letting you guys figure it out.)


Oh come on...   You are smart enough to know to at least CC the driver 
maintainer, the key POC who should be aware of breakage of their driver. 
 That is a standard courtesy.




( And as this was spent from my family's weekend time and i had no time
  and no interest to dig any further than to figure out the first hop
  of the change that broke the build, and the parties who initiated that
  hop. I'm in fact surprised that your and James's answer to my
  bugreport is hostility. )


I'm sorry you read would be nice as hostility.


So i find your suggestion that i should have added more people to the 
Cc: line unfair on several levels.


As I noted, it is an obvious courtesy to CC the driver maintainer, at 
the very least.


_Especially_ when it is a change that requires some knowledge of the 
hardware, as was this case.



This set of changes seemed like 50% guesswork to me, without 
consulting the authors :( And unlike many changes, you actually have 
to know the hardware [or get clues from surrounding code] to make the 
change.


you mean the whole set of changes?


The whole set of changes, yes, not just yours.


but ... i guess next time i'll think twice before sending any bugreports 
about or related to the SCSI code anywhere, unless they become really 
annoying. Who needs this hassle?


The fact is, each larger subsystem (net, scsi, ata I know) has several 
vendor contacts and driver maintainers who for various reasons prefer a 
more focused -- and often less hostile -- mailing list to LKML.


I have a hard enough time as it is, trying to convince hardware vendors 
to work with us, that we are not all assholes.


How about respecting the preferences of certain segments of a very large 
community, even when they differ from your own?  We have a 
community-accepted method of expressing these preferences, the 
MAINTAINERS file.


IMO, standard practice should be:

* To or CC: driver maintainer mentioned in MAINTAINERS (if any)
* CC: LKML, any list mentioned in MAINTAINERS

So, how about CC'ing the targets that have nicely requested to be CC'd?

Jeff


-
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [patch] pci: pci_enable_device_bars() fix

2008-02-02 Thread Jeff Garzik

Ingo Molnar wrote:

* Jeff Garzik [EMAIL PROTECTED] wrote:


Ingo Molnar wrote:
it would have been totally appropriate for me to just send a mail to lkml 
with the proper subject line about the breakage. (I might even have 
decided to stay completely silent about the issue and fix it for my own 
build, letting you guys figure it out.)
Oh come on...  You are smart enough to know to at least CC the driver 
maintainer, the key POC who should be aware of breakage of their 
driver.  That is a standard courtesy.


is there any particular reason why you cut out the most relevant part of 
my reply, which happens to answer all your questions AFAICS:


Instead i did a search of lkml (based on the function name in the 
build error) and figured out where the pull request was on lkml: 
Greg. I replied to that mail, he'll obviously know whom else to Cc 
from that point on (if anyone). I really didnt want to (nor did i 
need to) figure out whether this was some general driver level API 
change that happen kernel-wide, or some SCSI specific change. I 
simply replied to the pull request whose Cc: line seemed 
well-populated to me already. I also took a look at the commit itself 
and did a quick hack in a hurry to keep the tests rolling. It really 
did not occur to me that i should have added anyone else to the Cc: 
line, as [EMAIL PROTECTED] was Cc:-ed already so i 
assumed the interest was from that angle.


had you read this portion you'd have realized that i did not search for 
any owner of the file, i simply searched for the person who introduced 
the change, and the on-lkml mail where the change was introduced.


And therein lies the problem.  The original submittor omitted relevant 
maintainers, you followed that [incorrect] example, and the end result 
was clear:  an obviously wrong change.


Thus, the problem is precisely what you stated:  you did not bother to 
search for people who care about that file.



and that's all that should be needed, really. Believe me, i hit tons of 


Hardly.  What part of this change requires knowledge of the hardware 
is difficult to understand?


And if you do not have that knowledge, why is it so trying to CC people 
who actively maintain a driver, and have that knowledge?


It's simple common sense to -ask- or at least -notify- in such cases.

That the original submittor made the same mistake is no reason to repeat 
the mistake.



bugs all across the kernel, often several bugs a day, and it's hard even 
for me to figure out who maintains a file and when. (and in Linux 
there's no ownership of files anyway) So as a general rule i go after 
changes instead, and that's exactly what i did here too. I do 
delta/regression QA - i.e. i watch for _changes_ that break the kernel 
and hence the general 'owner' of a file is often irrelevant - it's the 
maintainer who introduces a change who matters, and we do lots of 
cross-maintain merges. Only if i do not manage to identify a change do i 
try to figure out who maintains a file at that given moment. (But those 
mails often go into black holes, they get bounced, subscriber-required 
email lists, etc. etc.) It's also nontrivial to map the files to the 
MAINTAINERS file, and it's also quite outdated in some portions. So the 
MAINTAINERS file is the last resort i use.


That's a long list of excuses in an attempt to ignore the facts:

Fact 1:  The driver you modified is actively maintained

Fact 2:  The driver maintainer has respectfully indicated, through the 
standard community mechanism, the useful points of contact.


Fact 3:  The MAINTAINERS entry is correct and up-to-date.

Fact 4:  Even if you wanted to ignore MAINTAINERS, 'git log' on the 
relevant file could have told you who are useful parties to CC.


It's just common courtesy to CC a driver maintainer, ESPECIALLY when a 
change requires knowledge of the driver/hardware in question.



so i'm still totally befuddled why you think that there was anything 
particularly wrong or unhelpful about me replying to the specific pull 
request that introduced a particular breakage into the kernel. Had i 
mailed to lkml with a terse kernel build broke message with just an 
URL to a config and the build breakage, you could rightfully have 
complained that i should have done more to properly direct my bugreport. 
But this breakage was about a PCI API change, the pull request had a PCI 
mailing list Cc:-ed, why should i have thought that this needs the 
attention of any other parties?


Because the change required knowledge not only of PCI, but of the 
hardware in question.  As your patch demonstrated.


And yes -- the original changes should have been CC'd to interested 
parties as well.  I'm still waiting to hear back from Alan or Bart 
whether the ATA/IDE changes in that PCI pile actually work...  the 
original changeset even noted that relevant parties had not yet been 
queried.


Jeff



-
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message

Re: [patch] pci: pci_enable_device_bars() fix

2008-02-02 Thread Jeff Garzik

Ingo Molnar wrote:
so please tell me Jeff. If Greg, who is the super-maintainer of your 
code area, and who deals with your code every day and changes it every 
minute and hour, simply did not Cc: the SCSI list - how am i, a largely 
outside party in this matter, supposed to notice that 3 maintainers and 
3 mailing lists in the Cc: were somehow not enough and that i was 
supposed to grow the already sizable Cc: list even more?


Because, regardless of the situation, it's both common courtesy and wise 
practice to CC relevant driver maintainers, when you touch a driver.


And it's just common sense:  Greg simply does not know the intimate 
details of every PCI driver.  Nor do I.  Nor you.


In the case of lpfc here, we have an active driver maintainer, and an 
up-to-date MAINTAINERS entry.  Even if you are too slack to read 
MAINTAINERS, 'git log' would have given you the same info.


Don't pretend there is some benefit here to ignoring the people that 
best know the driver.  I don't buy that; it simply makes no engineering 
sense whatsoever.


Jeff


-
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH RESEND number 2] libata: eliminate the home grown dma padding in favour of that provided by the block layer

2008-02-01 Thread Jeff Garzik

James Bottomley wrote:

Could we please get this in ... I thought I mentioned several times that
it fixes a fatal oops in both aic94xx and ipr.


Tejun has a persistent objection...  see other email.

Jeff



-
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] Marvell 6440 SAS/SATA driver

2008-01-25 Thread Jeff Garzik

James Bottomley wrote:

The lack of interrupt enable looks potentially fatal...


See my comments on this specific issue, in this thread, for the reason 
why that function isn't used...


Jeff



-
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] Marvell 6440 SAS/SATA driver

2008-01-25 Thread Jeff Garzik

Grant Grundler wrote:

On Jan 25, 2008 8:43 AM, Ke Wei [EMAIL PROTECTED] wrote:

The attached is Marvell 6440 SAS/SATA driver. I will try to send email
by git-send-email.


I know this isn't part of this patch:
 #define mr32(reg)  readl(regs + MVS_##reg)
 #define mw32(reg,val)  writel((val), regs + MVS_##reg)

But can regs be declared a parameter to the macro?


This is a common technique in drivers (especially net drivers), 
eliminating the redundant-across-the-entire-driver argument passed to 
each register read or write.  The result is infinitely more readable and 
compact.


val = mr32(IRQ_STAT);

immediately communicates all the necessary information you need.



+   MODE_AUTO_DET_PORT7 = (1U  15), /* port0 SAS/SATA autodetect */
+   MODE_AUTO_DET_PORT6 = (1U  14),
+   MODE_AUTO_DET_PORT5 = (1U  13),
+   MODE_AUTO_DET_PORT4 = (1U  12),
+   MODE_AUTO_DET_PORT3 = (1U  11),
+   MODE_AUTO_DET_PORT2 = (1U  10),
+   MODE_AUTO_DET_PORT1 = (1U  9),
+   MODE_AUTO_DET_PORT0 = (1U  8),

These really aren't needed.


Like James noted, without public docs, we don't want to be removing any 
hardware definitions.




Have to stop for now...but I'm wonder how this driver ever worked
given the number of HW register bits that were changed (assuming
they were wrong before this patch). And this driver looks _alot_
better than the previous Marvell drivers I've looked at. Please keep
up the good work! :)


Before this patch, the driver did not work.  As I do with all other 
drivers I write, I write the entire driver from the datasheet before 
testing anything.


Jeff



-
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH rc8-mm1] hotfix libata-scsi corruption

2008-01-22 Thread Jeff Garzik

James Bottomley wrote:

Actually, I don't think it's a smaller I/O issue.  The SMART protocol
specifically mandates that the transfers for SMART READ DATA and SMART
READ LOG shall be 512 bytes).  However, the pio transfer routine does
seem to be assuming sector alignment as well, which will be where your
problems are coming from.  I think we need to specify sector minimum
alignment for ata (but not atapi, which has its own non sector size pio
routine).  How about the attached?

We have to do this for all ATA devices, because they'll likely all
support SMART, and SMART is defined to be a PIO command.

James

---

diff --git a/drivers/ata/libata-scsi.c b/drivers/ata/libata-scsi.c
index 4bb268b..bc5cf6b 100644
--- a/drivers/ata/libata-scsi.c
+++ b/drivers/ata/libata-scsi.c
@@ -824,9 +824,6 @@ static void ata_scsi_sdev_config(struct scsi_device *sdev)
 * requests.
 */
sdev-max_device_blocked = 1;
-
-   /* set the min alignment */
-   blk_queue_update_dma_alignment(sdev-request_queue, ATA_DMA_PAD_SZ - 1);
 }
 
 static void ata_scsi_dev_config(struct scsi_device *sdev,

@@ -842,7 +839,14 @@ static void ata_scsi_dev_config(struct scsi_device *sdev,
if (dev-class == ATA_DEV_ATAPI) {
struct request_queue *q = sdev-request_queue;
blk_queue_max_hw_segments(q, q-max_hw_segments - 1);
-   }
+
+   /* set the min alignment */
+   blk_queue_update_dma_alignment(sdev-request_queue,
+  ATA_DMA_PAD_SZ - 1);
+   } else
+   /* ATA devices must be sector aligned */
+   blk_queue_update_dma_alignment(sdev-request_queue,
+  ATA_SECT_SIZE - 1);
 
 	if (dev-flags  ATA_DFLAG_AN)

set_bit(SDEV_EVT_MEDIA_CHANGE, sdev-supported_events);



ACK

Unlike ATAPI, ATA is indeed all 512-byte alignment transfers (_not_ 
sector size, which may or may not be 512 bytes)


Does this apply to libata?  libata + jejb dma alignment patch?

What tree...

Jeff



-
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] Marvell 6440 SAS/SATA driver

2008-01-22 Thread Jeff Garzik


Comments inline, mostly minor stuff cleaning up the source.

Major problem though:  your mailer converted tabs to spaces, so our 
automated patch tools won't work on your submission.  It usually takes a 
few attempts to get your email setup working, such that all the 
automated tools used in the Linux community work.



Ke Wei wrote:

+#define MVS_QUEUE_SIZE (30)


to be consistent with the rest of the driver, make this an enum



+#define MVS_PRINTK(_x_, ...) \
+   printk(KERN_NOTICE DRV_NAME :  _x_ , ## __VA_ARGS__)

 #define mr32(reg)  readl(regs + MVS_##reg)
 #define mw32(reg,val)  writel((val), regs + MVS_##reg)
@@ -47,6 +53,65 @@
   readl(regs + MVS_##reg);\
   } while (0)

+#define MVS_BIT(x) (1L  (x))
+
+#define PORT_TYPE_SATA MVS_BIT(0)
+#define PORT_TYPE_SAS  MVS_BIT(1)


to be consistent with the rest of the driver, just open-code 1  n. 
This also makes it easier to get the C type correct.




+#define MVS_ID_NOT_MAPPED  0xff
+#define MVS_CHIP_SLOT_SZ   (1U  mvi-chip-slot_width)
+
+/* offset for D2H FIS in the Received FIS List Structure */
+#define SATA_RECEIVED_D2H_FIS(reg_set) \
+   (mvi-rx_fis + 0x400 + 0x100 * reg_set + 0x40)
+#define SATA_RECEIVED_PIO_FIS(reg_set) \
+   (mvi-rx_fis + 0x400 + 0x100 * reg_set + 0x20)
+#define UNASSOC_D2H_FIS(id) \
+   (mvi-rx_fis + 0x100 * id)
+
+
+#define READ_PORT_CONFIG_DATA(i) \
+   ((i  3)?mr32(P4_CFG_DATA + (i - 4) * 8):mr32(P0_CFG_DATA + i * 8))
+#define WRITE_PORT_CONFIG_DATA(i,tmp) \
+   {if (i  3)mw32(P4_CFG_DATA + (i - 4) * 8, tmp); \
+   else \
+   mw32(P0_CFG_DATA + i * 8, tmp); }
+#define WRITE_PORT_CONFIG_ADDR(i,tmp) \
+   {if (i  3)mw32(P4_CFG_ADDR + (i - 4) * 8, tmp); \
+   else \
+   mw32(P0_CFG_ADDR + i * 8, tmp); }
+
+#define READ_PORT_PHY_CONTROL(i) \
+   ((i  3)?mr32(P4_SER_CTLSTAT + (i - 4) * 4):mr32(P0_SER_CTLSTAT+i * 4))
+#define WRITE_PORT_PHY_CONTROL(i,tmp) \
+   {if (i  3)mw32(P4_SER_CTLSTAT + (i - 4) * 4, tmp); \
+   else \
+   mw32(P0_SER_CTLSTAT + i * 4, tmp); }
+
+#define READ_PORT_VSR_DATA(i) \
+   ((i  3)?mr32(P4_VSR_DATA + (i - 4) * 8):mr32(P0_VSR_DATA+i*8))
+#define WRITE_PORT_VSR_DATA(i,tmp) \
+   {if (i  3)mw32(P4_VSR_DATA + (i - 4) * 8, tmp); \
+   else \
+   mw32(P0_VSR_DATA + i*8, tmp); }
+#define WRITE_PORT_VSR_ADDR(i,tmp) \
+   {if (i  3)mw32(P4_VSR_ADDR + (i - 4) * 8, tmp); \
+   else \
+   mw32(P0_VSR_ADDR + i * 8, tmp); }
+
+#define READ_PORT_IRQ_STAT(i) \
+   ((i  3)?mr32(P4_INT_STAT + (i - 4) * 8):mr32(P0_INT_STAT + i * 8))
+#define WRITE_PORT_IRQ_STAT(i,tmp) \
+   {if (i  3)mw32(P4_INT_STAT + (i-4) * 8, tmp); \
+   else \
+   mw32(P0_INT_STAT + i * 8, tmp); }
+#define READ_PORT_IRQ_MASK(i) \
+   ((i  3)?mr32(P4_INT_MASK + (i-4) * 8):mr32(P0_INT_MASK+i*8))
+#define WRITE_PORT_IRQ_MASK(i,tmp) \
+   {if (i  3)mw32(P4_INT_MASK + (i-4) * 8, tmp); \
+   else \
+   mw32(P0_INT_MASK + i * 8, tmp); }



make these macros readable, by breaking each C statement into a separate 
line





@@ -260,13 +368,33 @@ enum hw_register_bits {
   PHYEV_RDY_CH= (1U  0),/* phy ready changed state */

   /* MVS_PCS */
+   PCS_EN_SATA_REG = (16), /* Enable SATA Register Set*/
+   PCS_EN_PORT_XMT_START   = (12), /* Enable Port Transmit*/
+   PCS_EN_PORT_XMT_START2  = (8),  /* For 6480*/
   PCS_SATA_RETRY  = (1U  8),/* retry ctl FIS on R_ERR */
   PCS_RSP_RX_EN   = (1U  7),/* raw response rx */
   PCS_SELF_CLEAR  = (1U  5),/* self-clearing int mode */
   PCS_FIS_RX_EN   = (1U  4),/* FIS rx enable */
   PCS_CMD_STOP_ERR= (1U  3),/* cmd stop-on-err enable */
-   PCS_CMD_RST = (1U  2),/* reset cmd issue */
+   PCS_CMD_RST = (1U  1),/* reset cmd issue */
   PCS_CMD_EN  = (1U  0),/* enable cmd issue */
+
+   /*Port n Attached Device Info*/
+   PORT_DEV_SSP_TRGT   = (1U  19),
+   PORT_DEV_SMP_TRGT   = (1U  18),
+   PORT_DEV_STP_TRGT   = (1U  17),
+   PORT_DEV_SSP_INIT   = (1U  11),
+   PORT_DEV_SMP_INIT   = (1U  10),
+   PORT_DEV_STP_INIT   = (1U  9),
+   PORT_PHY_ID_MASK= (0xFFU  24),
+   PORT_DEV_TRGT_MASK  = (0x7U  17),
+   PORT_DEV_INIT_MASK  = (0x7U  9),
+   PORT_DEV_TYPE_MASK  = (0x7U  0),
+
+   /*Port n PHY Status*/
+   PHY_RDY = (1U  2),
+   PHY_DW_SYNC = (1U  1),
+   PHY_OOB_DTCTD   = (1U  0),


to be consistent, add spaces after /* and before */




 struct mvs_port {
   struct asd_sas_port sas_port;
+   u8  taskfileset;
 };

 struct mvs_phy {
   struct mvs_port *port;
   struct asd_sas_phy  sas_phy;
+  

Re: Actually using the sg table/chain code

2008-01-15 Thread Jeff Garzik

James Bottomley wrote:

if (BLK_DEF_MAX_SECTORS  max_sectors)
q-max_hw_sectors = q-max_sectors = max_sectors;
else {
q-max_sectors = BLK_DEF_MAX_SECTORS;
q-max_hw_sectors = max_sectors;
}
}

So it imposes a maximum possible setting of BLK_DEF_MAX_SECTORS which is
defined in blkdev.h to  1024, thus also forcing the queue down to
128 scatterlist entries.

Once I raised this limit as well, I was able to transfer over 128
scatterlist elements during benchmark test runs of normal I/O (actually
kernel compiles seem best, they hit 608 scatterlist entries).

So my question, is there any reason not to raise this limit to something
large (like 65536) or even eliminate it altogether?


ISTR a thread long ago, perhaps including Andrea A (as well as Jens), 
where 1024 sectors was arrived upon as a reasonable balance between 
tying up gobs of VM memory on a single command (multiplied, then, across 
N commands), and getting decent per-command throughput.


Jens probably recalls better than I...  but I'm pretty sure that the 
1024 limit played into being nice with the VM somehow.


Jeff


-
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: sata_nv does not function in kernel 2.6.20.21

2008-01-09 Thread Jeff Garzik

Matthew Hall wrote:

ACPI: PCI Interrupt Link [LT3D] enabled at IRQ 46
ACPI: PCI Interrupt :80:07.0[A] - Link [LT3D] - GSI 46 (level,
low) - IRQ 46
sata_nv :80:07.0: Using ADMA mode
PCI: Unable to reserve mem region #6:[EMAIL PROTECTED] for device
:80:07.0
ACPI: PCI interrupt for device :80:07.0 disabled
sata_nv: probe of :80:07.0 failed with error -16
ACPI: PCI Interrupt Link [LT2E] enabled at IRQ 45
ACPI: PCI Interrupt :80:08.0[A] - Link [LT2E] - GSI 45 (level,
low) - IRQ 45
sata_nv :80:08.0: Using ADMA mode
PCI: Unable to reserve mem region #6:[EMAIL PROTECTED] for device
:80:08.0
ACPI: PCI interrupt for device :80:08.0 disabled
sata_nv: probe of :80:08.0 failed with error -16


Error -16 is EBUSY, which causes the driver load to fail due to the 
Unable to reserve mem region message.


This means that the sata_nv driver needed to use PCI BAR 6, but was 
unable to for some reason.  Given that sata_nv uses devres like other 
libata drivers, IMO the likely cause is outside the ATA subsystem (PCI? 
ACPI?).


One workaround to try is setting sata_nv module option 'adma' to zero 
(0), in the hopes that it ignores that final region and work anyway.


Jeff



-
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: AHCI finds disks; no /dev/sd inodes bound?

2008-01-09 Thread Jeff Garzik

Matthew Wilcox wrote:

On Wed, Jan 09, 2008 at 12:36:26PM -0800, Jon Watte wrote:

Stefan Richter wrote:

Those systems (servers) typically have enough memory to tolerate a few
extra KB of code without problems.  In fact most PCs these days have.
   

It would be a stupid solution nevertheless.

(We also don't select EXT3.)
 
Not selecting EXT3 is a little more understandable, because there are 
many options -- cramfs, xfs, reiserfs, etc, depending on target. 
However, the number of people who DO want SATA support but DO NOT want 
SD block device support is... uh.. anyone?


Solving the problem bigger and better, by factoring SD into a 
mid-level menu, and maybe calling it something non-SCSI, would probably 
be even better. And even more work.


OK, how about this?

config BLK_DEV_ATA_SD
tristate ATA disc support
select BLK_DEV_SD

config BLK_DEV_ATA_SR
tristate ATA CDROM support
select BLK_DEV_SR

Help text left as an exercise for the reader.


Speaking as one who strongly objects to CONFIG_ATA unconditionally 
selecting SD or SR...


I think you are on the right track.  IMO a more clean and future-proof 
solution would be


config ATA_PROT_ATA
select SD

config ATA_PROT_ATAPI (or ATAPI_PROT)
select SR

But that's just an example.  Maybe the choices could be ATA_DISK and 
ATA_EVERYTHING_ELSE.  :)  The main points are


* its not just CDROM support, but floppy/tape/etc. too for ATAPI

* do not include sd or sr in the config name, it should be more 
generic, because SCSI will eventually be an optional module for libata. 
 When libata talks to straight blkdev, we don't want this same problem 
to resurface!


Jeff (very tired, so pardon any incoherence)






-
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] Marvell 6440 SAS/SATA driver (draft)

2008-01-09 Thread Jeff Garzik

Ke Wei wrote:

The 88SE6440 driver :

The driver is based on bare code from Jeff Garzik. And it can work
under linux kernel 2.6.23.
By far, Can discover and find SAS HDD, but SATA is currently
unsupported. Command queue depth can be above 1.
Most error handling, and some phy handling code is notably missing.


contains the following updates:

--- mvsas_orig.c2007-12-06 19:21:32.0 -0500
+++ mvsas.c 2008-01-09 04:53:14.0 -0500


Fantastic!  I'm delighted to see this is moving, and thanks much for 
getting the driver to that critical it works milestone.


We should note for the linux-scsi audience and potential testers that 
the base driver upon which this is based is available on the sas branch of


git://git.kernel.org:/pub/scm/linux/kernel/git/jgarzik/misc-2.6.git

I will give some substantive comments tomorrow (just got back from long 
trip).  Two quick suggestions:


1) To make it easier for people to review and test the driver, I would 
suggest posting a diff against 2.6.24-rc7 (or 2.6.23), ignoring my 
original code.  Thus, it would result in a patch


2) In future patches, include a Signed-off-by: line when you are ready 
for your patch to be included in the kernel.


Thanks!

Jeff


-
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] Marvell 6440 SAS/SATA driver (draft)

2008-01-09 Thread Jeff Garzik

Jeff Garzik wrote:
1) To make it easier for people to review and test the driver, I would 
suggest posting a diff against 2.6.24-rc7 (or 2.6.23), ignoring my 
original code.  Thus, it would result in a patch


Er, that sentence was incomplete.  Continuing...


Thus it would result in a patch that adds a new file 
drivers/scsi/mvsas.c to the 2.6.24-rc7 kernel, and modifies 
drivers/scsi/Makefile and drivers/scsi/Kconfig to enable this new driver.


That is the format that developers and users are most familiar with, 
when reviewing (and testing) a new driver.


But of course this is a draft, so these guidelines are certainly loose...

Jeff



-
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] libata: eliminate the home grown dma padding in favour of that provided by the block layer

2007-12-31 Thread Jeff Garzik

James Bottomley wrote:

ATA requires that all DMA transfers begin and end on word boundaries.
Because of this, a large amount of machinery grew up in ide to adjust
scatterlists on this basis.  However, as of 2.5, the block layer has a
dma_alignment variable which ensures both the beginning and length of a
DMA transfer are aligned on the dma_alignment boundary.  Although the
block layer does adjust the beginning of the transfer to ensure this
happens, it doesn't actually adjust the length, it merely makes sure
that space is allocated for transfers beyond the declared length.  The
upshot of this is that scatterlists may be padded to any size between
the actual length and the length adjusted to the dma_alignment safely
knowing that memory is allocated in this region.

Right at the moment, SCSI takes the default dma_aligment which is on a
512 byte boundary.  Note that this aligment only applies to transfers
coming in from user space.  However, since all kernel allocations are
automatically aligned on a minimum of 32 byte boundaries, it is safe to
adjust them in this manner as well.

Signed-off-by: James Bottomley [EMAIL PROTECTED]

---

This also fixes a current panic in libsas with SATAPI devices.  I was
trying to trace a bad interaction between the libata padding and the new
sglist code which was the root cause, and ended up concluding that the
whole libata padding thing was redundant.

In a future improvement, I think we can relax SCSI dma_alignemnt (it's
causing almost every user space command to be copied instead of directly
passed through) and allow devices and transports to build up their own
requirements instead.


Initial read:  ACK, with thanks.  I'll queue this into libata#upstream, 
unless you have other suggestions.


This is definitely the sort of thing that low-level drivers (and their 
helper libs, e.g. libata) should not need to do.


Jeff




-
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] libsas: Don't issue commands to devices that have been hot-removed.

2007-12-04 Thread Jeff Garzik

Darrick J. Wong wrote:

Hrm... does this patch help?  You'll get a bunch of ATA/SAS disk errors
printed to the screen if you yank the disk, but at least libsas won't
get stuck waiting for the cache-flush commands to time out.
---
sd will get hung up issuing commands to flush write cache if a SAS device
is unplugged without warning.  Change libsas to reject commands to domain
devices that have already gone away.

Signed-off-by: Darrick J. Wong [EMAIL PROTECTED]
---

 drivers/scsi/libsas/sas_ata.c   |4 
 drivers/scsi/libsas/sas_expander.c  |3 +++
 drivers/scsi/libsas/sas_port.c  |2 ++
 drivers/scsi/libsas/sas_scsi_host.c |7 +++
 include/scsi/libsas.h   |1 +
 5 files changed, 17 insertions(+), 0 deletions(-)


Seems sane...



diff --git a/drivers/scsi/libsas/sas_ata.c b/drivers/scsi/libsas/sas_ata.c
index 0829b55..f5e5213 100644
--- a/drivers/scsi/libsas/sas_ata.c
+++ b/drivers/scsi/libsas/sas_ata.c
@@ -161,6 +161,10 @@ static unsigned int sas_ata_qc_issue(struct ata_queued_cmd 
*qc)
unsigned int num = 0;
unsigned int xfer = 0;
 
+	/* If the device fell off, no sense in issuing commands */

+   if (dev-gone)
+   return AC_ERR_SYSTEM;
+
task = sas_alloc_task(GFP_ATOMIC);
if (!task)
return AC_ERR_SYSTEM;


As an aside, issues like this really really imply a need to move libsas 
away from the old libata EH stuff (like brking did with ipr, in patches).


Jeff



-
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] libsas: Don't issue commands to devices that have been hot-removed.

2007-12-04 Thread Jeff Garzik

Darrick J. Wong wrote:

On Tue, Dec 04, 2007 at 05:48:33PM -0500, Jeff Garzik wrote:

As an aside, issues like this really really imply a need to move libsas 
away from the old libata EH stuff (like brking did with ipr, in patches).


Hm... does the new libata EH handle the case of device was
unplugged, don't bother trying to send any more commands?

In general, I agree that sas-ata should adopt the new EH.
Unfortunately, I believe the old way of sas-ata configuring ATA ports is
somehow not compatible with the new EH stuff and causes a crash during
the device probe with my patch to move sas-ata to the new EH.  If I
apply the patch that migrates sas-ata to use brking's latest ata-sas
configuration mechanism (the one that creates real ata_hosts), I see
(a) lots and lots of ATA hosts getting created (one per ATA port;
possibly undesirable if you've a SAS topology with a lot of SATA disks)
and (b) NCQ disks don't seem to work if you unplug the disk and plug
it back in (unless NCQ is disabled entirely).  Jeff, by any chance have
you tried plugging SATA devices into your SAS controllers?


aic94xx yes, bcm and mv no.

Will take a look though...



James Bottomley wondered if it would be easier to have sas-ata call only
into the parts of libata that convert SCSI commands to ATA taskfiles,
though I'm unsure how many wormy cans that would open.


You want more than that.

You want to make sure libata is the place for knowledge about weird ATA 
devices, SATA quirks, ATA device error handling (to be distinguished 
from ATA /link/ error handling), and other areas.


That stuff shouldn't be duplicated, and you /really/ do not want to 
re-learn all those lessons all over again ;-)


Jeff



-
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: aic94xx or libsas crash on X7DB3 supermicro with enclosure and sata drives

2007-12-03 Thread Jeff Garzik

Darrick J. Wong wrote:

On Mon, Dec 03, 2007 at 05:09:54PM +0100, Krzysztof B??aszkowski wrote:
I noticed also another failure when i removed a drive. The event was not 
notified by anything (ie the block device and corresponding sg were 
registered) so i run dd on this truly virtual drive.


dd reached D state (as well as scsi_wq) . i think it shouldn't happen no 
matter it was AIC failure or LSI expander failure.


It's wireless! ;)

Seriously, though, it's a good idea to tell the kernel that you're
about to unplug a disk before actually doing it:

echo 1  /sys/block/sdX/device/delete

This way, the kernel can tell the disk to flush its caches long before
power actually gets removed.  Otherwise, the device removal code can
get hung up just like you observed, and whatever's in the write cache
may or may not actually get written to the media.



What you say is quite true about write cache -- you can clearly lose 
some data by hot-unplugging a device.  And there's nothing we can do 
about that.


But what do you mean by device removal code can get hung up?  That 
sounds like a bug we should fix.


Jeff


-
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [RFC 0/3] [SCSI/libata] libata EH conversion for ipr SAS

2007-11-23 Thread Jeff Garzik

Brian King wrote:

The following three patches convert ipr to use the new libata EH APIs.
In the process of doing this, I first looked into implementing this
in a similar manner to how libata SAS is done today, which is hooking
into target_alloc/target_destroy to allocate/delete sata ports. While
I was able to get this working after writing my own eh_strategy_handler,
I was doubtful this was the best long term solution. One problem with this
implementation I didn't solve was the fact that libata now invokes EH
for each and every error received. For some devices, such as optical
devices, each not ready response received during a media reload would
result in all the attached SAS devices getting quiesced as well.

My second approach is the attached patch set. In this series I have
created a new libata API which can be used by SAS LLDDs. It introduces
an ata_sas_rphy device object which is created/destroyed by the following API:

ata_sas_rphy_alloc
ata_sas_rphy_add
ata_sas_rphy_delete

When using this API in ipr, I made ipr's scsi_host the parent device of the
SATA rphy. The SATA rphy is then the parent of the allocated scsi_hosts. This
means that each SATA rphy in the SAS topology will have its own scsi_host, 
making
SAS *much* more like all the SATA LLDDs in how it uses libata.

The only issue I ran into with this implementation is that since each SATA
port has its own scsi_host, the adapter cannot rely on scsi core to manage
any LLDD or adapter imposed queue depth. To solve this I added some code to
ipr. Longer term, block layer queue groups might be another way to do this.

I'm still polishing this up, but it is up and running and seems to work with
what testing I've done so far.


I'm generally happy with this, though I am curious what Tejun thinks as 
well.


Once everybody is happy, I think we should collect libata ACKs and then 
push this via the SCSI maintainership route.  That would libsas work in 
parallel, with perhaps in situ tweaks and fixes as the implementation is 
fleshed out.


Jeff



-
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH] SCSI: Fix bugs and canonicalize irq handler usage in NCR5380 drivers

2007-11-11 Thread Jeff Garzik
* Always pass the same value to free_irq() that we pass to
  request_irq().  This fixes several bugs.

* Always call NCR5380_intr() with 'irq' and 'dev_id' arguments.

  Note, scsi_falcon_intr() is the only case now where dev_id is not the
  scsi_host.

* Always pass Scsi_Host to request_irq().  For most cases, the drivers
  already did so, and I merely neated the source code line.  In other
  cases, either NULL or a non-sensical value was passed, verified to be
  unused, then changed to be Scsi_Host in anticipation of the future.

In addition to the bugs fixes, this change makes the interface usage
consistent, which in turn enables the possibility of directly
referencing Scsi_Host from all NCR5380_intr() invocations.

Signed-off-by: Jeff Garzik [EMAIL PROTECTED]
---
Resend #1.  Originally sent on Oct 26.

Please send upstream for 2.6.24-rc in some form, this fixes obvious
free_irq() problems that prevent irq release.


 drivers/scsi/atari_scsi.c|   10 +-
 drivers/scsi/dtc.c   |5 +++--
 drivers/scsi/g_NCR5380.c |5 +++--
 drivers/scsi/mac_scsi.c  |4 ++--
 drivers/scsi/pas16.c |5 +++--
 drivers/scsi/sun3_scsi.c |4 ++--
 drivers/scsi/sun3_scsi_vme.c |4 ++--
 drivers/scsi/t128.c  |5 +++--
 8 files changed, 23 insertions(+), 19 deletions(-)

diff --git a/drivers/scsi/atari_scsi.c b/drivers/scsi/atari_scsi.c
index 6f8403b..f5732d8 100644
--- a/drivers/scsi/atari_scsi.c
+++ b/drivers/scsi/atari_scsi.c
@@ -393,7 +393,7 @@ static irqreturn_t scsi_tt_intr(int irq, void *dummy)
 
 #endif /* REAL_DMA */
 
-   NCR5380_intr(0, 0);
+   NCR5380_intr(irq, dummy);
 
 #if 0
/* To be sure the int is not masked */
@@ -458,7 +458,7 @@ static irqreturn_t scsi_falcon_intr(int irq, void *dummy)
 
 #endif /* REAL_DMA */
 
-   NCR5380_intr(0, 0);
+   NCR5380_intr(irq, dummy);
return IRQ_HANDLED;
 }
 
@@ -684,7 +684,7 @@ int atari_scsi_detect(struct scsi_host_template *host)
 * interrupt after having cleared the pending flag for the DMA
 * interrupt. */
if (request_irq(IRQ_TT_MFP_SCSI, scsi_tt_intr, IRQ_TYPE_SLOW,
-SCSI NCR5380, scsi_tt_intr)) {
+SCSI NCR5380, instance)) {
printk(KERN_ERR atari_scsi_detect: cannot allocate irq 
%d, aborting,IRQ_TT_MFP_SCSI);
scsi_unregister(atari_scsi_host);
atari_stram_free(atari_dma_buffer);
@@ -701,7 +701,7 @@ int atari_scsi_detect(struct scsi_host_template *host)
 IRQ_TYPE_PRIO, Hades DMA emulator,
 hades_dma_emulator)) {
printk(KERN_ERR atari_scsi_detect: cannot 
allocate irq %d, aborting (MACH_IS_HADES),IRQ_AUTO_2);
-   free_irq(IRQ_TT_MFP_SCSI, scsi_tt_intr);
+   free_irq(IRQ_TT_MFP_SCSI, instance);
scsi_unregister(atari_scsi_host);
atari_stram_free(atari_dma_buffer);
atari_dma_buffer = 0;
@@ -761,7 +761,7 @@ int atari_scsi_detect(struct scsi_host_template *host)
 int atari_scsi_release(struct Scsi_Host *sh)
 {
if (IS_A_TT())
-   free_irq(IRQ_TT_MFP_SCSI, scsi_tt_intr);
+   free_irq(IRQ_TT_MFP_SCSI, sh);
if (atari_dma_buffer)
atari_stram_free(atari_dma_buffer);
return 1;
diff --git a/drivers/scsi/dtc.c b/drivers/scsi/dtc.c
index 2596165..c2677ba 100644
--- a/drivers/scsi/dtc.c
+++ b/drivers/scsi/dtc.c
@@ -277,7 +277,8 @@ found:
/* With interrupts enabled, it will sometimes hang when doing 
heavy
 * reads. So better not enable them until I finger it out. */
if (instance-irq != SCSI_IRQ_NONE)
-   if (request_irq(instance-irq, dtc_intr, IRQF_DISABLED, 
dtc, instance)) {
+   if (request_irq(instance-irq, dtc_intr, IRQF_DISABLED,
+   dtc, instance)) {
printk(KERN_ERR scsi%d : IRQ%d not free, 
interrupts disabled\n, instance-host_no, instance-irq);
instance-irq = SCSI_IRQ_NONE;
}
@@ -459,7 +460,7 @@ static int dtc_release(struct Scsi_Host *shost)
NCR5380_local_declare();
NCR5380_setup(shost);
if (shost-irq)
-   free_irq(shost-irq, NULL);
+   free_irq(shost-irq, shost);
NCR5380_exit(shost);
if (shost-io_port  shost-n_io_port)
release_region(shost-io_port, shost-n_io_port);
diff --git a/drivers/scsi/g_NCR5380.c b/drivers/scsi/g_NCR5380.c
index 607336f..75585a5 100644
--- a/drivers/scsi/g_NCR5380.c
+++ b/drivers/scsi/g_NCR5380.c
@@ -460,7 +460,8 @@ int __init generic_NCR5380_detect(struct scsi_host_template

Re: [PATCH 1/2] libsas: Convert sas_proto users to sas_protocol

2007-11-05 Thread Jeff Garzik

Darrick J. Wong wrote:

sparse complains about the mixing of enums in libsas.  Since the
underlying numeric values of both enums are the same, combine them
to get rid of the warning.

Signed-off-by: Darrick J. Wong [EMAIL PROTECTED]
---

 drivers/scsi/aic94xx/aic94xx_dev.c  |6 +++---
 drivers/scsi/aic94xx/aic94xx_dump.c |4 ++--
 drivers/scsi/aic94xx/aic94xx_hwi.c  |2 +-
 drivers/scsi/aic94xx/aic94xx_scb.c  |6 +++---
 drivers/scsi/aic94xx/aic94xx_task.c |   30 +++---
 drivers/scsi/aic94xx/aic94xx_tmf.c  |   12 ++--
 drivers/scsi/libsas/sas_discover.c  |2 +-
 drivers/scsi/libsas/sas_expander.c  |6 +++---
 drivers/scsi/libsas/sas_internal.h  |2 +-
 include/scsi/libsas.h   |   18 +-
 include/scsi/sas.h  |   13 ++---
 include/scsi/scsi_transport_sas.h   |8 +---
 12 files changed, 51 insertions(+), 58 deletions(-)


ACK patches 1-2


-
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [git patches] Add and use media change notification

2007-11-05 Thread Jeff Garzik

Linus Torvalds wrote:


On Sun, 4 Nov 2007, Jeff Garzik wrote:

The end to CD-ROM polling...  newer SATA ATAPI hardware will emit
'asynchronous notification' events when media is changed.  This adds
support.


I *really* didn't want to pull this.

Not only is it after the -rc1 period, but I also think you pushed this ina 
really offensive manner, and I don't like how you and James have made this 
whole thing personal. You guys need to sort it out, and there is no way 
you can blame James for all your troubles, since I've heard the same kind 
of complaints about every single maintainer out there (including you) 
about some driver or other infrastructure issue.


So I'm unhappy about pulling this.

That said, I did finally decide to just pull it. Partly because the 
concept apparently has been in -mm for a while anyway (even if the final 
patch has not - but the patch itself isn't that large, I'd worry more 
about thngs like certain hardware simply not doing things right), but 
mostly because I hate it when others hold up driver features, and I 
decided that in this case this really is something that is better done 
earlier rather than later, to get exposure as soon as possible.


But I really think you need to lay off James, and help him rather than 
make every single complaint a big flame-war!


Please, Jeff?


Fair enough...

Jeff



-
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[git patches] Add and use media change notification

2007-11-04 Thread Jeff Garzik

The end to CD-ROM polling...  newer SATA ATAPI hardware will emit
'asynchronous notification' events when media is changed.  This adds
support.

The libata change /using/ the infrastructure is tiny, encompassed
entirely in the first file patched, drivers/ata/libata-scsi.c.

Been working since August (and in -mm), but has gone through various
revisions to try and make SCSI maintainer happy.  Every step of the way,
it was upstream-mergeable in my opinion.

Everyone agrees this should go upstream; indeed, the key change from
me [SCSI] add asynchronous event notification API is even found
in jejb/scsi-misc-2.6.git (db0e2c76011f25f22f71e9c0d69ce95d15f21e8a).

There are minor disagreements with regards to userspace API, with a
more complex solve all your problems change currently being discussed,
blocked behind sysfs changes that don't exist yet (and are still being
discussed).

I am ready and waiting to address further feedback -- each feedback
I received so far was addressed in under 24 hours -- but let us not
delay this anymore.

Changes can and should be iterated upstream... that is what the bug fix
process is for...  getting final feedback and polish on working, testing
changes that have been waiting in the wings for months.

Please pull from 'an' branch of
master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev.git an

to receive the following updates:

 drivers/ata/libata-scsi.c  |8 ++-
 drivers/scsi/scsi_lib.c|  136 
 drivers/scsi/scsi_scan.c   |3 +
 drivers/scsi/scsi_sysfs.c  |   47 +++
 include/scsi/scsi_device.h |   25 
 5 files changed, 216 insertions(+), 3 deletions(-)


commit f26792d5c63344e14540ced4b19deb29e360bb8d
Author: Jeff Garzik [EMAIL PROTECTED]
Date:   Mon Oct 29 17:18:39 2007 -0400

[libata] Utilize new SCSI event infrastructure

An end to CD-ROM polling (if you have a device that supports AN)...
hooray!

Signed-off-by: Jeff Garzik [EMAIL PROTECTED]

commit a341cd0f6a0fde1f85fec9aa8f81f824ea4a3f92
Author: Jeff Garzik [EMAIL PROTECTED]
Date:   Mon Oct 29 17:15:22 2007 -0400

SCSI: add asynchronous event notification API

Originally based on a patch by Kristen Carlson Accardi @ Intel.
Copious input from James Bottomley.

Signed-off-by: Jeff Garzik [EMAIL PROTECTED]

diff --git a/drivers/ata/libata-scsi.c b/drivers/ata/libata-scsi.c
index 245057d..94144ed 100644
--- a/drivers/ata/libata-scsi.c
+++ b/drivers/ata/libata-scsi.c
@@ -841,6 +841,9 @@ static void ata_scsi_dev_config(struct scsi_device *sdev,
blk_queue_max_hw_segments(q, q-max_hw_segments - 1);
}
 
+   if (dev-flags  ATA_DFLAG_AN)
+   set_bit(SDEV_EVT_MEDIA_CHANGE, sdev-supported_events);
+
if (dev-flags  ATA_DFLAG_NCQ) {
int depth;
 
@@ -3296,10 +3299,9 @@ static void ata_scsi_handle_link_detach(struct ata_link 
*link)
  */
 void ata_scsi_media_change_notify(struct ata_device *dev)
 {
-#ifdef OTHER_AN_PATCHES_HAVE_BEEN_APPLIED
if (dev-sdev)
-   scsi_device_event_notify(dev-sdev, SDEV_MEDIA_CHANGE);
-#endif
+   sdev_evt_send_simple(dev-sdev, SDEV_EVT_MEDIA_CHANGE,
+GFP_ATOMIC);
 }
 
 /**
diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c
index 88de771..0e81e4c 100644
--- a/drivers/scsi/scsi_lib.c
+++ b/drivers/scsi/scsi_lib.c
@@ -2115,6 +2115,142 @@ scsi_device_set_state(struct scsi_device *sdev, enum 
scsi_device_state state)
 EXPORT_SYMBOL(scsi_device_set_state);
 
 /**
+ * sdev_evt_emit - emit a single SCSI device uevent
+ * @sdev: associated SCSI device
+ * @evt: event to emit
+ *
+ * Send a single uevent (scsi_event) to the associated scsi_device.
+ */
+static void scsi_evt_emit(struct scsi_device *sdev, struct scsi_event *evt)
+{
+   int idx = 0;
+   char *envp[3];
+
+   switch (evt-evt_type) {
+   case SDEV_EVT_MEDIA_CHANGE:
+   envp[idx++] = SDEV_MEDIA_CHANGE=1;
+   break;
+
+   default:
+   /* do nothing */
+   break;
+   }
+
+   envp[idx++] = NULL;
+
+   kobject_uevent_env(sdev-sdev_gendev.kobj, KOBJ_CHANGE, envp);
+}
+
+/**
+ * sdev_evt_thread - send a uevent for each scsi event
+ * @work: work struct for scsi_device
+ *
+ * Dispatch queued events to their associated scsi_device kobjects
+ * as uevents.
+ */
+void scsi_evt_thread(struct work_struct *work)
+{
+   struct scsi_device *sdev;
+   LIST_HEAD(event_list);
+
+   sdev = container_of(work, struct scsi_device, event_work);
+
+   while (1) {
+   struct scsi_event *evt;
+   struct list_head *this, *tmp;
+   unsigned long flags;
+
+   spin_lock_irqsave(sdev-list_lock, flags);
+   list_splice_init(sdev-event_list, event_list);
+   spin_unlock_irqrestore(sdev-list_lock, flags

Re: [PATCH] scsi menu: move RAID transport class to Transports menu

2007-11-04 Thread Jeff Garzik

Matthew Wilcox wrote:

On Sun, Nov 04, 2007 at 10:44:23AM -0800, Randy Dunlap wrote:

From: Randy Dunlap [EMAIL PROTECTED]

Move RAID_ATTRS into the SCSI Transports sub-menu.
Fix some help text whitespace in Transports.


Ummm ... RAID isn't really a SCSI property, is it?  How about putting it
in block/Kconfig?


Agreed.

IMO would be nice to emphasize that the RAID transport attributes are 
not necessarily SCSI-specific.


Jeff



-
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v2] block: move RAID transport class to BLOCK menu

2007-11-04 Thread Jeff Garzik

Randy Dunlap wrote:

Jeff Garzik wrote:

Randy Dunlap wrote:

From: Randy Dunlap [EMAIL PROTECTED]

Move RAID class configuration to the BLOCK menu since it is not
SCSI-specific.

Signed-off-by: Randy Dunlap [EMAIL PROTECTED]
---
block/Kconfig|5 +
drivers/scsi/Kconfig |7 ---
2 files changed, 5 insertions(+), 7 deletions(-)


ACK

Though IMO we should move the code, too.


OK, I'll do that and resend.


Well, I'm only one voice...  might wait to see if others agree first :)

Jeff



-
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


  1   2   3   4   5   >