<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/drivers/scsi, branch v3.3</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/
</subtitle>
<id>https://git.shady.money/linux/atom?h=v3.3</id>
<link rel='self' href='https://git.shady.money/linux/atom?h=v3.3'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/'/>
<updated>2012-03-05T23:49:43Z</updated>
<entry>
<title>floppy/scsi: fix setting of BIO flags</title>
<updated>2012-03-05T23:49:43Z</updated>
<author>
<name>Muthu Kumar</name>
<email>muthu.lkml@gmail.com</email>
</author>
<published>2012-03-05T22:59:16Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=9354f1b8e6c55c335d1c4fb10d0ae7a041935240'/>
<id>urn:sha1:9354f1b8e6c55c335d1c4fb10d0ae7a041935240</id>
<content type='text'>
Fix setting bio flags in drivers (sd_dif/floppy).

Signed-off-by: Muthukumar R &lt;muthur@gmail.com&gt;
Cc: Jens Axboe &lt;axboe@kernel.dk&gt;
Cc: James Bottomley &lt;James.Bottomley@HansenPartnership.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>[SCSI] osd_uld: Bump MAX_OSD_DEVICES from 64 to 1,048,576</title>
<updated>2012-02-25T14:25:09Z</updated>
<author>
<name>Boaz Harrosh</name>
<email>bharrosh@panasas.com</email>
</author>
<published>2012-01-25T19:42:58Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=41f8ad76362e7aefe3a03949c43e23102dae6e0b'/>
<id>urn:sha1:41f8ad76362e7aefe3a03949c43e23102dae6e0b</id>
<content type='text'>
It used to be that minors where 8 bit. But now they
are actually 20 bit. So the fix is simplicity itself.

I've tested with 300 devices and all user-mode utils
work just fine. I have also mechanically added 10,000
to the ida (so devices are /dev/osd10000, /dev/osd10001 ...)
and was able to mkfs an exofs filesystem and access osds
from user-mode.

All the open-osd user-mode code uses the same library
to access devices through their symbolic names in
/dev/osdX so I'd say it's pretty safe. (Well tested)

This patch is very important because some of the systems
that will be deploying the 3.2 pnfs-objects code are larger
than 64 OSDs and will stop to work properly when reaching
that number.

CC: Stable &lt;stable@vger.kernel.org&gt;
Signed-off-by: Boaz Harrosh &lt;bharrosh@panasas.com&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Parallels.com&gt;
</content>
</entry>
<entry>
<title>Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6</title>
<updated>2012-02-25T00:08:51Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2012-02-25T00:08:51Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=16bca1d572930e5b91714d2c79ec986bc819e7a6'/>
<id>urn:sha1:16bca1d572930e5b91714d2c79ec986bc819e7a6</id>
<content type='text'>
SCSI fixes on 20120224:
 "This is a set of assorted bug fixes for power management, mpt2sas,
  ipr, the rdac device handler and quite a big chunk for qla2xxx (plus a
  use after free of scsi_host in scsi_scan.c). "

* tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6:
  [SCSI] scsi_dh_rdac: Fix for unbalanced reference count
  [SCSI] scsi_pm: Fix bug in the SCSI power management handler
  [SCSI] scsi_scan: Fix 'Poison overwritten' warning caused by using freed 'shost'
  [SCSI] qla2xxx: Update version number to 8.03.07.13-k.
  [SCSI] qla2xxx: Proper detection of firmware abort error code for ISP82xx.
  [SCSI] qla2xxx: Remove resetting memory during device initialization for ISP82xx.
  [SCSI] qla2xxx: Complete mailbox command timedout to avoid initialization failures during next reset cycle.
  [SCSI] qla2xxx: Remove check for null fcport from host reset handler.
  [SCSI] qla2xxx: Correct out of bounds read of ISP2200 mailbox registers.
  [SCSI] qla2xxx: Remove errant clearing of MBX_INTERRUPT flag during CT-IOCB processing.
  [SCSI] qla2xxx: Clear options-flags while issuing stop-firmware mbx command.
  [SCSI] qla2xxx: Add an "is reset active" helper.
  [SCSI] qla2xxx: Add check for null fcport references in qla2xxx_queuecommand.
  [SCSI] qla2xxx: Propagate up abort failures.
  [SCSI] isci: Fix NULL ptr dereference when no firmware is being loaded
  [SCSI] ipr: fix eeh recovery for 64-bit adapters
  [SCSI] mpt2sas: Fix mismatch in mpt2sas_base_hard_reset_handler() mutex lock-unlock
