<?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://permalink.gmane.org/gmane.linux.scsi/75342"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.scsi/75341"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.scsi/75336"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.scsi/75335"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.scsi/75333"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.scsi/75332"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.scsi/75331"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.scsi/75330"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.scsi/75325"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.scsi/75322"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.scsi/75320"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.scsi/75316"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.scsi/75315"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.scsi/75312"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.scsi/75308"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.scsi/75302"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.scsi/75300"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.scsi/75299"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.scsi/75298"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.scsi/75297"/>
      </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://permalink.gmane.org/gmane.linux.scsi/75342">
    <title>Re: [RFC PATCH] scsi: fix hot unplug vs async scan race</title>
    <link>http://permalink.gmane.org/gmane.linux.scsi/75342</link>
    <description>&lt;pre&gt;[ add the folks on the cc ]

On Fri, May 25, 2012 at 12:55 AM, Dan Williams &amp;lt;dan.j.williams&amp;lt; at &amp;gt;intel.com&amp;gt; wrote:
--
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>Dan Williams</dc:creator>
    <dc:date>2012-05-25T15:34:03</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.scsi/75341">
    <title>Re: [RFC] How to fix an async scan - 'rmmod --wait' race?</title>
    <link>http://permalink.gmane.org/gmane.linux.scsi/75341</link>
    <description>&lt;pre&gt;The async_synchronize_full : "This function returns when there are no asynchronous
function calls in the system."
The point is that the async scan is not started with async_schedule but with kthread_run,
so the synchronization doesn't work in this case (an error log is attached at bottom).
I wish I would knew, but everything seems to be too much complicated, one idea
was to use in the teardown path new special functions only for this use, but...

Tomas


