<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/drivers/scsi/scsi_scan.c, branch linux-4.4.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.4.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.4.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2021-08-26T12:37:50Z</updated>
<entry>
<title>scsi: core: Avoid printing an error if target_alloc() returns -ENXIO</title>
<updated>2021-08-26T12:37:50Z</updated>
<author>
<name>Sreekanth Reddy</name>
</author>
<published>2021-07-26T11:54:02Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=0d5f604e9f87c02ee4b6982c28457e78091d2759'/>
<id>urn:sha1:0d5f604e9f87c02ee4b6982c28457e78091d2759</id>
<content type='text'>
[ Upstream commit 70edd2e6f652f67d854981fd67f9ad0f1deaea92 ]

Avoid printing a 'target allocation failed' error if the driver
target_alloc() callback function returns -ENXIO. This return value
indicates that the corresponding H:C:T:L entry is empty.

Removing this error reduces the scan time if the user issues SCAN_WILD_CARD
scan operation through sysfs parameter on a host with a lot of empty
H:C:T:L entries.

Avoiding the printk on -ENXIO matches the behavior of the other callback
functions during scanning.

Link: https://lore.kernel.org/r/20210726115402.1936-1-sreekanth.reddy@broadcom.com
Signed-off-by: Sreekanth Reddy &lt;sreekanth.reddy@broadcom.com&gt;
Signed-off-by: Martin K. Petersen &lt;martin.petersen@oracle.com&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>scsi: core: Don't start concurrent async scan on same host</title>
<updated>2020-11-10T09:22:20Z</updated>
<author>
<name>Ming Lei</name>
</author>
<published>2020-10-10T03:25:39Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=cba7a192c1e17ae7e74e2d7ecc73e9ea5a48faaf'/>
<id>urn:sha1:cba7a192c1e17ae7e74e2d7ecc73e9ea5a48faaf</id>
<content type='text'>
[ Upstream commit 831e3405c2a344018a18fcc2665acc5a38c3a707 ]

The current scanning mechanism is supposed to fall back to a synchronous
host scan if an asynchronous scan is in progress. However, this rule isn't
strictly respected, scsi_prep_async_scan() doesn't hold scan_mutex when
checking shost-&gt;async_scan. When scsi_scan_host() is called concurrently,
two async scans on same host can be started and a hang in do_scan_async()
is observed.

Fixes this issue by checking &amp; setting shost-&gt;async_scan atomically with
shost-&gt;scan_mutex.

Link: https://lore.kernel.org/r/20201010032539.426615-1-ming.lei@redhat.com
Cc: Christoph Hellwig &lt;hch@lst.de&gt;
Cc: Ewan D. Milne &lt;emilne@redhat.com&gt;
Cc: Hannes Reinecke &lt;hare@suse.de&gt;
Cc: Bart Van Assche &lt;bvanassche@acm.org&gt;
Reviewed-by: Lee Duncan &lt;lduncan@suse.com&gt;
Reviewed-by: Bart Van Assche &lt;bvanassche@acm.org&gt;
Signed-off-by: Ming Lei &lt;ming.lei@redhat.com&gt;
Signed-off-by: Martin K. Petersen &lt;martin.petersen@oracle.com&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>scsi: core: replace GFP_ATOMIC with GFP_KERNEL in scsi_scan.c</title>
<updated>2019-04-27T07:33:49Z</updated>
<author>
<name>Benjamin Block</name>
</author>
<published>2019-02-21T09:18:00Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=2ad89a6a0dba18afa761fb6e768c51c257549ef9'/>
<id>urn:sha1:2ad89a6a0dba18afa761fb6e768c51c257549ef9</id>
<content type='text'>
[ Upstream commit 1749ef00f7312679f76d5e9104c5d1e22a829038 ]

We had a test-report where, under memory pressure, adding LUNs to the
systems would fail (the tests add LUNs strictly in sequence):