</content>
</entry>
<entry>
<title>[SCSI] scsi_dh_rdac: Fix for unbalanced reference count</title>
<updated>2012-02-22T18:15:19Z</updated>
<author>
<name>Moger, Babu</name>
<email>Babu.Moger@netapp.com</email>
</author>
<published>2012-02-02T15:21:54Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=3569e5374df66a42ab66368b8bbb075e81d4e85c'/>
<id>urn:sha1:3569e5374df66a42ab66368b8bbb075e81d4e85c</id>
<content type='text'>
This patch fixes an unbalanced refcount issue.

Elevating the lock for both kref_put and also for controller node deletion.
Previously, controller deletion was protected but the not the kref_put. This
was causing the other thread to pick up the controller structure which was
already kref'd zero.

This was causing the following WARN_ON and also sometimes panic.

WARNING: at lib/kref.c:43 kref_get+0x2d/0x30() (Not tainted)
Hardware name: IBM System x3655 -[7985AC1]-
Modules linked in: fuse scsi_dh_rdac autofs4 nfs lockd fscache nfs_acl
auth_rpcgss sunrpc 8021q garp stp llc ipv6 ib_srp(U) scsi_transport_srp
scsi_tgt ib_cm(U) ib_sa(U) ib_uverbs(U) ib_umad(U) mlx4_ib(U) mlx4_core(U)
ib_mthca(U) ib_mad(U) ib_core(U) dm_mirror dm_region_hash dm_log dm_round_robin
dm_multipath uinput bnx2 ses enclosure sg ibmpex ibmaem ipmi_msghandler
serio_raw k8temp hwmon amd64_edac_mod edac_core edac_mce_amd shpchp i2c_piix4
ext4 mbcache jbd2 sr_mod cdrom sd_mod crc_t10dif sata_svw pata_acpi ata_generic
pata_serverworks aacraid radeon ttm drm_kms_helper drm i2c_algo_bit i2c_core
dm_mod [last unloaded: freq_table]
Pid: 13735, comm: srp_daemon Not tainted 2.6.32-71.el6.x86_64 #1
Call Trace:
[&lt;ffffffff8106b857&gt;] warn_slowpath_common+0x87/0xc0
[&lt;ffffffff8106b8aa&gt;] warn_slowpath_null+0x1a/0x20
[&lt;ffffffff8125c39d&gt;] kref_get+0x2d/0x30
[&lt;ffffffffa01b4029&gt;] rdac_bus_attach+0x459/0x580 [scsi_dh_rdac]
[&lt;ffffffff8135232a&gt;] scsi_dh_handler_attach+0x2a/0x80
[&lt;ffffffff81352c7b&gt;] scsi_dh_notifier+0x9b/0xa0
[&lt;ffffffff814cd7a5&gt;] notifier_call_chain+0x55/0x80
[&lt;ffffffff8109711a&gt;] __blocking_notifier_call_chain+0x5a/0x80
[&lt;ffffffff81097156&gt;] blocking_notifier_call_chain+0x16/0x20
[&lt;ffffffff8132bec5&gt;] device_add+0x515/0x640
[&lt;ffffffff813329e4&gt;] ? attribute_container_device_trigger+0xc4/0xe0
[&lt;ffffffff8134f659&gt;] scsi_sysfs_add_sdev+0x89/0x2c0
[&lt;ffffffff8134d096&gt;] scsi_probe_and_add_lun+0xea6/0xed0
[&lt;ffffffff8134beb2&gt;] ? scsi_alloc_target+0x292/0x2d0
[&lt;ffffffff8134d1e1&gt;] __scsi_scan_target+0x121/0x750
[&lt;ffffffff811df806&gt;] ? sysfs_create_file+0x26/0x30
[&lt;ffffffff8132b759&gt;] ? device_create_file+0x19/0x20
[&lt;ffffffff81332838&gt;] ? attribute_container_add_attrs+0x78/0x90
[&lt;ffffffff814b008c&gt;] ? klist_next+0x4c/0xf0
[&lt;ffffffff81332e30&gt;] ? transport_configure+0x0/0x20
[&lt;ffffffff813329e4&gt;] ? attribute_container_device_trigger+0xc4/0xe0
[&lt;ffffffff8134df40&gt;] scsi_scan_target+0xd0/0xe0
[&lt;ffffffffa02f053a&gt;] srp_create_target+0x75a/0x890 [ib_srp]
[&lt;ffffffff8132a130&gt;] dev_attr_store+0x20/0x30
[&lt;ffffffff811df145&gt;] sysfs_write_file+0xe5/0x170
[&lt;ffffffff8116c818&gt;] vfs_write+0xb8/0x1a0
[&lt;ffffffff810d40a2&gt;] ? audit_syscall_entry+0x272/0x2a0
[&lt;ffffffff8116d251&gt;] sys_write+0x51/0x90
[&lt;ffffffff81013172&gt;] system_call_fastpath+0x16/0x1b

