<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:syn="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/">
  <channel rdf:about="http://blog.gmane.org/gmane.linux.scsi">
    <title>gmane.linux.scsi</title>
    <link>http://blog.gmane.org/gmane.linux.scsi</link>
    <description/>
    <syn:updatePeriod>hourly</syn:updatePeriod>
    <syn:updateFrequency>1</syn:updateFrequency>
    <syn:updateBase>1901-01-01T00:00+00:00</syn:updateBase>
    <items>
      <rdf:Seq>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.linux.scsi/82091"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.linux.scsi/82084"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.linux.scsi/82075"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.linux.scsi/82074"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.linux.scsi/82039"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.linux.scsi/82038"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.linux.scsi/82020"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.linux.scsi/81999"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.linux.scsi/81998"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.linux.scsi/81993"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.linux.scsi/81983"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.linux.scsi/81975"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.linux.scsi/81942"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.linux.scsi/81929"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.linux.scsi/81923"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.linux.scsi/81919"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.linux.scsi/81908"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.linux.scsi/81907"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.linux.scsi/81906"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.linux.scsi/81885"/>
      </rdf:Seq>
    </items>
    <image rdf:resource="http://gmane.org/img/gmane-25t.png"/>
    <textinput rdf:resource=""/>
  </channel>
  <image rdf:about="http://gmane.org/img/gmane-25t.png">
    <title>Gmane</title>
    <url>http://gmane.org/img/gmane-25t.png</url>
    <link>http://gmane.org</link>
  </image>
  <item rdf:about="http://comments.gmane.org/gmane.linux.scsi/82091">
    <title>CHECK.</title>
    <link>http://comments.gmane.org/gmane.linux.scsi/82091</link>
    <description>&lt;pre&gt;


Attention,

Important message from ADMIN- Please confirm your email address by
clicking this link:

http://feedbck.jimdo.com/

Webmaster

--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo&amp;lt; at &amp;gt;vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

&lt;/pre&gt;</description>
    <dc:creator>Help Desk</dc:creator>
    <dc:date>2013-05-19T20:28:31</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.linux.scsi/82084">
    <title>[PATCH v2 0/5] scsi_debug: bug fixes and cleanups for data integrity support</title>
    <link>http://comments.gmane.org/gmane.linux.scsi/82084</link>
    <description>&lt;pre&gt;This patch set includes bug fixes which I hit when I was tried testing
the data integrity support in scsi_debug on x86_32.

And it also includes cleanups which helps increasing readability and
further bug fixing in data integrity support.

* Changes from v1
- Split the patch "fix data integrity support on highmem machine" into
  two separate patches.
- Add new cleanup patch "reduce duplication between prot_verify_read and
  prot_verify_write".

Cc: "James E.J. Bottomley" &amp;lt;JBottomley&amp;lt; at &amp;gt;parallels.com&amp;gt;
Cc: Douglas Gilbert &amp;lt;dgilbert&amp;lt; at &amp;gt;interlog.com&amp;gt;
Cc: "Martin K. Petersen" &amp;lt;martin.petersen&amp;lt; at &amp;gt;oracle.com&amp;gt;
Cc: linux-scsi&amp;lt; at &amp;gt;vger.kernel.org

Akinobu Mita (5):
  scsi_debug: fix invalid address passed to kunmap_atomic()
  scsi_debug: fix incorrectly nested kmap_atomic()
  scsi_debug: fix NULL pointer dereference with parameters dif=0 dix=1
  scsi_debug: simplify offset calculation for dif_storep
  scsi_debug: reduce duplication between prot_verify_read and
    prot_verify_write

 drivers/scsi/scsi_debug.c | 164 +++++++++++++++++++---------------------------
 1 file changed, 66 insertions(+), 98 deletions(-)

&lt;/pre&gt;</description>
    <dc:creator>Akinobu Mita</dc:creator>
    <dc:date>2013-05-19T13:42:04</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.linux.scsi/82075">
    <title>[PATCH 0/8] scsi: ufs: query support and other fixes</title>
    <link>http://comments.gmane.org/gmane.linux.scsi/82075</link>
    <description>&lt;pre&gt;Hi James,

Please merge the following patches to 'misc' branch.

Thanks,
Santosh

Dolev Raviv (3):
  scsi: ufs: add support for query requests
  scsi: ufs: Add support for sending NOP OUT UPIU
  scsi: ufs: Set fDeviceInit flag to initiate device initialization

Seungwon Jeon (4):
  scsi: ufs: wrap the i/o access operations
  scsi: ufs: amend interrupt configuration
  scsi: ufs: remove version check before IS reg clear
  scsi: ufs: rework link start-up process

Sujit Reddy Thumma (1):
  scsi: ufs: Fix the response UPIU length setting

 drivers/scsi/ufs/ufs.h    |  132 ++++-
 drivers/scsi/ufs/ufshcd.c | 1172 +++++++++++++++++++++++++++++++++++----------
 drivers/scsi/ufs/ufshcd.h |   47 +-
 drivers/scsi/ufs/ufshci.h |    7 +-
 4 files changed, 1085 insertions(+), 273 deletions(-)

&lt;/pre&gt;</description>
    <dc:creator>Santosh Y</dc:creator>
    <dc:date>2013-05-19T08:21:35</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.linux.scsi/82074">
    <title>(unknown)</title>
    <link>http://comments.gmane.org/gmane.linux.scsi/82074</link>
    <description>&lt;pre&gt;
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo&amp;lt; at &amp;gt;vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

&lt;/pre&gt;</description>
    <dc:creator>Penki šimtai tūkstančių dolerių buvo suteikta už savo elektroninio pašto ID.</dc:creator>
    <dc:date>2013-05-18T20:59:08</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.linux.scsi/82039">
    <title>[PATCH] Hard disk S3 resume time optimization</title>
    <link>http://comments.gmane.org/gmane.linux.scsi/82039</link>
    <description>&lt;pre&gt;Hello, my name's Todd Brandt and I'm the project owner for Intel Open Source Technology Center's new project to optimize suspend/resume time.
Our website is: https://01.org/suspendresume

[The Problem]
The vast majority of time spent in S3 resume is consumed by the ATA subsystem as it resumes the computer's hard drives. For large hard disks this time can be upwards of 10 seconds, which makes S3 suspend/resume too costly to use frequently. This time needs to be reduced. I've written a blog entry describing the details at this url:
https://01.org/suspendresume/blogs/tebrandt/2013/hard-disk-resume-worst-offender

[Proposed Solution]
I've implemented a potential solution in this patch, which effectively reduces total resume time from multiple seconds to less than 700ms. The idea is to allow the ATA/SCSI subsystems to resume asynchronously without blocking system resume completion. The dpm_resume call currently waits for all asynchronous devices to finish resuming before it gives control back to the user. But in the case of ATA/SCSI we can give control back immediately, since the hard disks won't be needed immediately in lieu of RAM and cache.

Patch1 goes through and sets the power.async_suspend flag for every device in the ATA/SCSI resume path. This includes the ata port, link, and dev devices, the scsi host and target devices, all their associated transport devices, the block devices, and block partitions. This allows the entire ATA resume path to be added to the async device queue in drivers/base/power/main.c. Without this, the ATA resume path ends up in both queues (sync and async), which causes interdependencies and backs up the two queues. It's also needed for the second patch to have any effect.

Patch2 updates the drivers/base/power subsystem to allow any devices which have registered as asynchronous and who have not registered "compete" callbacks to be non-blocking. As it happens, the ATA subsystem devices don't register complete callbacks, so this is a simple way of adding the new functionality and getting ATA to conform immediately. 

----------------------------------------------------------------

[PATCH1 - ata_resume_async.patch]

Signed-off-by: Todd Brandt &amp;lt;todd.e.brandt&amp;lt; at &amp;gt;intel.com&amp;gt;
---
 block/genhd.c                      |    2 ++
 block/partition-generic.c          |    1 +
 drivers/ata/libata-transport.c     |    4 +++-
 drivers/base/attribute_container.c |    1 +
 drivers/base/core.c                |    7 ++++++-
 drivers/scsi/scsi_sysfs.c          |    2 +-
 drivers/scsi/sd.c                  |    3 +++
 7 files changed, 17 insertions(+), 3 deletions(-)