May 25 04:25:54 localhost kernel: [  461.525209] BUG: unable to handle kernel NULL pointer dereference at 0000000000000079
May 25 04:25:54 localhost kernel: [  461.525242] IP: [&amp;lt;ffffffff811f0c45&amp;gt;] sysfs_create_dir+0x35/0xc0
May 25 04:25:54 localhost kernel: [  461.525259] PGD 0 
May 25 04:25:54 localhost kernel: [  461.525267] Oops: 0000 [#1] SMP 
May 25 04:25:54 localhost kernel: [  461.525278] CPU 0 
May 25 04:25:54 localhost kernel: [  461.525283] Modules linked in: mpt2sas(-) lockd bnep bluetooth be2iscsi iscsi_boot_sysfs bnx2i cnic uio cxgb4i cxgb4 cxgb3i libcxgbi cxgb3 mdio ib_iser
May 25 04:25:54 localhost kernel: [  461.525342] mpt2sas0: removing handle(0x0009), sas_addr(0x5000c5001ac10319)
May 25 04:25:54 localhost kernel: [  461.525355]  rdma_cm ib_cm iw_cm ib_sa ib_mad ib_core ib_addr iscsi_tcp libiscsi_tcp libiscsi scsi_transport_iscsi ip6t_REJECT nf_conntrack_ipv6 nf_defrag_ipv6 nf_conntrack_ipv4 nf_defrag_ipv4 xt_state nf_conntrack ip6table_filter ip6_tables i7core_edac edac_core hp_wmi iTCO_wdt snd_hda_codec_realtek tg3 iTCO_vendor_support snd_hda_intel snd_hda_codec snd_hwdep scsi_transport_sas raid_class snd_seq snd_seq_device snd_pcm snd_timer sparse_keymap rfkill serio_raw snd soundcore snd_page_alloc microcode sunrpc uinput firewire_ohci firewire_core crc_itu_t nouveau ttm drm_kms_helper drm i2c_core mxm_wmi video wmi [last unloaded: mpt2sas]
May 25 04:25:54 localhost kernel: [  461.525640] 
May 25 04:25:54 localhost kernel: [  461.525651] Pid: 1341, comm: scsi_scan_12 Not tainted 3.3.0 #4 Hewlett-Packard HP Z400 Workstation/0B4Ch
May 25 04:25:54 localhost kernel: [  461.525669] RIP: 0010:[&amp;lt;ffffffff811f0c45&amp;gt;]  [&amp;lt;ffffffff811f0c45&amp;gt;] sysfs_create_dir+0x35/0xc0
May 25 04:25:54 localhost kernel: [  461.525685] RSP: 0018:ffff88019419bce0  EFLAGS: 00010246
May 25 04:25:54 localhost kernel: [  461.525693] RAX: ffff880192ad2010 RBX: ffff880192ad5438 RCX: 0000000000000000
May 25 04:25:54 localhost kernel: [  461.525702] RDX: ffff880199034c60 RSI: ffff880192ad0018 RDI: ffff880192ad5438
May 25 04:25:54 localhost kernel: [  461.525711] RBP: ffff88019419bd10 R08: ffff880199034c60 R09: ffff880187c81980
May 25 04:25:54 localhost kernel: [  461.525720] R10: 0000000000000400 R11: 0000000000010140 R12: 0000000000000000
May 25 04:25:54 localhost kernel: [  461.525728] R13: 0000000000000000 R14: 0000000000000000 R15: ffff880192ad5400
May 25 04:25:54 localhost kernel: [  461.525738] FS:  0000000000000000(0000) GS:ffff88019fc00000(0000) knlGS:0000000000000000
May 25 04:25:54 localhost kernel: [  461.525748] CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
May 25 04:25:54 localhost kernel: [  461.525756] CR2: 0000000000000079 CR3: 0000000001c05000 CR4: 00000000000006f0
May 25 04:25:54 localhost kernel: [  461.525765] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
May 25 04:25:54 localhost kernel: [  461.525774] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
May 25 04:25:54 localhost kernel: [  461.525788] Process scsi_scan_12 (pid: 1341, threadinfo ffff88019419a000, task ffff880187ca9730)
May 25 04:25:54 localhost kernel: [  461.525796] mpt2sas0: sending diag reset !!
May 25 04:25:54 localhost kernel: [  461.525805] Stack:
May 25 04:25:54 localhost kernel: [  461.525810]  ffff88019419bd30 ffffffff81088c0e ffff88019419bd50 ffff880192ad5438
May 25 04:25:54 localhost kernel: [  461.525829]  ffff880192ad2010 0000000000000000 ffff88019419bd60 ffffffff812c2e6e
May 25 04:25:54 localhost kernel: [  461.526446]  0000000100027998 ffffffff81e487c0 ffff88019419bd40 ffff880192ad5438
May 25 04:25:54 localhost kernel: [  461.526992] Call Trace:
May 25 04:25:54 localhost kernel: [  461.527534]  [&amp;lt;ffffffff81088c0e&amp;gt;] ? try_to_wake_up+0x1be/0x2b0
May 25 04:25:54 localhost kernel: [  461.528075]  [&amp;lt;ffffffff812c2e6e&amp;gt;] kobject_add_internal+0xae/0x250
May 25 04:25:54 localhost kernel: [  461.528612]  [&amp;lt;ffffffff812c3417&amp;gt;] kobject_add+0x67/0xc0
May 25 04:25:54 localhost kernel: [  461.529150]  [&amp;lt;ffffffff8139eb32&amp;gt;] device_add+0x102/0x6c0
May 25 04:25:54 localhost kernel: [  461.529714]  [&amp;lt;ffffffff815f2a6b&amp;gt;] ? wait_for_common+0x3b/0x170
May 25 04:25:54 localhost kernel: [  461.530300]  [&amp;lt;ffffffff813c81e8&amp;gt;] scsi_sysfs_add_sdev+0x198/0x340
May 25 04:25:54 localhost kernel: [  461.530886]  [&amp;lt;ffffffff813c6aa4&amp;gt;] do_scan_async+0x84/0x160
May 25 04:25:54 localhost kernel: [  461.531473]  [&amp;lt;ffffffff813c6a20&amp;gt;] ? do_scsi_scan_host+0xa0/0xa0
May 25 04:25:54 localhost kernel: [  461.532063]  [&amp;lt;ffffffff81079c63&amp;gt;] kthread+0x93/0xa0
May 25 04:25:54 localhost kernel: [  461.532647]  [&amp;lt;ffffffff815fd124&amp;gt;] kernel_thread_helper+0x4/0x10
May 25 04:25:54 localhost kernel: [  461.533231]  [&amp;lt;ffffffff81079bd0&amp;gt;] ? kthread_freezable_should_stop+0x70/0x70
May 25 04:25:54 localhost kernel: [  461.533822]  [&amp;lt;ffffffff815fd120&amp;gt;] ? gs_change+0x13/0x13
May 25 04:25:54 localhost kernel: [  461.534409] Code: 83 ec 18 66 66 66 66 90 48 85 ff 48 89 fb 0f 84 98 00 00 00 48 8b 47 18 49 c7 c4 20 0e c5 81 48 85 c0 74 04 4c 8b 60 30 45 31 ed &amp;lt;41&amp;gt; 80 7c 24 79 00 75 5b 48 89 df e8 8b 2c 0d 00 48 85 c0 74 66 
May 25 04:25:54 localhost kernel: [  461.535150] RIP  [&amp;lt;ffffffff811f0c45&amp;gt;] sysfs_create_dir+0x35/0xc0
May 25 04:25:54 localhost kernel: [  461.535747]  RSP &amp;lt;ffff88019419bce0&amp;gt;
May 25 04:25:54 localhost kernel: [  461.536366] CR2: 0000000000000079
May 25 04:25:54 localhost kernel: [  461.537043] ---[ end trace 83bf7cc296e3a5d6 ]---
May 25 04:25:55 localhost kernel: [  462.585300] mpt2sas0: diag reset: SUCCESS


--
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>Tomas Henzl</dc:creator>
    <dc:date>2012-05-25T15:13:18</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.scsi/75336">
    <title>Re: [PATCH 1/4] async: introduce 'async_domain' type</title>
    <link>http://permalink.gmane.org/gmane.linux.scsi/75336</link>
    <description>&lt;pre&gt;
OK, that's what I hadn't seen.  I can't think of another way we could
fail at the moment, except in suspend/resume because the
scsi_complete_async_scans will be a nop. Can someone test the
suspend/resume case?


There is actually one good thing to come out of this:  Rafael's commit

commit c751085943362143f84346d274e0011419c84202
Author: Rafael J. Wysocki &amp;lt;rjw&amp;lt; at &amp;gt;sisk.pl&amp;gt;
Date:   Sun Apr 12 20:06:56 2009 +0200

    PM/Hibernate: Wait for SCSI devices scan to complete during resume

Actually broke the scsi_wait_scan module, because for modular SCSI
(which is effectively all distributions) its scsi_complete_async_scans()
is also a nop.  I assume this means that no distributions rely on it any
more and we can remove it?


I appreciate this is a bug, but it's not quite as serious as breaking
suspend and hibernate ... can we demonstrate they're still working?

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>2012-05-25T08:48:20</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.scsi/75335">
    <title>Re: [PATCH 1/4] async: introduce 'async_domain' type</title>
    <link>http://permalink.gmane.org/gmane.linux.scsi/75335</link>
    <description>&lt;pre&gt;On Fri, May 25, 2012 at 12:51 AM, James Bottomley
&amp;lt;James.Bottomley&amp;lt; at &amp;gt;hansenpartnership.com&amp;gt; wrote:

Makes sense... but could also go ahead with the smaller fix I posted
for 3.5.  Meelis confirms it is working.

Otherwise this leaves the pending libsas suspend/resume support in
limbo, since it will certainly deadlock in the case where any device
fails, or is slow to come back from resume.

--
Dan
--
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>Dan Williams</dc:creator>
    <dc:date>2012-05-25T08:18:21</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.scsi/75333">
    <title>Re: [PATCH 1/4] async: introduce 'async_domain' type</title>
    <link>http://permalink.gmane.org/gmane.linux.scsi/75333</link>
    <description>&lt;pre&gt;
This looks good, but I want Arjan and others who invented the async code
to speed up boot to comment on all of this.  What was the intention of
async_synchronize_full() and if it wasn't to synchronise all domains,
should we fix the documentation and add a new primitive to do that,
since boot clearly assumes the all domains behaviour.

In the mean time, this is probably all a bit much for a merge window, so
I'll revert 

commit a7a20d103994fd760766e6c9d494daa569cbfe06
Author: Dan Williams &amp;lt;dan.j.williams&amp;lt; at &amp;gt;intel.com&amp;gt;
Date:   Thu Mar 22 17:05:11 2012 -0700

    [SCSI] sd: limit the scope of the async probe domain

And we'll put whatever is chosen in early for the next merge window.

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>2012-05-25T07:51:07</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.scsi/75332">
    <title>Re: 3.4.0-02580-g72c04af regression on sparc64 - partitions not recognized</title>
    <link>http://permalink.gmane.org/gmane.linux.scsi/75332</link>
    <description>&lt;pre&gt;
I don't understand this.

Why would it make a difference whether SCSI is modular at hybernation
resume time?  The reason it makes a difference at boot time is because
there's no initrd to wait for the scans and mount the root if we're not
modular, so the init path has to do it.  However, when resuming an
image, the module is already loaded into that image, so there should be
no difference at all between steps taken in the modular and non-modular
cases.

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>2012-05-25T07:45:21</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.scsi/75331">
    <title>[RFC PATCH] scsi: fix hot unplug vs async scan race</title>
    <link>http://permalink.gmane.org/gmane.linux.scsi/75331</link>
    <description>&lt;pre&gt;The following crash results from cases where the end_device has been
removed before scsi_sysfs_add_sdev has had a chance to run.

 BUG: unable to handle kernel NULL pointer dereference at 0000000000000098
 IP: [&amp;lt;ffffffff8115e100&amp;gt;] sysfs_create_dir+0x32/0xb6
 ...
 Call Trace:
  [&amp;lt;ffffffff8125e4a8&amp;gt;] kobject_add_internal+0x120/0x1e3
  [&amp;lt;ffffffff81075149&amp;gt;] ? trace_hardirqs_on+0xd/0xf
  [&amp;lt;ffffffff8125e641&amp;gt;] kobject_add_varg+0x41/0x50
  [&amp;lt;ffffffff8125e70b&amp;gt;] kobject_add+0x64/0x66
  [&amp;lt;ffffffff8131122b&amp;gt;] device_add+0x12d/0x63a
  [&amp;lt;ffffffff814b65ea&amp;gt;] ? _raw_spin_unlock_irqrestore+0x47/0x56
  [&amp;lt;ffffffff8107de15&amp;gt;] ? module_refcount+0x89/0xa0
  [&amp;lt;ffffffff8132f348&amp;gt;] scsi_sysfs_add_sdev+0x4e/0x28a
  [&amp;lt;ffffffff8132dcbb&amp;gt;] do_scan_async+0x9c/0x145

...teach scsi_sysfs_add_devices to check for deleted device before
trying to add them.

This teaches scsi_transport_sas to bypass scsi_remove_target() since it
is unable to find the target from the end_device rphy since
device_for_each_child() relies on the target device having gone through
a device_add().

Cc: Mike Christie &amp;lt;michaelc&amp;lt; at &amp;gt;cs.wisc.edu&amp;gt;
Cc: Robert Love &amp;lt;robert.w.love&amp;lt; at &amp;gt;intel.com&amp;gt;
Cc: Nagalakshmi Nandigama &amp;lt;Nagalakshmi.Nandigama&amp;lt; at &amp;gt;lsi.com&amp;gt;
Cc: Kashyap Desai &amp;lt;kashyap.desai&amp;lt; at &amp;gt;lsi.com&amp;gt;
Cc: Matthew Wilcox &amp;lt;matthew&amp;lt; at &amp;gt;wil.cx&amp;gt;
Cc: &amp;lt;stable&amp;lt; at &amp;gt;vger.kernel.org&amp;gt;
[stable: v2.6.20+]
Reported-by: Dariusz Majchrzak &amp;lt;dariusz.majchrzak&amp;lt; at &amp;gt;intel.com&amp;gt;
Signed-off-by: Dan Williams &amp;lt;dan.j.williams&amp;lt; at &amp;gt;intel.com&amp;gt;
---

This is larger than I would like, but could not think of better way to
retrieve the starget from the transport device.  Other ideas?

--
Dan


 drivers/scsi/scsi_scan.c          |   24 ++++++++++++++++--------
 drivers/scsi/scsi_sysfs.c         |   15 ++++++++++++++-
 drivers/scsi/scsi_transport_sas.c |    5 +++--
 include/scsi/scsi_device.h        |    5 +++--
 include/scsi/scsi_transport_sas.h |    1 +
 5 files changed, 37 insertions(+), 13 deletions(-)

diff --git a/drivers/scsi/scsi_scan.c b/drivers/scsi/scsi_scan.c
index 01b0374..5e00e09 100644
--- a/drivers/scsi/scsi_scan.c
+++ b/drivers/scsi/scsi_scan.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1562,8 +1562,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; void scsi_rescan_device(struct device *dev)
 }
 EXPORT_SYMBOL(scsi_rescan_device);
 