Signed-off-by: Babu Moger &lt;babu.moger@netapp.com&gt;
Acked-by: Mike Snitzer &lt;snitzer@redhat.com&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Parallels.com&gt;
</content>
</entry>
<entry>
<title>asm-generic: architecture independent readq/writeq for 32bit environment</title>
<updated>2012-02-22T00:47:28Z</updated>
<author>
<name>Hitoshi Mitake</name>
<email>mitake@dcl.info.waseda.ac.jp</email>
</author>
<published>2012-02-07T02:45:33Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=797a796a13df6b84a4791e57306737059b5b2384'/>
<id>urn:sha1:797a796a13df6b84a4791e57306737059b5b2384</id>
<content type='text'>
This provides unified readq()/writeq() helper functions for 32-bit
drivers.

For some cases, readq/writeq without atomicity is harmful, and order of
io access has to be specified explicitly.  So in this patch, new two
header files which contain non-atomic readq/writeq are added.

 - &lt;asm-generic/io-64-nonatomic-lo-hi.h&gt; provides non-atomic readq/
   writeq with the order of lower address -&gt; higher address

 - &lt;asm-generic/io-64-nonatomic-hi-lo.h&gt; provides non-atomic readq/
   writeq with reversed order

This allows us to remove some readq()s that were added drivers when the
default non-atomic ones were removed in commit dbee8a0affd5 ("x86:
remove 32-bit versions of readq()/writeq()")

The drivers which need readq/writeq but can do with the non-atomic ones
must add the line:

  #include &lt;asm-generic/io-64-nonatomic-lo-hi.h&gt; /* or hi-lo.h */

But this will be nop in 64-bit environments, and no other #ifdefs are
required.  So I believe that this patch can solve the problem of
 1. driver-specific readq/writeq
 2. atomicity and order of io access

This patch is tested with building allyesconfig and allmodconfig as
ARCH=x86 and ARCH=i386 on top of tip/master.

Cc: Kashyap Desai &lt;Kashyap.Desai@lsi.com&gt;
Cc: Len Brown &lt;lenb@kernel.org&gt;
Cc: Ravi Anand &lt;ravi.anand@qlogic.com&gt;
Cc: Vikas Chaudhary &lt;vikas.chaudhary@qlogic.com&gt;
Cc: Matthew Garrett &lt;mjg@redhat.com&gt;
Cc: Jason Uhlenkott &lt;juhlenko@akamai.com&gt;
Cc: James Bottomley &lt;James.Bottomley@parallels.com&gt;
Cc: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Cc: "H. Peter Anvin" &lt;hpa@zytor.com&gt;
Cc: Roland Dreier &lt;roland@purestorage.com&gt;
Cc: James Bottomley &lt;jbottomley@parallels.com&gt;
Cc: Alan Cox &lt;alan@lxorguk.ukuu.org.uk&gt;
Cc: Matthew Wilcox &lt;matthew.r.wilcox@intel.com&gt;
Cc: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Hitoshi Mitake &lt;h.mitake@gmail.com&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>[SCSI] scsi_pm: Fix bug in the SCSI power management handler</title>
<updated>2012-02-18T14:54:19Z</updated>
<author>
<name>Alan Stern</name>
<email>stern@rowland.harvard.edu</email>
</author>
<published>2012-02-17T21:25:08Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=fea6d607e154cf96ab22254ccb48addfd43d4cb5'/>
<id>urn:sha1:fea6d607e154cf96ab22254ccb48addfd43d4cb5</id>
<content type='text'>
This patch (as1520) fixes a bug in the SCSI layer's power management
implementation.

LUN scanning can be carried out asynchronously in do_scan_async(), and
sd uses an asynchronous thread for the time-consuming parts of disk
probing in sd_probe_async().  Currently nothing coordinates these
async threads with system sleep transitions; they can and do attempt
to continue scanning/probing SCSI devices even after the host adapter
has been suspended.  As one might expect, the outcome is not ideal.

This is what the "prepare" stage of system suspend was created for.
After the prepare callback has been called for a host, target, or
device, drivers are not allowed to register any children underneath
them.  Currently the SCSI prepare callback is not implemented; this
patch rectifies that omission.

For SCSI hosts, the prepare routine calls scsi_complete_async_scans()
to wait until async scanning is finished.  It might be slightly more
efficient to wait only until the host in question has been scanned,
but there's currently no way to do that.  Besides, during a sleep
transition we will ultimately have to wait until all the host scanning
has finished anyway.

For SCSI devices, the prepare routine calls async_synchronize_full()
to wait until sd probing is finished.  The routine does nothing for
SCSI targets, because asynchronous target scanning is done only as
part of host scanning.

Signed-off-by: Alan Stern &lt;stern@rowland.harvard.edu&gt;
CC: &lt;stable@kernel.org&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Parallels.com&gt;
</content>
</entry>
<entry>
<title>[SCSI] scsi_scan: Fix 'Poison overwritten' warning caused by using freed 'shost'</title>
<updated>2012-02-18T14:52:48Z</updated>
<author>
<name>Huajun Li</name>
<email>huajun.li.lee@gmail.com</email>
</author>
<published>2012-02-12T11:59:14Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=267a6ad4aefaafbde607804c60945bcf97f91c1b'/>
<id>urn:sha1:267a6ad4aefaafbde607804c60945bcf97f91c1b</id>
<content type='text'>
In do_scan_async(), calling scsi_autopm_put_host(shost) may reference
freed shost, and cause Posison overwitten warning.
Yes, this case can happen, for example, an USB is disconnected just
when do_scan_async() thread starts to run, then scsi_host_put() called
in scsi_finish_async_scan() will lead to shost be freed(because the
refcount of shost-&gt;shost_gendev decreases to 1 after USB disconnects),
at this point, if references shost again, system will show following
warning msg.

To make scsi_autopm_put_host(shost) always reference a valid shost,
put it just before scsi_host_put() in function
scsi_finish_async_scan().

[  299.281565] =============================================================================
[  299.281634] BUG kmalloc-4096 (Tainted: G          I ): Poison overwritten
[  299.281682] -----------------------------------------------------------------------------
[  299.281684]
[  299.281752] INFO: 0xffff880056c305d0-0xffff880056c305d0. First byte
0x6a instead of 0x6b
[  299.281816] INFO: Allocated in scsi_host_alloc+0x4a/0x490 age=1688
cpu=1 pid=2004
[  299.281870] 	__slab_alloc+0x617/0x6c1
[  299.281901] 	__kmalloc+0x28c/0x2e0
[  299.281931] 	scsi_host_alloc+0x4a/0x490
[  299.281966] 	usb_stor_probe1+0x5b/0xc40 [usb_storage]
[  299.282010] 	storage_probe+0xa4/0xe0 [usb_storage]
[  299.282062] 	usb_probe_interface+0x172/0x330 [usbcore]
[  299.282105] 	driver_probe_device+0x257/0x3b0
[  299.282138] 	__driver_attach+0x103/0x110
[  299.282171] 	bus_for_each_dev+0x8e/0xe0
[  299.282201] 	driver_attach+0x26/0x30
[  299.282230] 	bus_add_driver+0x1c4/0x430
[  299.282260] 	driver_register+0xb6/0x230
[  299.282298] 	usb_register_driver+0xe5/0x270 [usbcore]
[  299.282337] 	0xffffffffa04ab03d
[  299.282364] 	do_one_initcall+0x47/0x230
[  299.282396] 	sys_init_module+0xa0f/0x1fe0
[  299.282429] INFO: Freed in scsi_host_dev_release+0x18a/0x1d0 age=85
cpu=0 pid=2008
[  299.282482] 	__slab_free+0x3c/0x2a1
[  299.282510] 	kfree+0x296/0x310
[  299.282536] 	scsi_host_dev_release+0x18a/0x1d0
[  299.282574] 	device_release+0x74/0x100
[  299.282606] 	kobject_release+0xc7/0x2a0
[  299.282637] 	kobject_put+0x54/0xa0
[  299.282668] 	put_device+0x27/0x40
[  299.282694] 	scsi_host_put+0x1d/0x30
[  299.282723] 	do_scan_async+0x1fc/0x2b0
[  299.282753] 	kthread+0xdf/0xf0
[  299.282782] 	kernel_thread_helper+0x4/0x10
[  299.282817] INFO: Slab 0xffffea00015b0c00 objects=7 used=7 fp=0x
      (null) flags=0x100000000004080
[  299.282882] INFO: Object 0xffff880056c30000 @offset=0 fp=0x          (null)
[  299.282884]
...

Signed-off-by: Huajun Li &lt;huajun.li.lee@gmail.com&gt;
Cc: stable@kernel.org
Acked-by: Alan Stern &lt;stern@rowland.harvard.edu&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Parallels.com&gt;
</content>
</entry>
<entry>
<title>[SCSI] qla2xxx: Update version number to 8.03.07.13-k.</title>
<updated>2012-02-18T14:50:20Z</updated>
<author>
<name>Chad Dupuis</name>
<email>chad.dupuis@qlogic.com</email>
</author>
<published>2012-02-09T19:14:13Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=477e3e9ffc13e99918b916a294dcc2d306b677a5'/>
<id>urn:sha1:477e3e9ffc13e99918b916a294dcc2d306b677a5</id>
<content type='text'>
Signed-off-by: Giridhar Malavali &lt;giridhar.malavali@qlogic.com&gt;
Signed-off-by: Chad Dupuis &lt;chad.dupuis@qlogic.com&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Parallels.com&gt;
</content>
</entry>
<entry>
<title>[SCSI] qla2xxx: Proper detection of firmware abort error code for ISP82xx.</title>
<updated>2012-02-18T14:49:58Z</updated>
<author>
<name>Giridhar Malavali</name>
<email>giridhar.malavali@qlogic.com</email>
</author>
<published>2012-02-09T19:14:12Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=2cc97965e4f6e84792b958d4ad10631274d42834'/>
<id>urn:sha1:2cc97965e4f6e84792b958d4ad10631274d42834</id>
<content type='text'>
Signed-off-by: Giridhar Malavali &lt;giridhar.malavali@qlogic.com&gt;
Signed-off-by: Chad Dupuis &lt;chad.dupuis@qlogic.com&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Parallels.com&gt;
</content>
</entry>
<entry>
<title>[SCSI] qla2xxx: Remove resetting memory during device initialization for ISP82xx.</title>
<updated>2012-02-18T14:49:37Z</updated>
<author>
<name>Shyam Sundar</name>
<email>shyam.sundar@qlogic.com</email>
</author>
<published>2012-02-09T19:14:11Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=5a034bb3c33aad59769e7289716c8d1f075b3894'/>
<id>urn:sha1:5a034bb3c33aad59769e7289716c8d1f075b3894</id>
<content type='text'>
With IOs running and PegHalt testing the system reboots when memory reset is
performed during device initialization.

Signed-off-by: Shyam Sundar &lt;shyam.sundar@qlogic.com&gt;
Signed-off-by: Giridhar Malavali &lt;giridhar.malavali@qlogic.com&gt;
Signed-off-by: Chad Dupuis &lt;chad.dupuis@qlogic.com&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Parallels.com&gt;
</content>
</entry>
</feed>