[ 5525.853432] scsi 0:0:1:1088045124: Direct-Access     IBM      2107900          .148 PQ: 0 ANSI: 5
[ 5525.853826] scsi 0:0:1:1088045124: alua: supports implicit TPGS
[ 5525.853830] scsi 0:0:1:1088045124: alua: device naa.6005076303ffd32700000000000044da port group 0 rel port 43
[ 5525.853931] sd 0:0:1:1088045124: Attached scsi generic sg10 type 0
[ 5525.854075] sd 0:0:1:1088045124: [sdk] Disabling DIF Type 1 protection
[ 5525.855495] sd 0:0:1:1088045124: [sdk] 2097152 512-byte logical blocks: (1.07 GB/1.00 GiB)
[ 5525.855606] sd 0:0:1:1088045124: [sdk] Write Protect is off
[ 5525.855609] sd 0:0:1:1088045124: [sdk] Mode Sense: ed 00 00 08
[ 5525.855795] sd 0:0:1:1088045124: [sdk] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 5525.857838]  sdk: sdk1
[ 5525.859468] sd 0:0:1:1088045124: [sdk] Attached SCSI disk
[ 5525.865073] sd 0:0:1:1088045124: alua: transition timeout set to 60 seconds
[ 5525.865078] sd 0:0:1:1088045124: alua: port group 00 state A preferred supports tolusnA
[ 5526.015070] sd 0:0:1:1088045124: alua: port group 00 state A preferred supports tolusnA
[ 5526.015213] sd 0:0:1:1088045124: alua: port group 00 state A preferred supports tolusnA
[ 5526.587439] scsi_alloc_sdev: Allocation failure during SCSI scanning, some SCSI devices might not be configured
[ 5526.588562] scsi_alloc_sdev: Allocation failure during SCSI scanning, some SCSI devices might not be configured

Looking at the code of scsi_alloc_sdev(), and all the calling contexts,
there seems to be no reason to use GFP_ATMOIC here. All the different
call-contexts use a mutex at some point, and nothing in between that
requires no sleeping, as far as I could see. Additionally, the code that
later allocates the block queue for the device (scsi_mq_alloc_queue())
already uses GFP_KERNEL.

There are similar allocations in two other functions:
scsi_probe_and_add_lun(), and scsi_add_lun(),; that can also be done with
GFP_KERNEL.

Here is the contexts for the three functions so far:

    scsi_alloc_sdev()
        scsi_probe_and_add_lun()
            scsi_sequential_lun_scan()
                __scsi_scan_target()
                    scsi_scan_target()
                        mutex_lock()
                    scsi_scan_channel()
                        scsi_scan_host_selected()
                            mutex_lock()
            scsi_report_lun_scan()
                __scsi_scan_target()
    	            ...
            __scsi_add_device()
                mutex_lock()
            __scsi_scan_target()
                ...
        scsi_report_lun_scan()
            ...
        scsi_get_host_dev()
            mutex_lock()

    scsi_probe_and_add_lun()
        ...

    scsi_add_lun()
        scsi_probe_and_add_lun()
            ...

So replace all these, and give them a bit of a better chance to succeed,
with more chances of reclaim.

Signed-off-by: Benjamin Block &lt;bblock@linux.ibm.com&gt;
Reviewed-by: Bart Van Assche &lt;bvanassche@acm.org&gt;
Signed-off-by: Martin K. Petersen &lt;martin.petersen@oracle.com&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>scsi: Add STARGET_CREATED_REMOVE state to scsi_target_state</title>
<updated>2018-11-10T15:41:37Z</updated>
<author>
<name>Ewan D. Milne</name>
</author>
<published>2017-06-27T18:55:58Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d896b9f298afcfc4873000a290324ba72b23eef5'/>
<id>urn:sha1:d896b9f298afcfc4873000a290324ba72b23eef5</id>
<content type='text'>
[ Upstream commit f9279c968c257ee39b0d7bd2571a4d231a67bcc1 ]

The addition of the STARGET_REMOVE state had the side effect of
introducing a race condition that can cause a crash.

scsi_target_reap_ref_release() checks the starget-&gt;state to
see if it still in STARGET_CREATED, and if so, skips calling
transport_remove_device() and device_del(), because the starget-&gt;state
is only set to STARGET_RUNNING after scsi_target_add() has called
device_add() and transport_add_device().

However, if an rport loss occurs while a target is being scanned,
it can happen that scsi_remove_target() will be called while the
starget is still in the STARGET_CREATED state.  In this case, the
starget-&gt;state will be set to STARGET_REMOVE, and as a result,
scsi_target_reap_ref_release() will take the wrong path.  The end
result is a panic:

[ 1255.356653] Oops: 0000 [#1] SMP
[ 1255.360154] Modules linked in: x86_pkg_temp_thermal kvm_intel kvm irqbypass crc32c_intel ghash_clmulni_i
[ 1255.393234] CPU: 5 PID: 149 Comm: kworker/u96:4 Tainted: G        W       4.11.0+ #8
[ 1255.401879] Hardware name: Dell Inc. PowerEdge R320/08VT7V, BIOS 2.0.22 11/19/2013
[ 1255.410327] Workqueue: scsi_wq_6 fc_scsi_scan_rport [scsi_transport_fc]
[ 1255.417720] task: ffff88060ca8c8c0 task.stack: ffffc900048a8000
[ 1255.424331] RIP: 0010:kernfs_find_ns+0x13/0xc0
[ 1255.429287] RSP: 0018:ffffc900048abbf0 EFLAGS: 00010246
[ 1255.435123] RAX: 0000000000000000 RBX: 0000000000000000 RCX: 0000000000000000
[ 1255.443083] RDX: 0000000000000000 RSI: ffffffff8188d659 RDI: 0000000000000000
[ 1255.451043] RBP: ffffc900048abc10 R08: 0000000000000000 R09: 0000012433fe0025
[ 1255.459005] R10: 0000000025e5a4b5 R11: 0000000025e5a4b5 R12: ffffffff8188d659
[ 1255.466972] R13: 0000000000000000 R14: ffff8805f55e5088 R15: 0000000000000000
[ 1255.474931] FS:  0000000000000000(0000) GS:ffff880616b40000(0000) knlGS:0000000000000000
[ 1255.483959] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 1255.490370] CR2: 0000000000000068 CR3: 0000000001c09000 CR4: 00000000000406e0
[ 1255.498332] Call Trace:
[ 1255.501058]  kernfs_find_and_get_ns+0x31/0x60
[ 1255.505916]  sysfs_unmerge_group+0x1d/0x60
[ 1255.510498]  dpm_sysfs_remove+0x22/0x60
[ 1255.514783]  device_del+0xf4/0x2e0
[ 1255.518577]  ? device_remove_file+0x19/0x20
[ 1255.523241]  attribute_container_class_device_del+0x1a/0x20
[ 1255.529457]  transport_remove_classdev+0x4e/0x60
[ 1255.534607]  ? transport_add_class_device+0x40/0x40
[ 1255.540046]  attribute_container_device_trigger+0xb0/0xc0
[ 1255.546069]  transport_remove_device+0x15/0x20
[ 1255.551025]  scsi_target_reap_ref_release+0x25/0x40
[ 1255.556467]  scsi_target_reap+0x2e/0x40
[ 1255.560744]  __scsi_scan_target+0xaa/0x5b0
[ 1255.565312]  scsi_scan_target+0xec/0x100
[ 1255.569689]  fc_scsi_scan_rport+0xb1/0xc0 [scsi_transport_fc]
[ 1255.576099]  process_one_work+0x14b/0x390
[ 1255.580569]  worker_thread+0x4b/0x390
[ 1255.584651]  kthread+0x109/0x140
[ 1255.588251]  ? rescuer_thread+0x330/0x330
[ 1255.592730]  ? kthread_park+0x60/0x60
[ 1255.596815]  ret_from_fork+0x29/0x40
[ 1255.600801] Code: 24 08 48 83 42 40 01 5b 41 5c 5d c3 66 66 66 2e 0f 1f 84 00 00 00 00 00 66 66 66 66 90
[ 1255.621876] RIP: kernfs_find_ns+0x13/0xc0 RSP: ffffc900048abbf0
[ 1255.628479] CR2: 0000000000000068
[ 1255.632756] ---[ end trace 34a69ba0477d036f ]---

Fix this by adding another scsi_target state STARGET_CREATED_REMOVE
to distinguish this case.