-static void __scsi_scan_target(struct device *parent, unsigned int channel,
-unsigned int id, unsigned int lun, int rescan)
+static struct scsi_target *__scsi_scan_target(struct device *parent, unsigned int channel,
+      unsigned int id, unsigned int lun, int rescan)
 {
 struct Scsi_Host *shost = dev_to_shost(parent);
 int bflags = 0;
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1574,11 +1574,11 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static void __scsi_scan_target(struct device *parent, unsigned int channel,
 /*
  * Don't scan the host adapter
  */
-return;
+return NULL;
 
 starget = scsi_alloc_target(parent, channel, id);
 if (!starget)
-return;
+return NULL;
 scsi_autopm_get_target(starget);
 
 if (lun != SCAN_WILD_CARD) {
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1611,6 +1611,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static void __scsi_scan_target(struct device *parent, unsigned int channel,
 scsi_target_reap(starget);
 
 put_device(&amp;amp;starget-&amp;gt;dev);
+
+return starget;
 }
 
 /**
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1628,23 +1630,26 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static void __scsi_scan_target(struct device *parent, unsigned int channel,
  *     First try a REPORT LUN scan, if that does not scan the target, do a
  *     sequential scan of LUNs on the target id.
  **/
-void scsi_scan_target(struct device *parent, unsigned int channel,
-      unsigned int id, unsigned int lun, int rescan)
+struct scsi_target *scsi_scan_target(struct device *parent, unsigned int channel,
+     unsigned int id, unsigned int lun, int rescan)
 {
 struct Scsi_Host *shost = dev_to_shost(parent);
+struct scsi_target *starget = NULL;
 
 if (strncmp(scsi_scan_type, "none", 4) == 0)
-return;
+return NULL;
 
 mutex_lock(&amp;amp;shost-&amp;gt;scan_mutex);
 if (!shost-&amp;gt;async_scan)
 scsi_complete_async_scans();
 
 if (scsi_host_scan_allowed(shost) &amp;amp;&amp;amp; scsi_autopm_get_host(shost) == 0) {
-__scsi_scan_target(parent, channel, id, lun, rescan);
+starget = __scsi_scan_target(parent, channel, id, lun, rescan);
 scsi_autopm_put_host(shost);
 }
 mutex_unlock(&amp;amp;shost-&amp;gt;scan_mutex);
+
+return starget;
 }
 EXPORT_SYMBOL(scsi_scan_target);
 
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1714,6 +1719,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static void scsi_sysfs_add_devices(struct Scsi_Host *shost)
 {
 struct scsi_device *sdev;
 shost_for_each_device(sdev, shost) {
+/* target removed before the device could be added */
+if (sdev-&amp;gt;sdev_state == SDEV_DEL)
+continue;
 if (!scsi_host_scan_allowed(shost) ||
     scsi_sysfs_add_sdev(sdev) != 0)
 __scsi_remove_device(sdev);
diff --git a/drivers/scsi/scsi_sysfs.c b/drivers/scsi/scsi_sysfs.c
index 04c2a27..d1293b6 100644
--- a/drivers/scsi/scsi_sysfs.c
+++ b/drivers/scsi/scsi_sysfs.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -993,12 +993,24 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; void scsi_remove_device(struct scsi_device *sdev)
 }
 EXPORT_SYMBOL(scsi_remove_device);
 
-static void __scsi_remove_target(struct scsi_target *starget)
+/**
+ * __scsi_remove_target - explicitly remove a target
+ * &amp;lt; at &amp;gt;starget: specific target to be removed
+ *
+ * This allows a target to be removed regardless of whether it has been
+ * async scanned or not.  scsi_remove_target() depends on
+ * device_for_each_child() and will not enumerate children that have not
+ * been through device_add() yet.
+ */
+void __scsi_remove_target(struct scsi_target *starget)
 {
 struct Scsi_Host *shost = dev_to_shost(starget-&amp;gt;dev.parent);
 unsigned long flags;
 struct scsi_device *sdev;
 
+if (!starget)
+return;
+
 spin_lock_irqsave(shost-&amp;gt;host_lock, flags);
 starget-&amp;gt;reap_ref++;
  restart:
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1016,6 +1028,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static void __scsi_remove_target(struct scsi_target *starget)
 spin_unlock_irqrestore(shost-&amp;gt;host_lock, flags);
 scsi_target_reap(starget);
 }
+EXPORT_SYMBOL_GPL(__scsi_remove_target);
 
 static int __remove_child (struct device * dev, void * data)
 {
diff --git a/drivers/scsi/scsi_transport_sas.c b/drivers/scsi/scsi_transport_sas.c
index f7565fc..3afb38d 100644
--- a/drivers/scsi/scsi_transport_sas.c
+++ b/drivers/scsi/scsi_transport_sas.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1592,7 +1592,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; int sas_rphy_add(struct sas_rphy *rphy)
 else
 lun = 0;
 
-scsi_scan_target(&amp;amp;rphy-&amp;gt;dev, 0, rphy-&amp;gt;scsi_target_id, lun, 0);
+rphy-&amp;gt;starget = scsi_scan_target(&amp;amp;rphy-&amp;gt;dev, 0, rphy-&amp;gt;scsi_target_id, lun, 0);
 }
 
 return 0;
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1669,7 +1669,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; sas_rphy_remove(struct sas_rphy *rphy)
 
 switch (rphy-&amp;gt;identify.device_type) {
 case SAS_END_DEVICE:
-scsi_remove_target(dev);
+__scsi_remove_target(rphy-&amp;gt;starget);
+rphy-&amp;gt;starget = NULL;
 break;
 case SAS_EDGE_EXPANDER_DEVICE:
 case SAS_FANOUT_EXPANDER_DEVICE:
diff --git a/include/scsi/scsi_device.h b/include/scsi/scsi_device.h
index 6efb2e1..7cd0d75 100644
--- a/include/scsi/scsi_device.h
+++ b/include/scsi/scsi_device.h
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -368,12 +368,13 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; extern int scsi_device_quiesce(struct scsi_device *sdev);
 extern void scsi_device_resume(struct scsi_device *sdev);
 extern void scsi_target_quiesce(struct scsi_target *);
 extern void scsi_target_resume(struct scsi_target *);
-extern void scsi_scan_target(struct device *parent, unsigned int channel,
-     unsigned int id, unsigned int lun, int rescan);
+extern struct scsi_target *scsi_scan_target(struct device *parent, unsigned int channel,
+    unsigned int id, unsigned int lun, int rescan);
 extern void scsi_target_reap(struct scsi_target *);
 extern void scsi_target_block(struct device *);
 extern void scsi_target_unblock(struct device *);
 extern void scsi_remove_target(struct device *);
+extern void __scsi_remove_target(struct scsi_target *starget);
 extern void int_to_scsilun(unsigned int, struct scsi_lun *);
 extern int scsilun_to_int(struct scsi_lun *);
 extern const char *scsi_device_state_name(enum scsi_device_state);
diff --git a/include/scsi/scsi_transport_sas.h b/include/scsi/scsi_transport_sas.h
index 98b3a20..d98dcef 100644
--- a/include/scsi/scsi_transport_sas.h
+++ b/include/scsi/scsi_transport_sas.h
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -93,6 +93,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; struct sas_rphy {
 struct list_headlist;
 struct request_queue*q;
 u32scsi_target_id;
+struct scsi_target*starget;
 };
 
 #define dev_to_rphy(d) \

--
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>Dan Williams</dc:creator>
    <dc:date>2012-05-25T07:55:48</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.scsi/75330">
    <title>[PATCH 4/4] scsi: cleanup usages of scsi_complete_async_scans</title>
    <link>http://permalink.gmane.org/gmane.linux.scsi/75330</link>
    <description>&lt;pre&gt;Now that scsi registers its async scan work with the async subsystem,
wait_for_device_probe() is sufficient for ensuring all scanning is
complete.

Cc: Arjan van de Ven &amp;lt;arjan&amp;lt; at &amp;gt;linux.intel.com&amp;gt;
Cc: Len Brown &amp;lt;len.brown&amp;lt; at &amp;gt;intel.com&amp;gt;
Cc: Rafael J. Wysocki &amp;lt;rjw&amp;lt; at &amp;gt;sisk.pl&amp;gt;
Cc: James Bottomley &amp;lt;JBottomley&amp;lt; at &amp;gt;parallels.com&amp;gt;
Signed-off-by: Dan Williams &amp;lt;dan.j.williams&amp;lt; at &amp;gt;intel.com&amp;gt;
---
 drivers/scsi/scsi_scan.c      |   12 ------------
 drivers/scsi/scsi_wait_scan.c |   15 +++++----------
 include/scsi/scsi_scan.h      |   11 -----------
 kernel/power/hibernate.c      |    8 --------
 kernel/power/user.c           |    2 --
 5 files changed, 5 insertions(+), 43 deletions(-)
 delete mode 100644 include/scsi/scsi_scan.h

diff --git a/drivers/scsi/scsi_scan.c b/drivers/scsi/scsi_scan.c
index fb42aa0..20c7108 100644
--- a/drivers/scsi/scsi_scan.c
+++ b/drivers/scsi/scsi_scan.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -184,18 +184,6 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; int scsi_complete_async_scans(void)
 return 0;
 }
 
-/* Only exported for the benefit of scsi_wait_scan */
-EXPORT_SYMBOL_GPL(scsi_complete_async_scans);
-
-#ifndef MODULE
-/*
- * For async scanning we need to wait for all the scans to complete before
- * trying to mount the root fs.  Otherwise non-modular drivers may not be ready
- * yet.
- */
-late_initcall(scsi_complete_async_scans);
-#endif
-
 /**
  * scsi_unlock_floptical - unlock device via a special MODE SENSE command
  * &amp;lt; at &amp;gt;sdev:scsi device to send command to
diff --git a/drivers/scsi/scsi_wait_scan.c b/drivers/scsi/scsi_wait_scan.c
index 74708fc..57de24a 100644
--- a/drivers/scsi/scsi_wait_scan.c
+++ b/drivers/scsi/scsi_wait_scan.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -12,21 +12,16 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 
 #include &amp;lt;linux/module.h&amp;gt;
 #include &amp;lt;linux/device.h&amp;gt;
-#include &amp;lt;scsi/scsi_scan.h&amp;gt;
 
 static int __init wait_scan_init(void)
 {
 /*
- * First we need to wait for device probing to finish;
- * the drivers we just loaded might just still be probing
- * and might not yet have reached the scsi async scanning
+ * This will not return until all async work (system wide) is
+ * quiesced.  Probing queues host-scanning work to the async
+ * queue which is why we don't need a separate call to
+ * scsi_complete_async_scans()
  */
 wait_for_device_probe();
-/*
- * and then we wait for the actual asynchronous scsi scan
- * to finish.
- */
-scsi_complete_async_scans();
 return 0;
 }
 
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -38,5 +33,5 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; MODULE_DESCRIPTION("SCSI wait for scans");
 MODULE_AUTHOR("James Bottomley");
 MODULE_LICENSE("GPL");
 
-late_initcall(wait_scan_init);
+module_init(wait_scan_init);
 module_exit(wait_scan_exit);
diff --git a/include/scsi/scsi_scan.h b/include/scsi/scsi_scan.h
deleted file mode 100644
index 7889888..0000000
--- a/include/scsi/scsi_scan.h
+++ /dev/null
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1,11 +0,0 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
-#ifndef _SCSI_SCSI_SCAN_H
-#define _SCSI_SCSI_SCAN_H
-
-#ifdef CONFIG_SCSI
-/* drivers/scsi/scsi_scan.c */
-extern int scsi_complete_async_scans(void);
-#else
-static inline int scsi_complete_async_scans(void) { return 0; }
-#endif
-
-#endif /* _SCSI_SCSI_SCAN_H */
diff --git a/kernel/power/hibernate.c b/kernel/power/hibernate.c
index e09dfbf..821114a 100644
--- a/kernel/power/hibernate.c
+++ b/kernel/power/hibernate.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -25,7 +25,6 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 #include &amp;lt;linux/freezer.h&amp;gt;
 #include &amp;lt;linux/gfp.h&amp;gt;
 #include &amp;lt;linux/syscore_ops.h&amp;gt;
-#include &amp;lt;scsi/scsi_scan.h&amp;gt;
 
 #include "power.h"
 
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -735,13 +734,6 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static int software_resume(void)
 async_synchronize_full();
 }
 
-/*
- * We can't depend on SCSI devices being available after loading
- * one of their modules until scsi_complete_async_scans() is
- * called and the resume device usually is a SCSI one.
- */
-scsi_complete_async_scans();
-
 swsusp_resume_device = name_to_dev_t(resume_file);
 if (!swsusp_resume_device) {
 error = -ENODEV;
diff --git a/kernel/power/user.c b/kernel/power/user.c
index 91b0fd0..4ed81e7 100644
--- a/kernel/power/user.c
+++ b/kernel/power/user.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -24,7 +24,6 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 #include &amp;lt;linux/console.h&amp;gt;
 #include &amp;lt;linux/cpu.h&amp;gt;
 #include &amp;lt;linux/freezer.h&amp;gt;
-#include &amp;lt;scsi/scsi_scan.h&amp;gt;
 
 #include &amp;lt;asm/uaccess.h&amp;gt;
 
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -84,7 +83,6 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static int snapshot_open(struct inode *inode, struct file *filp)
  * appear.
  */
 wait_for_device_probe();
-scsi_complete_async_scans();
 
 data-&amp;gt;swap = -1;
 data-&amp;gt;mode = O_WRONLY;

--
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>Dan Williams</dc:creator>
    <dc:date>2012-05-25T07:50:43</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.scsi/75325">
    <title>Re: [3.0.y, 3.2.y, 3.3.y] Re: [PATCH 05/10] hpsa: Fix problem with MSA2xxx devices</title>
    <link>http://permalink.gmane.org/gmane.linux.scsi/75325</link>
    <description>&lt;pre&gt;

Thanks, both.
--
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>Jonathan Nieder</dc:creator>
    <dc:date>2012-05-24T22:02:16</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.scsi/75322">
    <title>HHS5877 {Verify Your Ownership}</title>
    <link>http://permalink.gmane.org/gmane.linux.scsi/75322</link>
    <description>&lt;pre&gt;Your email just earn 1,000,000GBP in the  HEINEKEN STAR PRIZE Offer. 
Your reference code is: HHS5877. To proceed, please reply to verify 
you are the owner of this E-mail Address.

Info Dept.
Heineken Star prize

**SERVER**
THIS MESSAGE HAS BENN VERIFIED AND IT IS THEREFORE AUTHENTIC. If found 
in Junk/Spam folder please move to inbox before you reply, this is to 
avoid loss of relevant information regarding details of procedures 
from the sender.
--
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>heinekenprize&lt; at &gt;ua.fm</dc:creator>
    <dc:date>2012-05-24T16:47:06</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.scsi/75320">
    <title>Re: [RFC v2 PATCH 2/4] block: add queue runtime pm callbacks</title>
    <link>http://permalink.gmane.org/gmane.linux.scsi/75320</link>
    <description>&lt;pre&gt;
Just found that it's because "printk".

When disk is suspended, it prints out some message, for example,

[  670.597103] sd 0:0:0:0: [sda] Synchronizing SCSI cache
[  670.597827] sd 0:0:0:0: [sda] Stopping disk

Then syslogd is waken up to write the log.
So disk is resumed right after suspended.

Lin Ming

--
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>Lin Ming</dc:creator>
    <dc:date>2012-05-24T10:19:36</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.scsi/75316">
    <title>Re: 3.4.0-02580-g72c04af regression on sparc64 - partitions not recognized</title>
    <link>http://permalink.gmane.org/gmane.linux.scsi/75316</link>
    <description>&lt;pre&gt;
Hm, we already have cases of code not trusting the semantics of
wait_for_device_probe(), especially as it relates to async scanning like
in kernel/power/hibernate.c:

                /*
                 * Some device discovery might still be in progress; we need
                 * to wait for this to finish.
                 */
                wait_for_device_probe();

                if (resume_wait) {
                        while ((swsusp_resume_device = name_to_dev_t(resume_file)) == 0)
                                msleep(10);
                        async_synchronize_full();
                }

                /*
                 * We can't depend on SCSI devices being available after loading
                 * one of their modules until scsi_complete_async_scans() is
                 * called and the resume device usually is a SCSI one.
                 */
                scsi_complete_async_scans();


...so it seems scsi_complete_async_scans() should take care to flush sd
probe actions as well... here is a test patch:

--- snip ---

diff --git a/drivers/scsi/scsi_scan.c b/drivers/scsi/scsi_scan.c
index 8906557..05a92d3 100644
--- a/drivers/scsi/scsi_scan.c
+++ b/drivers/scsi/scsi_scan.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -141,13 +141,13 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; struct async_scan_data {
  * started scanning after this function was called may or may not have
  * finished.
  */
-int scsi_complete_async_scans(void)
+static void __scsi_complete_async_scans(void)
 {
        struct async_scan_data *data;
 
        do {
                if (list_empty(&amp;amp;scanning_hosts))
-                       return 0;
+                       return;
                /* If we can't get memory immediately, that's OK.  Just
                 * sleep a little.  Even if we never get memory, the async
                 * scans will finish eventually.
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -181,6 +181,13 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; int scsi_complete_async_scans(void)
        spin_unlock(&amp;amp;async_scan_lock);
 
        kfree(data);
+}
+
+int scsi_complete_async_scans(void)
+{
+       __scsi_complete_async_scans();
+       async_synchronize_full_domain(&amp;amp;scsi_sd_probe_domain);
+
        return 0;
 }
 


--
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>Dan Williams</dc:creator>
    <dc:date>2012-05-24T02:22:20</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.scsi/75315">
    <title>[PATCH 1/1] be2iscsi: fix dma free size mismatch regression</title>
    <link>http://permalink.gmane.org/gmane.linux.scsi/75315</link>
    <description>&lt;pre&gt;From: Mike Christie &amp;lt;michaelc&amp;lt; at &amp;gt;cs.wisc.edu&amp;gt;

This patch should go into 3.5 fixes. The bug was added in the
patches for the 3.5 feature window.

As you can see from the patch I made a mistake. During
development I switched from passing a struct to the size of
the struct, but left the sizeof. This results in us allocating
4 bytes (sizeof(int)) but then calling pci_free_consistent
with the size of the struct.

Signed-off-by: Mike Christie &amp;lt;michaelc&amp;lt; at &amp;gt;cs.wisc.edu&amp;gt;
---
 drivers/scsi/be2iscsi/be_mgmt.c |    5 ++---
 1 files changed, 2 insertions(+), 3 deletions(-)

diff --git a/drivers/scsi/be2iscsi/be_mgmt.c b/drivers/scsi/be2iscsi/be_mgmt.c
index 01bb04c..2a09679 100644
--- a/drivers/scsi/be2iscsi/be_mgmt.c
+++ b/drivers/scsi/be2iscsi/be_mgmt.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -571,13 +571,12 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; free_cmd:
 static int mgmt_alloc_cmd_data(struct beiscsi_hba *phba, struct be_dma_mem *cmd,
        int iscsi_cmd, int size)
 {
-cmd-&amp;gt;va = pci_alloc_consistent(phba-&amp;gt;ctrl.pdev, sizeof(size),
-       &amp;amp;cmd-&amp;gt;dma);
+cmd-&amp;gt;va = pci_alloc_consistent(phba-&amp;gt;ctrl.pdev, size, &amp;amp;cmd-&amp;gt;dma);
 if (!cmd-&amp;gt;va) {
 SE_DEBUG(DBG_LVL_1, "Failed to allocate memory for if info\n");
 return -ENOMEM;
 }
-memset(cmd-&amp;gt;va, 0, sizeof(size));
+memset(cmd-&amp;gt;va, 0, size);
 cmd-&amp;gt;size = size;
 be_cmd_hdr_prepare(cmd-&amp;gt;va, CMD_SUBSYSTEM_ISCSI, iscsi_cmd, size);
 return 0;
&lt;/pre&gt;</description>
    <dc:creator>michaelc&lt; at &gt;cs.wisc.edu</dc:creator>
    <dc:date>2012-05-24T01:40:54</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.scsi/75312">
    <title>GET BACK TO ME ASAP.</title>
    <link>http://permalink.gmane.org/gmane.linux.scsi/75312</link>
    <description>&lt;pre&gt;Good day my beloved friend,

How are you and your lovely family doing today,i hope all is well?if so glory 
be to God,i have an urgent purposal for you, if interested kindly contact me on 
this e-mail (anna_kennedy_hood&amp;lt; at &amp;gt;hotmail.co.uk)
--
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>Mrs Anna Kennedy</dc:creator>
    <dc:date>2012-05-23T18:58:27</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.scsi/75308">
    <title>Re: [RFC PATCH v3 0/4]: block layer runtime pm</title>
    <link>http://permalink.gmane.org/gmane.linux.scsi/75308</link>
    <description>&lt;pre&gt;
REQ_PM flag is about runtime PM, but IDE driver does not support
runtime PM at all.

# grep runtime drivers/ide/*.c

This gets empty result.

So I think it won't break the IDE driver.

Thanks,
Lin Ming

--
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>Lin Ming</dc:creator>
    <dc:date>2012-05-23T15:53:42</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.scsi/75302">
    <title>Re: [RFC v2 PATCH 2/4] block: add queue runtime pm callbacks</title>
    <link>http://permalink.gmane.org/gmane.linux.scsi/75302</link>
    <description>&lt;pre&gt;

I don't think it's a problem, because all you're doing is reading 
dev-&amp;gt;power.rpm_status -- you're not writing it.

On the other hand, there's nothing really wrong with keeping your own
local copy of rpm_status.  You could think of it as being the queue's
status as opposed to the device's status.  (Also, some people might
argue that dev-&amp;gt;power.rpm_status is supposed to be private to the
runtime PM core and shouldn't be used by other code.)

Alan Stern

--
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>Alan Stern</dc:creator>
    <dc:date>2012-05-23T14:58:24</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.scsi/75300">
    <title>Re: [RFC PATCH v3 4/4] [SCSI] sd: change to auto suspend mode</title>
    <link>http://permalink.gmane.org/gmane.linux.scsi/75300</link>
    <description>&lt;pre&gt;

Sorry I didn't have time to get to this yesterday...



This really should be pm_runtime_autosuspend(dev).  In practice there's
very little difference; it's mostly a matter of style.



This should be left the way it was.  scsi_autopm_put_device() does 
pm_runtime_put_sync(), which will call scsi_runtime_idle(), which will 
now call pm_runtime_autosuspend().


This line should be kept as is.  The SCSI core uses the incremented 
usage count to prevent driverless devices from being runtime-suspended.

Alan Stern


--
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>Alan Stern</dc:creator>
    <dc:date>2012-05-23T14:43:30</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.scsi/75299">
    <title>Re: [RFC V4 0/2] Add support for pci/non-pci probing for UFS</title>
    <link>http://permalink.gmane.org/gmane.linux.scsi/75299</link>
    <description>&lt;pre&gt;Will generate a patch including your Ack.
If Namjae and  Christoph Hellwi agree will include their ack in the patch
--
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>Girish K S</dc:creator>
    <dc:date>2012-05-23T12:05:22</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.scsi/75298">
    <title>Re: [RFC V4 0/2] Add support for pci/non-pci probing for UFS</title>
    <link>http://permalink.gmane.org/gmane.linux.scsi/75298</link>
    <description>&lt;pre&gt;On Tue, May 22, 2012 at 5:03 PM, Girish K S
&amp;lt;girish.shivananjappa&amp;lt; at &amp;gt;linaro.org&amp;gt; wrote:
Thanks Girish.
V4 looks ok to me. If it helps, you can add
Reviewed-by: Venkatraman S &amp;lt;svenkatr&amp;lt; at &amp;gt;ti.com&amp;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>S, Venkatraman</dc:creator>
    <dc:date>2012-05-23T09:06:17</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.scsi/75297">
    <title>Re: [PATCH] [SCSI] ufs: fix potential NULL pointer dereferencing error in ufshcd_probe.</title>
    <link>http://permalink.gmane.org/gmane.linux.scsi/75297</link>
    <description>&lt;pre&gt;
Because it's a question of who has to mangle the patch title.  If it's
the latter, it's me.  The [SCSI] tree tag I use implies we're in
driver/scsi, so I only add extra bits if we move outside that.

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>2012-05-23T08:52:08</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.scsi/75294">
    <title>Re: [RFC PATCH v3 0/4]: block layer runtime pm</title>
    <link>http://permalink.gmane.org/gmane.linux.scsi/75294</link>
    <description>&lt;pre&gt;
Will check it.

Another thing need to check is if system suspend/resume works.

--
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>Lin Ming</dc:creator>
    <dc:date>2012-05-23T08:29:19</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>