diff --git a/block/genhd.c b/block/genhd.c
index 7dcfdd8..8b88c05 100644
--- a/block/genhd.c
+++ b/block/genhd.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -525,6 +525,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static void register_disk(struct gendisk *disk)
 /* delay uevents, until we scanned partition table */
 dev_set_uevent_suppress(ddev, 1);
 
+device_enable_async_suspend(ddev);
+
 if (device_add(ddev))
 return;
 if (!sysfs_deprecated) {
diff --git a/block/partition-generic.c b/block/partition-generic.c
index 1cb4dec..7f136d1 100644
--- a/block/partition-generic.c
+++ b/block/partition-generic.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -325,6 +325,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; struct hd_struct *add_partition(struct gendisk *disk, int partno,
 pdev-&amp;gt;class = &amp;amp;block_class;
 pdev-&amp;gt;type = &amp;amp;part_type;
 pdev-&amp;gt;parent = ddev;
+pdev-&amp;gt;power.async_suspend = true;
 
 err = blk_alloc_devt(p, &amp;amp;devt);
 if (err)
diff --git a/drivers/ata/libata-transport.c b/drivers/ata/libata-transport.c
index c04d393..493f5ce 100644
--- a/drivers/ata/libata-transport.c
+++ b/drivers/ata/libata-transport.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -285,13 +285,13 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; int ata_tport_add(struct device *parent,
 dev-&amp;gt;parent = get_device(parent);
 dev-&amp;gt;release = ata_tport_release;
 dev_set_name(dev, "ata%d", ap-&amp;gt;print_id);
+device_enable_async_suspend(dev);
 transport_setup_device(dev);
 error = device_add(dev);
 if (error) {
 goto tport_err;
 }
 
-device_enable_async_suspend(dev);
 pm_runtime_set_active(dev);
 pm_runtime_enable(dev);
 pm_runtime_forbid(dev);
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -414,6 +414,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; int ata_tlink_add(struct ata_link *link)
         else
 dev_set_name(dev, "link%d.%d", ap-&amp;gt;print_id, link-&amp;gt;pmp);
 
+device_enable_async_suspend(dev);
 transport_setup_device(dev);
 
 error = device_add(dev);
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -642,6 +643,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static int ata_tdev_add(struct ata_device *ata_dev)
         else
 dev_set_name(dev, "dev%d.%d.0", ap-&amp;gt;print_id, link-&amp;gt;pmp);
 
+device_enable_async_suspend(dev);
 transport_setup_device(dev);
 error = device_add(dev);
 if (error) {
diff --git a/drivers/base/attribute_container.c b/drivers/base/attribute_container.c
index d78b204..49cc02d 100644
--- a/drivers/base/attribute_container.c
+++ b/drivers/base/attribute_container.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -349,6 +349,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; attribute_container_add_attrs(struct device *classdev)
 int
 attribute_container_add_class_device(struct device *classdev)
 {
+classdev-&amp;gt;power.async_suspend = true;
 int error = device_add(classdev);
 if (error)
 return error;
diff --git a/drivers/base/core.c b/drivers/base/core.c
index a235085..6c1cf6c 100644
--- a/drivers/base/core.c
+++ b/drivers/base/core.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1020,7 +1020,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; int device_add(struct device *dev)
 goto name_error;
 }
 
-pr_debug("device: '%s': %s\n", dev_name(dev), __func__);
+pr_debug("device: '%s': %s, %s\n", dev_name(dev), __func__,(dev-&amp;gt;power.async_suspend)?"ASYNC":"SYNC");
 
 parent = get_device(dev-&amp;gt;parent);
 kobj = get_device_parent(dev, parent);
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1558,6 +1558,11 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; struct device *device_create_vargs(struct class *class, struct device *parent,
 goto error;
 }
 
+if (parent)
+dev-&amp;gt;power.async_suspend = parent-&amp;gt;power.async_suspend;
+else
+dev-&amp;gt;power.async_suspend = true;
+
 dev-&amp;gt;devt = devt;
 dev-&amp;gt;class = class;
 dev-&amp;gt;parent = parent;
diff --git a/drivers/scsi/scsi_sysfs.c b/drivers/scsi/scsi_sysfs.c
index 931a7d9..22b5a5a 100644
--- a/drivers/scsi/scsi_sysfs.c
+++ b/drivers/scsi/scsi_sysfs.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -838,6 +838,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static int scsi_target_add(struct scsi_target *starget)
 if (starget-&amp;gt;state != STARGET_CREATED)
 return 0;
 
+device_enable_async_suspend(&amp;amp;starget-&amp;gt;dev);
 error = device_add(&amp;amp;starget-&amp;gt;dev);
 if (error) {
 dev_err(&amp;amp;starget-&amp;gt;dev, "target device_add failed, error %d\n", error);
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -848,7 +849,6 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static int scsi_target_add(struct scsi_target *starget)
 
 pm_runtime_set_active(&amp;amp;starget-&amp;gt;dev);
 pm_runtime_enable(&amp;amp;starget-&amp;gt;dev);
-device_enable_async_suspend(&amp;amp;starget-&amp;gt;dev);
 
 return 0;
 }
diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c
index 7992635..3a412ea 100644
--- a/drivers/scsi/sd.c
+++ b/drivers/scsi/sd.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -2924,6 +2924,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static int sd_probe(struct device *dev)
 sdkp-&amp;gt;dev.class = &amp;amp;sd_disk_class;
 dev_set_name(&amp;amp;sdkp-&amp;gt;dev, dev_name(dev));
 
+if (dev)
+sdkp-&amp;gt;dev.power.async_suspend = dev-&amp;gt;power.async_suspend;
+
 if (device_add(&amp;amp;sdkp-&amp;gt;dev))
 goto out_free_index;

----------------------------------------------------------------

[PATCH2 - pm_resume_async_non_blocking.patch]

Signed-off-by: Todd Brandt &amp;lt;todd.e.brandt&amp;lt; at &amp;gt;intel.com&amp;gt;
---
 drivers/base/power/main.c |   18 ++++++++++++++----
 1 file changed, 14 insertions(+), 4 deletions(-)

diff --git a/drivers/base/power/main.c b/drivers/base/power/main.c
index 2b7f77d..280065b 100644
--- a/drivers/base/power/main.c
+++ b/drivers/base/power/main.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -713,7 +713,6 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; void dpm_resume(pm_message_t state)
 put_device(dev);
 }
 mutex_unlock(&amp;amp;dpm_list_mtx);
-async_synchronize_full();
 dpm_show_time(starttime, state, NULL);
 }
 
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -726,11 +725,14 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static void device_complete(struct device *dev, pm_message_t state)
 {
 void (*callback)(struct device *) = NULL;
 char *info = NULL;
+bool hascb = false;
 
 if (dev-&amp;gt;power.syscore)
 return;
 
-device_lock(dev);
+ DoComplete:
+if (hascb)
+device_lock(dev);
 
 if (dev-&amp;gt;pm_domain) {
 info = "completing power domain ";
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -751,13 +753,19 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static void device_complete(struct device *dev, pm_message_t state)
 callback = dev-&amp;gt;driver-&amp;gt;pm-&amp;gt;complete;
 }
 
+/* if a callback exists, lock the device and call it */
+/* otherwise don't even lock/unlock the device */
 if (callback) {
+if (!hascb) {
+hascb = true;
+goto DoComplete;
+}
+
 pm_dev_dbg(dev, state, info);
 callback(dev);
+device_unlock(dev);
 }
 
-device_unlock(dev);
-
 pm_runtime_put_sync(dev);
 }
 
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1180,6 +1188,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; int dpm_suspend(pm_message_t state)
 might_sleep();
 
 mutex_lock(&amp;amp;dpm_list_mtx);
+/* wait for any processes still resuming */
+async_synchronize_full();
 pm_transition = state;
 async_error = 0;
 while (!list_empty(&amp;amp;dpm_prepared_list)) {

-----------------------------------------------------------------------

Todd Brandt
Linux Kernel Developer, Intel OTC, Hillsboro OR





--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo&amp;lt; at &amp;gt;vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

&lt;/pre&gt;</description>
    <dc:creator>Brandt, Todd E</dc:creator>
    <dc:date>2013-05-16T22:29:25</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.linux.scsi/82038">
    <title>Attention!!!</title>
    <link>http://comments.gmane.org/gmane.linux.scsi/82038</link>
    <description>&lt;pre&gt;

&lt;/pre&gt;</description>
    <dc:creator>Webmaster</dc:creator>
    <dc:date>2013-05-16T19:39:18</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.linux.scsi/82020">
    <title>[PATCH V1 0/7] Drivers: hv/scsi: Implement multi-channel support</title>
    <link>http://comments.gmane.org/gmane.linux.scsi/82020</link>
    <description>&lt;pre&gt;This patch-set implements multi-channel support for Hyper-V devices. Also
support for synthetic Fiber Channel device is included. The first two
patches in the series are the foundational pieces for many of the remaining
patches.

James, once Greg accepts the first two patches, you can consider the scsi
patches.

In this version, based on Greg's comments, I have fixed the names of the
exported symbols from the vmbus driver.

K. Y. Srinivasan (7):
  Drivers: hv: vmbus: Implement multi-channel support
  Drivers: hv: Add the GUID fot synthetic fiber channel device
  Drivers: scsi: storvsc: Make the scsi timeout a module parameter
  Drivers: scsi: storvsc: Update the storage protocol to win8 level
  Drivers: scsi: storvsc: Implement multi-channel support
  Drivers: scsi: storvsc: Support FC devices
  Drivers: scsi: storvsc: Increase the value of STORVSC_MAX_IO_REQUESTS

 drivers/hv/channel.c       |   41 +++++-
 drivers/hv/channel_mgmt.c  |  116 ++++++++++++++-
 drivers/scsi/storvsc_drv.c |  342 +++++++++++++++++++++++++++++++++++++++-----
 include/linux/hyperv.h     |   70 +++++++++
 4 files changed, 522 insertions(+), 47 deletions(-)

&lt;/pre&gt;</description>
    <dc:creator>K. Y. Srinivasan</dc:creator>
    <dc:date>2013-05-16T12:19:44</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.linux.scsi/81999">
    <title>mpt2sas,mpt3sas watchdog device removal</title>
    <link>http://comments.gmane.org/gmane.linux.scsi/81999</link>
    <description>&lt;pre&gt;This is a followup to the earlier discussion of MPT watchdog device
removal calling directly into PCI core API:

[1] http://thread.gmane.org/gmane.linux.scsi/80629

I've tested two safer, alternative methods of removing MPT hosts from
the SCSI topology. Both involve wrapping the existing MPT .remove
routine, ensuring mutual exclusion between regularly scheduled PCI
device removal and the drivers' periodic watchdog thread. Both changes
tested well against surprise PCI removal of LSI SAS 9211-8i HBAs while
driving direct IO out to attached disks.

The first version is straightforward, essentially just adding a common
mutex and checking that the driver still cares about a given PCI device
before removing.

The second version is an attempt to detach only from the SCSI topology as
soon as possible. Later PCI removal cleans up the rest of the resources.

Neither patch maps cleanly to the MPT fusion driver as its watchdog
thread resides in the mptbase module. The code currently uses PCI core
API pci_remove_bus_device to route around the driver's module
dependencies to call from mptbase to mptsas:

Module                  Size  Used by
mptsas                 62366  8                      &amp;lt;&amp;lt; PCI .remove
mptscsih               38803  1 mptsas
mptbase                99878  2 mptsas,mptscsih      &amp;lt;&amp;lt; watchdog

The fusion driver has devised other means of calling from mptbase to
mptscsih, for example, via the schedule_dead_ioc_flush_running_cmds
function pointer. The two changes I explored were made with a relatively
light hand, so I didn't know how best to proceed with a MPT fusion
patch.

Comments on either removal patch strategy welcome. It would also be
great if we had documentation guiding the SCSI LLDs in how to safely and
completely remove attached hosts in hotplug and defective HW scenarios.

Regards,

&lt;/pre&gt;</description>
    <dc:creator>Joe Lawrence</dc:creator>
    <dc:date>2013-05-15T17:24:01</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.linux.scsi/81998">
    <title>[PATCH 1/1] ibmvfc: Fix for offlining devices during error recovery</title>
    <link>http://comments.gmane.org/gmane.linux.scsi/81998</link>
    <description>&lt;pre&gt;
This fixes an issue seen with devices getting marked offline
in a scenario where a VIOS was getting rebooted while a
client VFC adapter is in SCSI EH and prevents unnecessary
EH escalation in some scenarios.

Signed-off-by: Brian King &amp;lt;brking&amp;lt; at &amp;gt;linux.vnet.ibm.com&amp;gt;
---

 drivers/scsi/ibmvscsi/ibmvfc.c |   15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

diff -puN drivers/scsi/ibmvscsi/ibmvfc.c~ibmvfc_abort_during_reset drivers/scsi/ibmvscsi/ibmvfc.c
--- linux/drivers/scsi/ibmvscsi/ibmvfc.c~ibmvfc_abort_during_reset2013-05-15 10:02:13.000000000 -0500
+++ linux-bjking1/drivers/scsi/ibmvscsi/ibmvfc.c2013-05-15 10:02:13.000000000 -0500
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -2208,7 +2208,10 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static int ibmvfc_cancel_all(struct scsi
 
 if (rsp_rc != 0) {
 sdev_printk(KERN_ERR, sdev, "Failed to send cancel event. rc=%d\n", rsp_rc);
-return -EIO;
+/* If failure is received, the host adapter is most likely going
+ through reset, return success so the caller will wait for the command
+ being cancelled to get returned */
+return 0;
 }
 
 sdev_printk(KERN_INFO, sdev, "Cancelling outstanding commands.\n");
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -2221,7 +2224,15 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static int ibmvfc_cancel_all(struct scsi
 
 if (status != IBMVFC_MAD_SUCCESS) {
 sdev_printk(KERN_WARNING, sdev, "Cancel failed with rc=%x\n", status);
-return -EIO;
+switch (status) {
+case IBMVFC_MAD_DRIVER_FAILED:
+case IBMVFC_MAD_CRQ_ERROR:
+/* Host adapter most likely going through reset, return success to
+ the caller will wait for the command being cancelled to get returned */
+return 0;
+default:
+return -EIO;
+};
 }
 
 sdev_printk(KERN_INFO, sdev, "Successfully cancelled outstanding commands\n");
_

--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo&amp;lt; at &amp;gt;vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

&lt;/pre&gt;</description>
    <dc:creator>Brian King</dc:creator>
    <dc:date>2013-05-15T15:24:47</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.linux.scsi/81993">
    <title>[PATCH] mptfusion: avoid reset loop by setting the result to DID_SOFT_ERROR</title>
    <link>http://comments.gmane.org/gmane.linux.scsi/81993</link>
    <description>&lt;pre&gt;When IOs are terminated, we observed reset loops:

[  158.580529] sd 1:0:5:0: [sdh] CDB: 
[  158.596051] Read(10): 28 00 00 05 e4 00 00 04 00 00
[  158.601657] mptscsih: ioc1: fw_channel = 0, fw_id = 55, lun = 0
[  158.601659] mptscsih: ioc1: request_len = 524288, underflow = 524288, resid = 524288
[  158.601660] mptscsih: ioc1: tag = 400, transfer_count = 0, sc-&amp;gt;result = 00080000
[  158.601662] mptscsih: ioc1: iocstatus = IOC terminated (0x004b), scsi_status = success (0x00), scsi_state = (0x0c)
[  158.646781] sd 1:0:5:0: [sdh] CDB: 
[  158.649766] Read(10): 28 00 00 05 e4 00 00 04 00 00
[  158.655158] mptscsih: ioc1: fw_channel = 0, fw_id = 55, lun = 0
[  158.655159] mptscsih: ioc1: request_len = 524288, underflow = 524288, resid = 524288
[  158.655161] mptscsih: ioc1: tag = 314, transfer_count = 0, sc-&amp;gt;result = 00000002
[  158.655162] mptscsih: ioc1: iocstatus = success (0x0000), scsi_status = check condition (0x02), scsi_state = (0x01)
[  158.655163] mptscsih: ioc1: [sense_key,asc,ascq]: [0x06,0x29,0x00]

We should set result to DID_SOFT_ERROR to avoid that, as mpt2sas and mpt3sas are doing the same.

Signed-off-by: Li Dongyang &amp;lt;dongyang.li&amp;lt; at &amp;gt;anu.edu.au&amp;gt;
---
 drivers/message/fusion/mptscsih.c | 17 ++---------------
 1 file changed, 2 insertions(+), 15 deletions(-)

diff --git a/drivers/message/fusion/mptscsih.c b/drivers/message/fusion/mptscsih.c
index 727819c..12c408f 100644
--- a/drivers/message/fusion/mptscsih.c
+++ b/drivers/message/fusion/mptscsih.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -770,22 +770,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; mptscsih_io_done(MPT_ADAPTER *ioc, MPT_FRAME_HDR *mf, MPT_FRAME_HDR *mr)
     &amp;lt;&amp;lt; 16);
     break;
 }
-} else if (ioc-&amp;gt;bus_type == FC) {
-/*
- * The FC IOC may kill a request for variety of
- * reasons, some of which may be recovered by a
- * retry, some which are unlikely to be
- * recovered. Return DID_ERROR instead of
- * DID_RESET to permit retry of the command,
- * just not an infinite number of them
- */
-sc-&amp;gt;result = DID_ERROR &amp;lt;&amp;lt; 16;
-break;
 }
-
-/*
- * Allow non-SAS &amp;amp; non-NEXUS_LOSS to drop into below code
- */
+sc-&amp;gt;result = DID_SOFT_ERROR &amp;lt;&amp;lt; 16;
+break;
 
 case MPI_IOCSTATUS_SCSI_TASK_TERMINATED:/* 0x0048 */
 /* Linux handles an unsolicited DID_RESET better
&lt;/pre&gt;</description>
    <dc:creator>Li Dongyang</dc:creator>
    <dc:date>2013-05-15T07:36:38</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.linux.scsi/81983">
    <title>[PATCH 0/3] UFSHCD updates</title>
    <link>http://comments.gmane.org/gmane.linux.scsi/81983</link>
    <description>&lt;pre&gt;Hi James,

Please merge the following patches to scsi tree.

Thanks,
Santosh

Geert Uytterhoeven (1):
  SCSI_UFSHCD should depend on SCSI_DMA

Sachin Kamat (1):
  ufs: Remove redundant platform_set_drvdata()

Sujit Reddy Thumma (1):
  Documentation: devicetree: Add DT bindings for UFS host controller

 Documentation/devicetree/bindings/ufs/ufshcd-pltfrm.txt | 16 ++++++++++++++++
 drivers/scsi/ufs/Kconfig                                |  2 +-
 drivers/scsi/ufs/ufshcd-pltfrm.c                        |  1 -
 3 files changed, 17 insertions(+), 2 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/ufs/ufshcd-pltfrm.txt

&lt;/pre&gt;</description>
    <dc:creator>Santosh Y</dc:creator>
    <dc:date>2013-05-14T16:04:12</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.linux.scsi/81975">
    <title>[PATCH V2 0/9] ufs patch siries</title>
    <link>http://comments.gmane.org/gmane.linux.scsi/81975</link>
    <description>&lt;pre&gt;This patch series clusters the latest version of all the UFS patches in the
SCSI mailing list. It gives a stable functional base line for the UFS driver.

It includes the following versions:

But does not include:

&lt;/pre&gt;</description>
    <dc:creator>Dolev Raviv</dc:creator>
    <dc:date>2013-05-14T07:08:39</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.linux.scsi/81942">
    <title>[PATCH V1 00/17] Update the driver version to 3.2.21.1</title>
    <link>http://comments.gmane.org/gmane.linux.scsi/81942</link>
    <description>&lt;pre&gt;Hi James,
Re-submitting the patch sets, Update the driver version to 3.2.21.0 and
Update the driver version to 3.2.21.1.
It includes bug-fixes, changes to use firmware version 3.2.1.0, adds new
features such as Forward Error Correction, FC BB credit recovery, dynamic
diagnostic Port (D-port), enabled support for new hardware - chinook quad
and updates the Brocade BFA driver to v3.2.21.1.

Thanks,
Vijaya Mohan Guvva

Vijaya Mohan Guvva (17):
  bfa: Support for FC BB credit recovery
  bfa: Forward Error Correction status query
  bfa: Add dynamic diagnostic port support
  bfa: Fix WARN_ON condition check
  bfa: FDMI enhancements
  bfa: Fix 1860 port initialize when ATC is enabled
  bfa: Fix FDISC timeout handling
  bfa: kdump fix on 815 and 825 adapters
  bfa: driver compatibility with 32bit libs
  bfa: fru vpd date update changes
  bfa: firmware statistics update
  bfa: Allow rsp queue process during ioc disable
  bfa: Fix bug_on condition in RPSC rsp handling
  bfa: fix endianess issue for firmware stats
  bfa: Support for chinook-quad port card
  bfa: dis-associate bfa path_tov with dev_loss_tmo
  bfa: Update the driver version to 3.2.21.1

 drivers/scsi/bfa/bfa_core.c      |   3 +-
 drivers/scsi/bfa/bfa_defs.h      | 103 +++++-
 drivers/scsi/bfa/bfa_defs_svc.h  |  77 ++++-
 drivers/scsi/bfa/bfa_fc.h        |  15 +
 drivers/scsi/bfa/bfa_fcpim.c     |   2 +-
 drivers/scsi/bfa/bfa_fcs.c       |  62 +---
 drivers/scsi/bfa/bfa_fcs.h       |  34 +-
 drivers/scsi/bfa/bfa_fcs_lport.c | 209 +++++++++++-
 drivers/scsi/bfa/bfa_fcs_rport.c |   7 +-
 drivers/scsi/bfa/bfa_ioc.c       |  74 +++--
 drivers/scsi/bfa/bfa_ioc.h       |   9 +-
 drivers/scsi/bfa/bfa_ioc_cb.c    |  86 ++++-
 drivers/scsi/bfa/bfa_ioc_ct.c    |  46 +++
 drivers/scsi/bfa/bfa_svc.c       | 698 ++++++++++++++++++++++++++++++++++++---
 drivers/scsi/bfa/bfa_svc.h       |  34 +-
 drivers/scsi/bfa/bfad.c          |  14 +-
 drivers/scsi/bfa/bfad_attr.c     |  33 +-
 drivers/scsi/bfa/bfad_bsg.c      | 137 +++++---
 drivers/scsi/bfa/bfad_bsg.h      |  52 ++-
 drivers/scsi/bfa/bfad_drv.h      |   2 +-
 drivers/scsi/bfa/bfi.h           |  78 ++++-
 drivers/scsi/bfa/bfi_ms.h        |   5 +-
 22 files changed, 1498 insertions(+), 282 deletions(-)

&lt;/pre&gt;</description>
    <dc:creator>Vijaya Mohan Guvva</dc:creator>
    <dc:date>2013-05-13T09:33:18</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.linux.scsi/81929">
    <title>[PATCH V1] bfa: fix faulty handling of events in lps sm</title>
    <link>http://comments.gmane.org/gmane.linux.scsi/81929</link>
    <description>&lt;pre&gt;Resending the patch as it didn't make the link-scsi list.

When a switch disable/enable or a reboot is done, the HBA port gets an
offline and a subsequent online notification. When the port comes up a
link up notification is sent to bfa from the firmware. The bfa then send
an FLOGI to the firmware which is sent out on the wire.
The switch port meanwhile goes offline (presumably for diagnostics)
which causes the switch not to respond to the FLOGI.
The link down notification is sent to the HBA driver. However owing to a
bug in the lps state machine handling the lps state machine does not
move to sm_init state (it remains in sm_login state and send a login
complete message to fcs). This results in a zero PID assignment as the
login is not really complete.

This fix is to correctly handle the events in lps state machine.

Signed-off-by: Vijaya Mohan Guvva &amp;lt;vmohan&amp;lt; at &amp;gt;brocade.com&amp;gt;
---
 drivers/scsi/bfa/bfa_svc.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/scsi/bfa/bfa_svc.c b/drivers/scsi/bfa/bfa_svc.c
index 299c1c8..7ed2c57 100644
--- a/drivers/scsi/bfa/bfa_svc.c
+++ b/drivers/scsi/bfa/bfa_svc.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1276,7 +1276,6 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; bfa_lps_sm_login(struct bfa_lps_s *lps, enum bfa_lps_event event)
 
 switch (event) {
 case BFA_LPS_SM_FWRSP:
-case BFA_LPS_SM_OFFLINE:
 if (lps-&amp;gt;status == BFA_STATUS_OK) {
 bfa_sm_set_state(lps, bfa_lps_sm_online);
 if (lps-&amp;gt;fdisc)
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1305,6 +1304,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; bfa_lps_sm_login(struct bfa_lps_s *lps, enum bfa_lps_event event)
 bfa_lps_login_comp(lps);
 break;
 
+case BFA_LPS_SM_OFFLINE:
 case BFA_LPS_SM_DELETE:
 bfa_sm_set_state(lps, bfa_lps_sm_init);
 break;
&lt;/pre&gt;</description>
    <dc:creator>Vijay Mohan Guvva</dc:creator>
    <dc:date>2013-05-13T09:49:44</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.linux.scsi/81923">
    <title>[PATCH] [SCSI] mvsas: fix error return code in mvs_task_prep()</title>
    <link>http://comments.gmane.org/gmane.linux.scsi/81923</link>
    <description>&lt;pre&gt;From: Wei Yongjun &amp;lt;yongjun_wei&amp;lt; at &amp;gt;trendmicro.com.cn&amp;gt;

Fix to return -ENOMEM in the pci_pool_alloc() error handling
case instead of 0, as done elsewhere in this function.

Signed-off-by: Wei Yongjun &amp;lt;yongjun_wei&amp;lt; at &amp;gt;trendmicro.com.cn&amp;gt;
---
 drivers/scsi/mvsas/mv_sas.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/scsi/mvsas/mv_sas.c b/drivers/scsi/mvsas/mv_sas.c
index c9e2449..801cd35 100644
--- a/drivers/scsi/mvsas/mv_sas.c
+++ b/drivers/scsi/mvsas/mv_sas.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -790,8 +790,10 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static int mvs_task_prep(struct sas_task *task, struct mvs_info *mvi, int is_tmf
 slot-&amp;gt;slot_tag = tag;
 
 slot-&amp;gt;buf = pci_pool_alloc(mvi-&amp;gt;dma_pool, GFP_ATOMIC, &amp;amp;slot-&amp;gt;buf_dma);
-if (!slot-&amp;gt;buf)
+if (!slot-&amp;gt;buf) {
+rc = -ENOMEM;
 goto err_out_tag;
+}
 memset(slot-&amp;gt;buf, 0, MVS_SLOT_BUF_SZ);
 
 tei.task = task;

--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo&amp;lt; at &amp;gt;vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

&lt;/pre&gt;</description>
    <dc:creator>Wei Yongjun</dc:creator>
    <dc:date>2013-05-13T06:53:48</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.linux.scsi/81919">
    <title>..</title>
    <link>http://comments.gmane.org/gmane.linux.scsi/81919</link>
    <description>&lt;pre&gt;I am Mr. Dale Alexander from the bank of Canada, I have a monetary deal
for you. Contact me if interested for more information via: dalealexander&amp;lt; at &amp;gt;careceo.com
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo&amp;lt; at &amp;gt;vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

&lt;/pre&gt;</description>
    <dc:creator>Mr. Dale Alexander</dc:creator>
    <dc:date>2013-05-12T23:24:09</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.linux.scsi/81908">
    <title>[PATCH] qla2x00t: Fix a memory leak in an error path</title>
    <link>http://comments.gmane.org/gmane.linux.scsi/81908</link>
    <description>&lt;pre&gt;Avoid that the fcport structure gets leaked if
bsg_job-&amp;gt;request-&amp;gt;msgcode == FC_BSG_HST_ELS_NOLOGIN, the fcport
allocation succeeds and the !vha-&amp;gt;flags.online branch is taken.
Detected by Coverity.

Signed-off-by: Bart Van Assche &amp;lt;bvanassche&amp;lt; at &amp;gt;acm.org&amp;gt;
Cc: Chad Dupuis &amp;lt;chad.dupuis&amp;lt; at &amp;gt;qlogic.com&amp;gt;
Cc: Saurav Kashyap &amp;lt;saurav.kashyap&amp;lt; at &amp;gt;qlogic.com&amp;gt;
---
 drivers/scsi/qla2xxx/qla_bsg.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/scsi/qla2xxx/qla_bsg.c b/drivers/scsi/qla2xxx/qla_bsg.c
index 39719f8..af35707 100644
--- a/drivers/scsi/qla2xxx/qla_bsg.c
+++ b/drivers/scsi/qla2xxx/qla_bsg.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -329,7 +329,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; qla2x00_process_els(struct fc_bsg_job *bsg_job)
 if (!vha-&amp;gt;flags.online) {
 ql_log(ql_log_warn, vha, 0x7005, "Host not online.\n");
 rval = -EIO;
-goto done;
+goto done_free_fcport;
 }
 
 req_sg_cnt =
&lt;/pre&gt;</description>
    <dc:creator>Bart Van Assche</dc:creator>
    <dc:date>2013-05-11T12:38:15</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.linux.scsi/81907">
    <title>Claims Requirements</title>
    <link>http://comments.gmane.org/gmane.linux.scsi/81907</link>
    <description>&lt;pre&gt;This is to inform you that you have been
selected for a cash prize of £1,000,000
(British Pounds) held on the 8th of May
2013 in London (United Kingdom). The
selection process was carried out through
random selection in Our computerized email
selection system (ESS) London Uk.

You have therefore been approved to claim
a total sum of 1 Million Pounds,(One Million Pounds)
in cash credited to fileKTU/ 9023118308/03.

Claims Requirements:

1.Full Name
2.Full Address
3.Marital Status
4.Occupation
5.Age
6.Sex
7.Nationality
8.Country Of Residence
9.Telephone Number

Agent Name: Mr. Fred Peters
Tel: +447031989477
 +447031963824
Email: mr.fredpetersclaimsagent037&amp;lt; at &amp;gt;y7mail.com
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo&amp;lt; at &amp;gt;vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

&lt;/pre&gt;</description>
    <dc:creator>zheng&lt; at &gt;physics.ucdavis.edu</dc:creator>
    <dc:date>2013-05-11T03:38:51</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.linux.scsi/81906">
    <title>[GIT PULL] Final round of SCSI updates for the 3.9+ merge window</title>
    <link>http://comments.gmane.org/gmane.linux.scsi/81906</link>
    <description>&lt;pre&gt;This is the final round of SCSI patches for the merge window.  It
consists mostly of driver updates (bnx2fc, ibmfc, fnic, lpfc, be2iscsi,
pm80xx, qla4x and ipr).  There's also the power management updates that
complete the patches in Jens' tree, an iscsi refcounting problem fix
from the last pull, some dif handling in scsi_debug fixes, a few nice
code cleanups and an error handling busy bug fix.

The patch is available here:

git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi.git scsi-for-linus

The short changelog is

Adheer Chandravanshi (2):
      qla4xxx: Assign values using correct datatype
      qla4xxx: Fix smatch warnings

Akinobu Mita (4):
      scsi_debug: fix logical block provisioning support
      scsi_debug: clear correct memory region when LBPRZ is enabled
      scsi_debug: prohibit scsi_debug_unmap_granularity == scsi_debug_unmap_alignment
      scsi_debug: call map_region() and unmap_region() only when needed

Armen Baloyan (1):
      qla2xxx: fix sparse warning "large integer implicitly truncated to unsigned type"

Bhanu Prakash Gollapudi (5):
      bnx2fc: Bumped version to 1.0.14
      bnx2fc: Update copyright dates
      bnx2fc: Fix race condition between IO completion and abort
      bnx2fc: Include chip number in the symbolic name
      bnx2fc: Enable cached tasks to improve performance

Brian King (5):
      ibmvfc: Driver version 1.0.11
      ibmvfc: Suppress ABTS if target gone
      ibmvfc: Send cancel when link is down
      ibmvfc: Support FAST_IO_FAIL in EH handlers
      ibmvfc: Properly set cancel flags when cancelling abort

Chad Dupuis (1):
      qla2xxx: Update firmware link in Kconfig file.

Dan Carpenter (3):
      libosd: remover duplicate __bitwise annotation
      megaraid_sas: release lock on error path
      csiostor: off by one error

Fengguang Wu (1):
      qla2xxx: qla2x00_sp_compl can be static.

Hannes Reinecke (1):
      Handle MLQUEUE busy response in scsi_send_eh_cmnd

Hiral Patel (3):
      fnic: Incremented driver version
      fnic: Kernel panic due to FIP mode misconfiguration
      fnic: FIP VLAN Discovery Feature Support

James Bottomley (3):
      sas: unify the pointlessly separated enums sas_dev_type and sas_device_type
      lpfc: fix up Kconfig dependencies
      sd: fix array cache flushing bug causing performance problems

James Smart (22):
      lpfc 8.3.39: Update lpfc version for 8.3.39 driver release
      lpfc 8.3.39: Fixed driver handling of CLEAR_LA with NPIV enabled causing SID=0 frames out
      lpfc 8.3.39: Reduced tmo value set to FLOGI WQE for quick recovery from FLOGI sequence timeout
      lpfc 8.3.39: Add log message when completes with clean address bit set to zero
      lpfc 8.3.39: Fixed driver vector mapping to CPU affinity
      lpfc 8.3.39: Fixed iocb flags not being reset for scsi commands
      lpfc 8.3.39: Fixed system panic during EEH recovery due to midlayer acting on outstanding I/O
      lpfc 8.3.39: Fixed not returning FAILED status when SCSI invoking host reset handler failed
      lpfc 8.3.39: Fixed bad book keeping in posting els sgls to port
      lpfc 8.3.39: Fixed deadlock between hbalock and nlp_lock use
      lpfc 8.3.39: Fixed BlockGuard to take advantage of rdprotect/wrprotect info when available
      lpfc 8.3.39: Reduced spinlock contention on SCSI buffer list
      lpfc 8.3.39: Fixed crash when processing bsg's sg list with high memory pages
      lpfc 8.3.39: Remove lpfc_fcp_look_ahead module parameter
      lpfc 8.3.39: Fix driver issues with SCSI Host reset
      lpfc 8.3.39: Doorbell formation information logged in dual-chute mode WQ and RQ setup
      lpfc 8.3.39: Fix driver issues with large s/g lists for BlockGuard
      lpfc 8.3.39: Fix driver issues with large lpfc_sg_seg_cnt values
      lpfc 8.3.39: Fixed pt2pt and loop discovery problems on topology changes.
      lpfc 8.3.39: Remove driver dependency on HZ
      lpfc 8.3.39: Fixed BlockGuard error reporting
      lpfc 8.3.39: Fixed VPI allocation issues after firmware dump is performed

Jayamohan Kallickal (16):
      be2iscsi: Bump the driver version to 10.0.467.0
      be2iscsi: Fix issue in passing the exp_cmdsn and max_cmdsn
      be2scsi: Update copyright dates to 2013
      be2iscsi: Fix checking Adapter state while establishing CXN
      be2iscsi: Fix dynamic CID allocation Mechanism in driver
      be2iscsi : Fix the NOP-In handling code path
      be2iscsi: Fix the Port Link Status issue
      be2iscsi: Fix displaying the Active Session Count from driver
      be2iscsi: Fix displaying the FW Version from driver.
      be2iscsi: Fix support for DEFQ extension
      be2iscsi: Fix MACRO for checking the adapter type
      be2iscsi: Fix freeing CXN specific driver resources.
      be2iscsi: Fix MSIX support in SKH-R to 32
      be2iscsi: Fix MBX Command issues
      be2iscsi: Fix returning Failure when MBX fails with Insufficient buffer error
      be2iscsi: Fix lack of uninitialize pattern to FW

Jeremy Higdon (1):
      sd_dif: problem with verify of type 1 protection information (PI)

Lin Ming (2):
      sd: change to auto suspend mode
      sd: use REQ_PM in sd's runtime suspend operation

Mike Christie (1):
      iscsi class, qla4xxx: fix sess/conn refcounting when find fns are used

Sakthivel K (11):
      pm80xx: thermal, sas controller config and error handling update
      pm80xx: NCQ error handling changes
      pm80xx: WWN Modification for PM8081/88/89 controllers
      pm80xx: Changed module name and debug messages update
      pm80xx: Firmware flash memory free fix, with addition of new memory region for it
      pm80xx: SPC new firmware changes for device id 0x8081 alone
      pm80xx: Added SPCv/ve specific hardware functionalities and relevant changes in common files
      pm80xx: MSI-X implementation for using 64 interrupts
      pm80xx: Updated common functions common for SPC and SPCv/ve
      pm80xx: Multiple inbound/outbound queue configuration
      pm80xx: Added SPCv/ve specific ids, variables and modify for SPC

Shlomo Pongratz (1):
      be2iscsi: Fix possible reentrancy issue in be_iopoll

Vikas Chaudhary (4):
      qla4xxx: Fix iocb_cnt calculation in qla4xxx_send_mbox_iocb()
      qla4xxx: Update driver version to 5.03.00-k9
      qla4xxx: Fix sparse warning for qla4xxx_sysfs_ddb_tgt_create
      qla4xxx: Silence gcc warning

Vinayak Holikatti (2):
      ufs: Correct the expected data transfersize
      ufs: Add Platform glue driver for ufshcd

Wei Yongjun (1):
      scsi_transport_iscsi: fix error return code in iscsi_transport_init()

wenxiong&amp;lt; at &amp;gt;linux.vnet.ibm.com (2):
      ipr: SATA DVD probing failed with 64bit adapter
      ipr: Need to reset adapter after the 6th EEH error

And the diffstat

 drivers/scsi/Kconfig                      |    2 +
 drivers/scsi/aic94xx/aic94xx_dev.c        |   24 +-
 drivers/scsi/aic94xx/aic94xx_hwi.c        |    2 +-
 drivers/scsi/aic94xx/aic94xx_tmf.c        |    2 +-
 drivers/scsi/be2iscsi/be.h                |    2 +-
 drivers/scsi/be2iscsi/be_cmds.c           |  172 +-
 drivers/scsi/be2iscsi/be_cmds.h           |   27 +-
 drivers/scsi/be2iscsi/be_iscsi.c          |   70 +-
 drivers/scsi/be2iscsi/be_iscsi.h          |    2 +-
 drivers/scsi/be2iscsi/be_main.c           |  375 ++-
 drivers/scsi/be2iscsi/be_main.h           |   29 +-
 drivers/scsi/be2iscsi/be_mgmt.c           |   43 +-
 drivers/scsi/be2iscsi/be_mgmt.h           |   35 +-
 drivers/scsi/bnx2fc/bnx2fc.h              |    8 +-
 drivers/scsi/bnx2fc/bnx2fc_els.c          |    2 +-
 drivers/scsi/bnx2fc/bnx2fc_fcoe.c         |   55 +-
 drivers/scsi/bnx2fc/bnx2fc_hwi.c          |    8 +-
 drivers/scsi/bnx2fc/bnx2fc_io.c           |    9 +-
 drivers/scsi/bnx2fc/bnx2fc_tgt.c          |    2 +-
 drivers/scsi/csiostor/csio_lnode.h        |    2 +-
 drivers/scsi/csiostor/csio_rnode.h        |    2 +-
 drivers/scsi/fnic/fnic.h                  |   34 +-
 drivers/scsi/fnic/fnic_fcs.c              |  564 +++-
 drivers/scsi/fnic/fnic_fip.h              |   68 +
 drivers/scsi/fnic/fnic_main.c             |   51 +-
 drivers/scsi/fnic/vnic_dev.c              |   10 +
 drivers/scsi/fnic/vnic_dev.h              |    2 +
 drivers/scsi/fnic/vnic_devcmd.h           |   67 +
 drivers/scsi/ibmvscsi/ibmvfc.c            |   85 +-
 drivers/scsi/ibmvscsi/ibmvfc.h            |    7 +-
 drivers/scsi/ipr.c                        |   16 +-
 drivers/scsi/ipr.h                        |    2 +-
 drivers/scsi/isci/remote_device.c         |    4 +-
 drivers/scsi/isci/remote_device.h         |    2 +-
 drivers/scsi/isci/request.c               |    6 +-
 drivers/scsi/isci/task.c                  |    2 +-
 drivers/scsi/libsas/sas_ata.c             |   18 +-
 drivers/scsi/libsas/sas_discover.c        |   34 +-
 drivers/scsi/libsas/sas_expander.c        |  110 +-
 drivers/scsi/libsas/sas_internal.h        |   10 +-
 drivers/scsi/libsas/sas_port.c            |    2 +-
 drivers/scsi/lpfc/lpfc.h                  |   24 +-
 drivers/scsi/lpfc/lpfc_attr.c             |  166 +-
 drivers/scsi/lpfc/lpfc_bsg.c              |   39 +-
 drivers/scsi/lpfc/lpfc_crtn.h             |    1 +
 drivers/scsi/lpfc/lpfc_ct.c               |    3 +-
 drivers/scsi/lpfc/lpfc_els.c              |  113 +-
 drivers/scsi/lpfc/lpfc_hbadisc.c          |   91 +-
 drivers/scsi/lpfc/lpfc_hw.h               |    1 +
 drivers/scsi/lpfc/lpfc_hw4.h              |    7 +-
 drivers/scsi/lpfc/lpfc_init.c             |  607 ++++-
 drivers/scsi/lpfc/lpfc_logmsg.h           |    1 +
 drivers/scsi/lpfc/lpfc_mbox.c             |    9 +-
 drivers/scsi/lpfc/lpfc_mem.c              |   14 +-
 drivers/scsi/lpfc/lpfc_nportdisc.c        |   25 +-
 drivers/scsi/lpfc/lpfc_scsi.c             |  798 ++++--
 drivers/scsi/lpfc/lpfc_sli.c              |  106 +-
 drivers/scsi/lpfc/lpfc_sli4.h             |   21 +-
 drivers/scsi/lpfc/lpfc_version.h          |    2 +-
 drivers/scsi/lpfc/lpfc_vport.c            |   25 +-
 drivers/scsi/lpfc/lpfc_vport.h            |    1 +
 drivers/scsi/megaraid/megaraid_sas_base.c |    3 +-
 drivers/scsi/mvsas/mv_init.c              |    2 +-
 drivers/scsi/mvsas/mv_sas.c               |   16 +-
 drivers/scsi/mvsas/mv_sas.h               |    4 +-
 drivers/scsi/pm8001/Makefile              |    7 +-
 drivers/scsi/pm8001/pm8001_ctl.c          |   74 +-
 drivers/scsi/pm8001/pm8001_defs.h         |   34 +-
 drivers/scsi/pm8001/pm8001_hwi.c          |  817 ++++--
 drivers/scsi/pm8001/pm8001_hwi.h          |    4 +-
 drivers/scsi/pm8001/pm8001_init.c         |  383 ++-
 drivers/scsi/pm8001/pm8001_sas.c          |  119 +-
 drivers/scsi/pm8001/pm8001_sas.h          |  181 +-
 drivers/scsi/pm8001/pm80xx_hwi.c          | 4130 +++++++++++++++++++++++++++++
 drivers/scsi/pm8001/pm80xx_hwi.h          | 1523 +++++++++++
 drivers/scsi/qla2xxx/Kconfig              |    4 +-
 drivers/scsi/qla2xxx/qla_mr.c             |    6 +-
 drivers/scsi/qla2xxx/qla_os.c             |    2 +-
 drivers/scsi/qla4xxx/ql4_iocb.c           |    1 +
 drivers/scsi/qla4xxx/ql4_os.c             |   45 +-
 drivers/scsi/qla4xxx/ql4_version.h        |    2 +-
 drivers/scsi/scsi_debug.c                 |   97 +-
 drivers/scsi/scsi_error.c                 |   37 +-
 drivers/scsi/scsi_lib.c                   |    9 +-
 drivers/scsi/scsi_pm.c                    |   84 +-
 drivers/scsi/scsi_transport_iscsi.c       |   94 +-
 drivers/scsi/sd.c                         |   42 +-
 drivers/scsi/sd.h                         |    1 +
 drivers/scsi/sd_dif.c                     |    8 -
 drivers/scsi/ufs/Kconfig                  |   11 +
 drivers/scsi/ufs/Makefile                 |    1 +
 drivers/scsi/ufs/ufshcd-pltfrm.c          |  217 ++
 drivers/scsi/ufs/ufshcd.c                 |    2 +-
 include/linux/pci_ids.h                   |    6 +-
 include/scsi/libsas.h                     |    4 +-
 include/scsi/osd_protocol.h               |    2 +-
 include/scsi/sas.h                        |   22 +-
 include/scsi/sas_ata.h                    |    4 +-
 include/scsi/scsi_device.h                |   16 +-
 include/scsi/scsi_transport_iscsi.h       |    8 +-
 include/scsi/scsi_transport_sas.h         |    7 -
 101 files changed, 10569 insertions(+), 1481 deletions(-)
 create mode 100644 drivers/scsi/fnic/fnic_fip.h
 create mode 100644 drivers/scsi/pm8001/pm80xx_hwi.c
 create mode 100644 drivers/scsi/pm8001/pm80xx_hwi.h
 create mode 100644 drivers/scsi/ufs/ufshcd-pltfrm.c

James


--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo&amp;lt; at &amp;gt;vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

&lt;/pre&gt;</description>
    <dc:creator>James Bottomley</dc:creator>
    <dc:date>2013-05-10T23:00:00</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.linux.scsi/81885">
    <title>[PATCH] sd: avoid deadlocks when running under multipath</title>
    <link>http://comments.gmane.org/gmane.linux.scsi/81885</link>
    <description>&lt;pre&gt;When multipathed systems run into an all-paths-down scenario
all devices might be dropped, too. This causes 'del_gendisk'
to be called, which will unregister the kobj_map-&amp;gt;probe()
function for all disk device numbers.
When the device comes back the default -&amp;gt;probe() function
is run which will call __request_module(), which will
deadlock.
As 'del_gendisk' typically does _not_ trigger a module unload
the default -&amp;gt;probe() function is pointless anyway.
This patch implements a dummy -&amp;gt;probe() function, which will
just return NULL if the disk is not registered.
This will avoid the deadlock. Plus it'll speed up device
scanning.

Signed-off-by: Hannes Reinecke &amp;lt;hare&amp;lt; at &amp;gt;suse.de&amp;gt;

diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c
index 7992635..2ee0aa6 100644
--- a/drivers/scsi/sd.c
+++ b/drivers/scsi/sd.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -489,6 +489,16 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static struct scsi_driver sd_template = {
 };
 
 /*
+ * Dummy kobj_map-&amp;gt;probe function.
+ * The default -&amp;gt;probe function will call modprobe, which is
+ * pointless as this module is already loaded.
+ */
+static struct kobject *sd_default_probe(dev_t devt, int *partno, void *data)
+{
+return NULL;
+}
+
+/*
  * Device no to disk mapping:
  * 
  *       major         disc2     disc  p1
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -2961,8 +2971,10 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static int sd_probe(struct device *dev)
 static int sd_remove(struct device *dev)
 {
 struct scsi_disk *sdkp;
+dev_t devt;
 
 sdkp = dev_get_drvdata(dev);
+devt = disk_devt(sdkp-&amp;gt;disk);
 scsi_autopm_get_device(sdkp-&amp;gt;device);
 
 async_synchronize_full_domain(&amp;amp;scsi_sd_probe_domain);
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -2972,6 +2984,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static int sd_remove(struct device *dev)
 del_gendisk(sdkp-&amp;gt;disk);
 sd_shutdown(dev);
 
+blk_register_region(devt, SD_MINORS, NULL,
+    sd_default_probe, NULL, NULL);
+
 mutex_lock(&amp;amp;sd_ref_mutex);
 dev_set_drvdata(dev, NULL);
 put_device(&amp;amp;sdkp-&amp;gt;dev);
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -3115,9 +3130,13 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static int __init init_sd(void)
 
 SCSI_LOG_HLQUEUE(3, printk("init_sd: sd driver entry point\n"));
 
-for (i = 0; i &amp;lt; SD_MAJORS; i++)
-if (register_blkdev(sd_major(i), "sd") == 0)
-majors++;
+for (i = 0; i &amp;lt; SD_MAJORS; i++) {
+if (register_blkdev(sd_major(i), "sd") != 0)
+continue;
+majors++;
+blk_register_region(sd_major(i), SD_MINORS, NULL,
+    sd_default_probe, NULL, NULL);
+}
 
 if (!majors)
 return -ENODEV;
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -3176,8 +3195,10 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static void __exit exit_sd(void)
 
 class_unregister(&amp;amp;sd_disk_class);
 
-for (i = 0; i &amp;lt; SD_MAJORS; i++)
+for (i = 0; i &amp;lt; SD_MAJORS; i++) {
+blk_unregister_region(sd_major(i), SD_MINORS);
 unregister_blkdev(sd_major(i), "sd");
+}
 }
 
 module_init(init_sd);
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo&amp;lt; at &amp;gt;vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

&lt;/pre&gt;</description>
    <dc:creator>Hannes Reinecke</dc:creator>
    <dc:date>2013-05-10T09:06:16</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.linux.scsi/81881">
    <title>[PATCH] scsi: Allow error handling timeout to be specified</title>
    <link>http://comments.gmane.org/gmane.linux.scsi/81881</link>
    <description>&lt;pre&gt;
Introduce eh_timeout which can be used for error handling purposes. This
was previously hardcoded to 10 seconds in the SCSI error handling
code. However, for some fast-fail scenarios it is necessary to be able
to tune this as it can take several iterations (bus device, target, bus,
controller) before we give up.

Signed-off-by: Martin K. Petersen &amp;lt;martin.petersen&amp;lt; at &amp;gt;oracle.com&amp;gt;

diff --git a/drivers/scsi/scsi_error.c b/drivers/scsi/scsi_error.c
index c1b05a8..91adc52 100644
--- a/drivers/scsi/scsi_error.c
+++ b/drivers/scsi/scsi_error.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -44,8 +44,6 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 
 static void scsi_eh_done(struct scsi_cmnd *scmd);
 
-#define SENSE_TIMEOUT(10*HZ)
-
 /*
  * These should *probably* be handled by the host itself.
  * Since it is allowed to sleep, it probably should.
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -864,7 +862,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static int scsi_send_eh_cmnd(struct scsi_cmnd *scmd, unsigned char *cmnd,
  */
 static int scsi_request_sense(struct scsi_cmnd *scmd)
 {
-return scsi_send_eh_cmnd(scmd, NULL, 0, SENSE_TIMEOUT, ~0);
+return scsi_send_eh_cmnd(scmd, NULL, 0, scmd-&amp;gt;device-&amp;gt;eh_timeout, ~0);
 }
 
 /**
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -965,7 +963,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static int scsi_eh_tur(struct scsi_cmnd *scmd)
 int retry_cnt = 1, rtn;
 
 retry_tur:
-rtn = scsi_send_eh_cmnd(scmd, tur_command, 6, SENSE_TIMEOUT, 0);
+rtn = scsi_send_eh_cmnd(scmd, tur_command, 6,
+scmd-&amp;gt;device-&amp;gt;eh_timeout, 0);
 
 SCSI_LOG_ERROR_RECOVERY(3, printk("%s: scmd %p rtn %x\n",
 __func__, scmd, rtn));
diff --git a/drivers/scsi/scsi_scan.c b/drivers/scsi/scsi_scan.c
index b9e39e0..7f7bd1f 100644
--- a/drivers/scsi/scsi_scan.c
+++ b/drivers/scsi/scsi_scan.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -945,6 +945,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static int scsi_add_lun(struct scsi_device *sdev, unsigned char *inq_result,
 }
 
 sdev-&amp;gt;max_queue_depth = sdev-&amp;gt;queue_depth;
+sdev-&amp;gt;eh_timeout = SCSI_DEFAULT_EH_TIMEOUT;
 
 /*
  * Ok, the device is now all set up, we can
diff --git a/drivers/scsi/scsi_sysfs.c b/drivers/scsi/scsi_sysfs.c
index 931a7d9..38db310 100644
--- a/drivers/scsi/scsi_sysfs.c
+++ b/drivers/scsi/scsi_sysfs.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -560,6 +560,35 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; sdev_store_timeout (struct device *dev, struct device_attribute *attr,
 static DEVICE_ATTR(timeout, S_IRUGO | S_IWUSR, sdev_show_timeout, sdev_store_timeout);
 
 static ssize_t
+sdev_show_eh_timeout (struct device *dev, struct device_attribute *attr, char *buf)
+{
+struct scsi_device *sdev;
+sdev = to_scsi_device(dev);
+return snprintf(buf, 20, "%u\n", sdev-&amp;gt;eh_timeout / HZ);
+}
+
+static ssize_t
+sdev_store_eh_timeout (struct device *dev, struct device_attribute *attr,
+    const char *buf, size_t count)
+{
+struct scsi_device *sdev;
+unsigned int eh_timeout;
+int err;
+
+if (!capable(CAP_SYS_ADMIN))
+return -EACCES;
+
+sdev = to_scsi_device(dev);
+err = kstrtouint(buf, 10, &amp;amp;eh_timeout);
+if (err)
+return err;
+sdev-&amp;gt;eh_timeout = eh_timeout * HZ;
+
+return count;
+}
+static DEVICE_ATTR(eh_timeout, S_IRUGO | S_IWUSR, sdev_show_eh_timeout, sdev_store_eh_timeout);
+
+static ssize_t
 store_rescan_field (struct device *dev, struct device_attribute *attr,
     const char *buf, size_t count)
 {
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -723,6 +752,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static struct attribute *scsi_sdev_attrs[] = {
 &amp;amp;dev_attr_delete.attr,
 &amp;amp;dev_attr_state.attr,
 &amp;amp;dev_attr_timeout.attr,
+&amp;amp;dev_attr_eh_timeout.attr,
 &amp;amp;dev_attr_iocounterbits.attr,
 &amp;amp;dev_attr_iorequest_cnt.attr,
 &amp;amp;dev_attr_iodone_cnt.attr,
diff --git a/include/scsi/scsi.h b/include/scsi/scsi.h
index 66216c1..4b87d99 100644
--- a/include/scsi/scsi.h
+++ b/include/scsi/scsi.h
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -10,9 +10,14 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 
 #include &amp;lt;linux/types.h&amp;gt;
 #include &amp;lt;linux/scatterlist.h&amp;gt;
+#include &amp;lt;linux/kernel.h&amp;gt;
 
 struct scsi_cmnd;
 
+enum scsi_timeouts {
+SCSI_DEFAULT_EH_TIMEOUT= 10 * HZ,
+};
+
 /*
  * The maximum number of SG segments that we will put inside a
  * scatterlist (unless chaining is used). Should ideally fit inside a
diff --git a/include/scsi/scsi_device.h b/include/scsi/scsi_device.h
index a7f9cba..7eb9b20 100644
--- a/include/scsi/scsi_device.h
+++ b/include/scsi/scsi_device.h
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -113,6 +113,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; struct scsi_device {
  * scsi_devinfo.[hc]. For now used only to
  * pass settings from slave_alloc to scsi
  * core. */
+unsigned int eh_timeout; /* Error handling timeout */
 unsigned writeable:1;
 unsigned removable:1;
 unsigned changed:1;/* Data invalid due to media change */
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo&amp;lt; at &amp;gt;vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

&lt;/pre&gt;</description>
    <dc:creator>Martin K. Petersen</dc:creator>
    <dc:date>2013-05-10T03:11:37</dc:date>
  </item>
  <textinput rdf:about="http://search.gmane.org/?group=$group=gmane.linux.scsi">
    <title>Search Engine</title>
    <description>Search the mailing list at Gmane</description>
    <name>query</name>
    <link>http://search.gmane.org/?group=$group=gmane.linux.scsi</link>
  </textinput>
</rdf:RDF>