Fixes: f05795d3d771 ("scsi: Add intermediate STARGET_REMOVE state to scsi_target_state")
Reported-by: David Jeffery &lt;djeffery@redhat.com&gt;
Signed-off-by: Ewan D. Milne &lt;emilne@redhat.com&gt;
Cc: &lt;stable@vger.kernel.org&gt;
Reviewed-by: Laurence Oberman &lt;loberman@redhat.com&gt;
Tested-by: Laurence Oberman &lt;loberman@redhat.com&gt;
Reviewed-by: Johannes Thumshirn &lt;jthumshirn@suse.de&gt;
Signed-off-by: Martin K. Petersen &lt;martin.petersen@oracle.com&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>scsi: Fix use-after-free</title>
<updated>2016-10-28T07:01:31Z</updated>
<author>
<name>Ming Lei</name>
</author>
<published>2016-10-09T05:23:27Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=bffff9301e1dde678ebe511636999dffa2dfa117'/>
<id>urn:sha1:bffff9301e1dde678ebe511636999dffa2dfa117</id>
<content type='text'>
commit bcd8f2e94808fcddf6ef3af5f060a36820dcc432 upstream.

This patch fixes one use-after-free report[1] by KASAN.

In __scsi_scan_target(), when a type 31 device is probed,
SCSI_SCAN_TARGET_PRESENT is returned and the target will be scanned
again.

Inside the following scsi_report_lun_scan(), one new scsi_device
instance is allocated, and scsi_probe_and_add_lun() is called again to
probe the target and still see type 31 device, finally
__scsi_remove_device() is called to remove &amp; free the device at the end
of scsi_probe_and_add_lun(), so cause use-after-free in
scsi_report_lun_scan().

And the following SCSI log can be observed:

	scsi 0:0:2:0: scsi scan: INQUIRY pass 1 length 36
	scsi 0:0:2:0: scsi scan: INQUIRY successful with code 0x0
	scsi 0:0:2:0: scsi scan: peripheral device type of 31, no device added
	scsi 0:0:2:0: scsi scan: Sending REPORT LUNS to (try 0)
	scsi 0:0:2:0: scsi scan: REPORT LUNS successful (try 0) result 0x0
	scsi 0:0:2:0: scsi scan: REPORT LUN scan
	scsi 0:0:2:0: scsi scan: INQUIRY pass 1 length 36
	scsi 0:0:2:0: scsi scan: INQUIRY successful with code 0x0
	scsi 0:0:2:0: scsi scan: peripheral device type of 31, no device added
	BUG: KASAN: use-after-free in __scsi_scan_target+0xbf8/0xe40 at addr ffff88007b44a104

This patch fixes the issue by moving the putting reference at
the end of scsi_report_lun_scan().

[1] KASAN report
==================================================================
[    3.274597] PM: Adding info for serio:serio1
[    3.275127] BUG: KASAN: use-after-free in __scsi_scan_target+0xd87/0xdf0 at addr ffff880254d8c304
[    3.275653] Read of size 4 by task kworker/u10:0/27
[    3.275903] CPU: 3 PID: 27 Comm: kworker/u10:0 Not tainted 4.8.0 #2121
[    3.276258] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS Ubuntu-1.8.2-1ubuntu1 04/01/2014
[    3.276797] Workqueue: events_unbound async_run_entry_fn
[    3.277083]  ffff880254d8c380 ffff880259a37870 ffffffff94bbc6c1 ffff880078402d80
[    3.277532]  ffff880254d8bb80 ffff880259a37898 ffffffff9459fec1 ffff880259a37930
[    3.277989]  ffff880254d8bb80 ffff880078402d80 ffff880259a37920 ffffffff945a0165
[    3.278436] Call Trace:
[    3.278528]  [&lt;ffffffff94bbc6c1&gt;] dump_stack+0x65/0x84
[    3.278797]  [&lt;ffffffff9459fec1&gt;] kasan_object_err+0x21/0x70
[    3.279063] device: 'psaux': device_add
[    3.279616]  [&lt;ffffffff945a0165&gt;] kasan_report_error+0x205/0x500
[    3.279651] PM: Adding info for No Bus:psaux
[    3.280202]  [&lt;ffffffff944ecd22&gt;] ? kfree_const+0x22/0x30
[    3.280486]  [&lt;ffffffff94bc2dc9&gt;] ? kobject_release+0x119/0x370
[    3.280805]  [&lt;ffffffff945a0543&gt;] __asan_report_load4_noabort+0x43/0x50
[    3.281170]  [&lt;ffffffff9507e1f7&gt;] ? __scsi_scan_target+0xd87/0xdf0
[    3.281506]  [&lt;ffffffff9507e1f7&gt;] __scsi_scan_target+0xd87/0xdf0
[    3.281848]  [&lt;ffffffff9507d470&gt;] ? scsi_add_device+0x30/0x30
[    3.282156]  [&lt;ffffffff94f7f660&gt;] ? pm_runtime_autosuspend_expiration+0x60/0x60
[    3.282570]  [&lt;ffffffff956ddb07&gt;] ? _raw_spin_lock+0x17/0x40
[    3.282880]  [&lt;ffffffff9507e505&gt;] scsi_scan_channel+0x105/0x160
[    3.283200]  [&lt;ffffffff9507e8a2&gt;] scsi_scan_host_selected+0x212/0x2f0
[    3.283563]  [&lt;ffffffff9507eb3c&gt;] do_scsi_scan_host+0x1bc/0x250
[    3.283882]  [&lt;ffffffff9507efc1&gt;] do_scan_async+0x41/0x450
[    3.284173]  [&lt;ffffffff941c1fee&gt;] async_run_entry_fn+0xfe/0x610
[    3.284492]  [&lt;ffffffff941a8954&gt;] ? pwq_dec_nr_in_flight+0x124/0x2a0
[    3.284876]  [&lt;ffffffff941d1770&gt;] ? preempt_count_add+0x130/0x160
[    3.285207]  [&lt;ffffffff941a9a84&gt;] process_one_work+0x544/0x12d0
[    3.285526]  [&lt;ffffffff941aa8e9&gt;] worker_thread+0xd9/0x12f0
[    3.285844]  [&lt;ffffffff941aa810&gt;] ? process_one_work+0x12d0/0x12d0
[    3.286182]  [&lt;ffffffff941bb365&gt;] kthread+0x1c5/0x260
[    3.286443]  [&lt;ffffffff940855cd&gt;] ? __switch_to+0x88d/0x1430
[    3.286745]  [&lt;ffffffff941bb1a0&gt;] ? kthread_worker_fn+0x5a0/0x5a0
[    3.287085]  [&lt;ffffffff956dde9f&gt;] ret_from_fork+0x1f/0x40
[    3.287368]  [&lt;ffffffff941bb1a0&gt;] ? kthread_worker_fn+0x5a0/0x5a0
[    3.287697] Object at ffff880254d8bb80, in cache kmalloc-2048 size: 2048
[    3.288064] Allocated:
[    3.288147] PID = 27
[    3.288218]  [&lt;ffffffff940b27ab&gt;] save_stack_trace+0x2b/0x50
[    3.288531]  [&lt;ffffffff9459f246&gt;] save_stack+0x46/0xd0
[    3.288806]  [&lt;ffffffff9459f4bd&gt;] kasan_kmalloc+0xad/0xe0
[    3.289098]  [&lt;ffffffff9459c07e&gt;] __kmalloc+0x13e/0x250
[    3.289378]  [&lt;ffffffff95078e5a&gt;] scsi_alloc_sdev+0xea/0xcf0
[    3.289701]  [&lt;ffffffff9507de76&gt;] __scsi_scan_target+0xa06/0xdf0
[    3.290034]  [&lt;ffffffff9507e505&gt;] scsi_scan_channel+0x105/0x160
[    3.290362]  [&lt;ffffffff9507e8a2&gt;] scsi_scan_host_selected+0x212/0x2f0
[    3.290724]  [&lt;ffffffff9507eb3c&gt;] do_scsi_scan_host+0x1bc/0x250
[    3.291055]  [&lt;ffffffff9507efc1&gt;] do_scan_async+0x41/0x450
[    3.291354]  [&lt;ffffffff941c1fee&gt;] async_run_entry_fn+0xfe/0x610
[    3.291695]  [&lt;ffffffff941a9a84&gt;] process_one_work+0x544/0x12d0
[    3.292022]  [&lt;ffffffff941aa8e9&gt;] worker_thread+0xd9/0x12f0
[    3.292325]  [&lt;ffffffff941bb365&gt;] kthread+0x1c5/0x260
[    3.292594]  [&lt;ffffffff956dde9f&gt;] ret_from_fork+0x1f/0x40
[    3.292886] Freed:
[    3.292945] PID = 27
[    3.293016]  [&lt;ffffffff940b27ab&gt;] save_stack_trace+0x2b/0x50
[    3.293327]  [&lt;ffffffff9459f246&gt;] save_stack+0x46/0xd0
[    3.293600]  [&lt;ffffffff9459fa61&gt;] kasan_slab_free+0x71/0xb0
[    3.293916]  [&lt;ffffffff9459bac2&gt;] kfree+0xa2/0x1f0
[    3.294168]  [&lt;ffffffff9508158a&gt;] scsi_device_dev_release_usercontext+0x50a/0x730
[    3.294598]  [&lt;ffffffff941ace9a&gt;] execute_in_process_context+0xda/0x130
[    3.294974]  [&lt;ffffffff9508107c&gt;] scsi_device_dev_release+0x1c/0x20
[    3.295322]  [&lt;ffffffff94f566f6&gt;] device_release+0x76/0x1e0
[    3.295626]  [&lt;ffffffff94bc2db7&gt;] kobject_release+0x107/0x370
[    3.295942]  [&lt;ffffffff94bc29ce&gt;] kobject_put+0x4e/0xa0
[    3.296222]  [&lt;ffffffff94f56e17&gt;] put_device+0x17/0x20
[    3.296497]  [&lt;ffffffff9505201c&gt;] scsi_device_put+0x7c/0xa0
[    3.296801]  [&lt;ffffffff9507e1bc&gt;] __scsi_scan_target+0xd4c/0xdf0
[    3.297132]  [&lt;ffffffff9507e505&gt;] scsi_scan_channel+0x105/0x160
[    3.297458]  [&lt;ffffffff9507e8a2&gt;] scsi_scan_host_selected+0x212/0x2f0
[    3.297829]  [&lt;ffffffff9507eb3c&gt;] do_scsi_scan_host+0x1bc/0x250
[    3.298156]  [&lt;ffffffff9507efc1&gt;] do_scan_async+0x41/0x450
[    3.298453]  [&lt;ffffffff941c1fee&gt;] async_run_entry_fn+0xfe/0x610
[    3.298777]  [&lt;ffffffff941a9a84&gt;] process_one_work+0x544/0x12d0
[    3.299105]  [&lt;ffffffff941aa8e9&gt;] worker_thread+0xd9/0x12f0
[    3.299408]  [&lt;ffffffff941bb365&gt;] kthread+0x1c5/0x260
[    3.299676]  [&lt;ffffffff956dde9f&gt;] ret_from_fork+0x1f/0x40
[    3.299967] Memory state around the buggy address:
[    3.300209]  ffff880254d8c200: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
[    3.300608]  ffff880254d8c280: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
[    3.300986] &gt;ffff880254d8c300: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
[    3.301408]                    ^
[    3.301550]  ffff880254d8c380: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
[    3.301987]  ffff880254d8c400: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[    3.302396]
==================================================================

Cc: Christoph Hellwig &lt;hch@lst.de&gt;
Signed-off-by: Ming Lei &lt;tom.leiming@gmail.com&gt;
Reviewed-by: Christoph Hellwig &lt;hch@lst.de&gt;
Signed-off-by: Martin K. Petersen &lt;martin.petersen@oracle.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>scsi: Add intermediate STARGET_REMOVE state to scsi_target_state</title>
<updated>2016-06-01T19:15:54Z</updated>
<author>
<name>Johannes Thumshirn</name>
</author>
<published>2016-04-05T09:50:44Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=210588c0344e7daf1351aa3c68b0cd9141ab80dc'/>
<id>urn:sha1:210588c0344e7daf1351aa3c68b0cd9141ab80dc</id>
<content type='text'>
commit f05795d3d771f30a7bdc3a138bf714b06d42aa95 upstream.

Add intermediate STARGET_REMOVE state to scsi_target_state to avoid
running into the BUG_ON() in scsi_target_reap(). The STARGET_REMOVE
state is only valid in the path from scsi_remove_target() to
scsi_target_destroy() indicating this target is going to be removed.

This re-fixes the problem introduced in commits bc3f02a795d3 ("[SCSI]
scsi_remove_target: fix softlockup regression on hot remove") and
40998193560d ("scsi: restart list search after unlock in
scsi_remove_target") in a more comprehensive way.

[mkp: Included James' fix for scsi_target_destroy()]

Signed-off-by: Johannes Thumshirn &lt;jthumshirn@suse.de&gt;
Fixes: 40998193560dab6c3ce8d25f4fa58a23e252ef38
Reported-by: Sergey Senozhatsky &lt;sergey.senozhatsky@gmail.com&gt;
Tested-by: Sergey Senozhatsky &lt;sergey.senozhatsky@gmail.com&gt;
Reviewed-by: Ewan D. Milne &lt;emilne@redhat.com&gt;
Reviewed-by: Hannes Reinecke &lt;hare@suse.com&gt;
Reviewed-by: James Bottomley &lt;jejb@linux.vnet.ibm.com&gt;
Signed-off-by: Martin K. Petersen &lt;martin.petersen@oracle.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>Merge branch 'mkp-fixes' into fixes</title>
<updated>2015-12-03T17:32:33Z</updated>
<author>
<name>James Bottomley</name>
</author>
<published>2015-12-03T17:32:33Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=be9e2f775f5a3147205c552534c3abf0f9374a13'/>
<id>urn:sha1:be9e2f775f5a3147205c552534c3abf0f9374a13</id>
<content type='text'>
</content>
</entry>
<entry>
<title>scsi: report 'INQUIRY result too short' once per host</title>
<updated>2015-11-19T17:12:16Z</updated>
<author>
<name>Vitaly Kuznetsov</name>
</author>
<published>2015-11-19T13:17:06Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a35bb4458e5e5c9dc19a0daa0629409285f3b25e'/>
<id>urn:sha1:a35bb4458e5e5c9dc19a0daa0629409285f3b25e</id>
<content type='text'>
Some host adapters (e.g. Hyper-V storvsc) are known for not respecting
the SPC-2/3/4 requirement for 'INQUIRY data (see table ...) shall
contain at least 36 bytes'. As a result we get tons on 'scsi 0:7:1:1:
scsi scan: INQUIRY result too short (5), using 36' messages on
console. This can be problematic for slow consoles. Introduce
short_inquiry flag in struct Scsi_Host to print the message once per
host.

Signed-off-by: Vitaly Kuznetsov &lt;vkuznets@redhat.com&gt;
Reviewed-by: Christoph Hellwig &lt;hch@lst.de&gt;
Reviewed-by: Hannes Reinecke &lt;hare@suse.com&gt;
Signed-off-by: Martin K. Petersen &lt;martin.petersen@oracle.com&gt;
</content>
</entry>
<entry>
<title>Merge tag '4.4-scsi-mkp' into misc</title>
<updated>2015-11-12T12:06:18Z</updated>
<author>
<name>James Bottomley</name>
</author>
<published>2015-11-12T12:06:18Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=febdfbd2137a5727f70dfbf920105c07e6c2a21e'/>
<id>urn:sha1:febdfbd2137a5727f70dfbf920105c07e6c2a21e</id>
<content type='text'>
SCSI queue for 4.4.

Signed-off-by: Martin K. Petersen &lt;martin.petersen@oracle.com&gt;
</content>
</entry>
<entry>
<title>scsi_scan: don't dump trace when scsi_prep_async_scan() is called twice</title>
<updated>2015-11-12T01:22:48Z</updated>
<author>
<name>Vitaly Kuznetsov</name>
</author>
<published>2015-10-30T11:37:49Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a4cf30e15ccea82a07fa5870e8af787b9ea1a672'/>
<id>urn:sha1:a4cf30e15ccea82a07fa5870e8af787b9ea1a672</id>
<content type='text'>
The only user of scsi_prep_async_scan() is scsi_scan_host() and it
handles the situation correctly. Move 'called twice' reporting to debug
level as well.

The issue is observed on Hyper-V: on any device add/remove event storvsc
driver calls scsi_scan_host() and in case previous scan is still running
we get the message and stack dump on console.

Signed-off-by: Vitaly Kuznetsov &lt;vkuznets@redhat.com&gt;
Reviewed-by: K. Y. Srinivasan &lt;kys@microsoft.com&gt;
Tested-by: Alex Ng &lt;alexng@microsoft.com&gt;
Signed-off-by: K. Y. Srinivasan &lt;kys@microsoft.com&gt;
Signed-off-by: Martin K. Petersen &lt;martin.petersen@oracle.com&gt;
</content>
</entry>
</feed>
