<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/drivers, branch v3.10.10</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/drivers?h=v3.10.10</id>
<link rel='self' href='https://git.amat.us/linux/atom/drivers?h=v3.10.10'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2013-08-29T16:47:40Z</updated>
<entry>
<title>bcache: FUA fixes</title>
<updated>2013-08-29T16:47:40Z</updated>
<author>
<name>Kent Overstreet</name>
<email>koverstreet@google.com</email>
</author>
<published>2013-06-27T00:25:38Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=ae61fd4496f9d9290b9e84fc373818b2ee780137'/>
<id>urn:sha1:ae61fd4496f9d9290b9e84fc373818b2ee780137</id>
<content type='text'>
commit e49c7c374e7aacd1f04ecbc21d9dbbeeea4a77d6 upstream.

Journal writes need to be marked FUA, not just REQ_FLUSH. And btree node
writes have... weird ordering requirements.

Signed-off-by: Kent Overstreet &lt;koverstreet@google.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>md: bcache: io.c: fix a potential NULL pointer dereference</title>
<updated>2013-08-29T16:47:40Z</updated>
<author>
<name>Kumar Amit Mehta</name>
<email>gmate.amit@gmail.com</email>
</author>
<published>2013-05-28T07:31:15Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=ba5c60fc8f5f574c7cec70740ca19d358b780c57'/>
<id>urn:sha1:ba5c60fc8f5f574c7cec70740ca19d358b780c57</id>
<content type='text'>
commit 5c694129c8db6d89c9be109049a16510b2f70f6d upstream.

bio_alloc_bioset returns NULL on failure. This fix adds a missing check
for potential NULL pointer dereferencing.

Signed-off-by: Kumar Amit Mehta &lt;gmate.amit@gmail.com&gt;
Signed-off-by: Kent Overstreet &lt;koverstreet@google.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>mei: me: fix waiting for hw ready</title>
<updated>2013-08-29T16:47:40Z</updated>
<author>
<name>Tomas Winkler</name>
<email>tomas.winkler@intel.com</email>
</author>
<published>2013-07-17T12:13:17Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=644f5d570740c90439fdf69e8b47647584c6dc2f'/>
<id>urn:sha1:644f5d570740c90439fdf69e8b47647584c6dc2f</id>
<content type='text'>
commit dab9bf41b23fe700c4a74133e41eb6a21706031e upstream.

1. MEI_INTEROP_TIMEOUT is in seconds not in jiffies
so we use mei_secs_to_jiffies macro
While cold boot is fast this is relevant in resume
2. wait_event_interruptible_timeout can return with
-ERESTARTSYS so do not override it with -ETIMEDOUT
3.Adjust error message

Tested-by: Shuah Khan &lt;shuah.kh@samsung.com&gt;
Signed-off-by: Tomas Winkler &lt;tomas.winkler@intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>mei: don't have to clean the state on power up</title>
<updated>2013-08-29T16:47:40Z</updated>
<author>
<name>Tomas Winkler</name>
<email>tomas.winkler@intel.com</email>
</author>
<published>2013-07-17T12:13:16Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=47e1cf336bc708bb59ebfcc01540dffecd16862e'/>
<id>urn:sha1:47e1cf336bc708bb59ebfcc01540dffecd16862e</id>
<content type='text'>
commit 99f22c4ef24cf87b0dae6aabe6b5e620b62961d9 upstream.

When powering up, we don't have to clean up the device state
nothing is connected.

Tested-by: Shuah Khan &lt;shuah.kh@samsung.com&gt;
Signed-off-by: Tomas Winkler &lt;tomas.winkler@intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>mei: me: fix reset state machine</title>
<updated>2013-08-29T16:47:40Z</updated>
<author>
<name>Tomas Winkler</name>
<email>tomas.winkler@intel.com</email>
</author>
<published>2013-07-17T12:13:15Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=7dae89cb15ebdc7e286b884cd79f3a4b94fcdff4'/>
<id>urn:sha1:7dae89cb15ebdc7e286b884cd79f3a4b94fcdff4</id>
<content type='text'>
commit 315a383ad7dbd484fafb93ef08038e3dbafbb7a8 upstream.

ME HW ready bit is down after hw reset was asserted or on error.
Only on error we need to enter the reset flow, additional reset
need to be prevented when reset was triggered during
initialization , power up/down or a reset is already in progress

Tested-by: Shuah Khan &lt;shuah.kh@samsung.com&gt;
Signed-off-by: Tomas Winkler &lt;tomas.winkler@intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>SCSI: lpfc: Don't force CONFIG_GENERIC_CSUM on</title>
<updated>2013-08-29T16:47:39Z</updated>
<author>
<name>Anton Blanchard</name>
<email>anton@samba.org</email>
</author>
<published>2013-08-08T07:47:34Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=a271397a97869112f0b77ef7e162f64cf3c55113'/>
<id>urn:sha1:a271397a97869112f0b77ef7e162f64cf3c55113</id>
<content type='text'>
commit f5944daa0a72316077435c18a6571e73ed338332 upstream.

We want ppc64 to be able to select between optimised assembly
checksum routines in big endian and the generic lib/checksum.c
routines in little endian.

The lpfc driver is forcing CONFIG_GENERIC_CSUM on which means
we are unable to make the decision to enable it in the arch
Kconfig. If the option exists it is always forced on.

This got introduced in 3.10 via commit 6a7252fdb0c3 ([SCSI] lpfc:
fix up Kconfig dependencies). I spoke to Randy about it and
the original issue was with CRC_T10DIF not being defined.

As such, remove the select of CONFIG_GENERIC_CSUM.

Signed-off-by: Anton Blanchard &lt;anton@samba.org&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Parallels.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>SCSI: zfcp: fix schedule-inside-lock in scsi_device list loops</title>
<updated>2013-08-29T16:47:39Z</updated>
<author>
<name>Martin Peschke</name>
<email>mpeschke@linux.vnet.ibm.com</email>
</author>
<published>2013-08-22T15:45:37Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=e1a289ee6734dd5f9a81a260f3027ad8010f530a'/>
<id>urn:sha1:e1a289ee6734dd5f9a81a260f3027ad8010f530a</id>
<content type='text'>
commit 924dd584b198a58aa7cb3efefd8a03326550ce8f upstream.

BUG: sleeping function called from invalid context at kernel/workqueue.c:2752
in_atomic(): 1, irqs_disabled(): 1, pid: 360, name: zfcperp0.0.1700
CPU: 1 Not tainted 3.9.3+ #69
Process zfcperp0.0.1700 (pid: 360, task: 0000000075b7e080, ksp: 000000007476bc30)
&lt;snip&gt;
Call Trace:
([&lt;00000000001165de&gt;] show_trace+0x106/0x154)
 [&lt;00000000001166a0&gt;] show_stack+0x74/0xf4
 [&lt;00000000006ff646&gt;] dump_stack+0xc6/0xd4
 [&lt;000000000017f3a0&gt;] __might_sleep+0x128/0x148
 [&lt;000000000015ece8&gt;] flush_work+0x54/0x1f8
 [&lt;00000000001630de&gt;] __cancel_work_timer+0xc6/0x128
 [&lt;00000000005067ac&gt;] scsi_device_dev_release_usercontext+0x164/0x23c
 [&lt;0000000000161816&gt;] execute_in_process_context+0x96/0xa8
 [&lt;00000000004d33d8&gt;] device_release+0x60/0xc0
 [&lt;000000000048af48&gt;] kobject_release+0xa8/0x1c4
 [&lt;00000000004f4bf2&gt;] __scsi_iterate_devices+0xfa/0x130
 [&lt;000003ff801b307a&gt;] zfcp_erp_strategy+0x4da/0x1014 [zfcp]
 [&lt;000003ff801b3caa&gt;] zfcp_erp_thread+0xf6/0x2b0 [zfcp]
 [&lt;000000000016b75a&gt;] kthread+0xf2/0xfc
 [&lt;000000000070c9de&gt;] kernel_thread_starter+0x6/0xc
 [&lt;000000000070c9d8&gt;] kernel_thread_starter+0x0/0xc

Apparently, the ref_count for some scsi_device drops down to zero,
triggering device removal through execute_in_process_context(), while
the lldd error recovery thread iterates through a scsi device list.
Unfortunately, execute_in_process_context() decides to immediately
execute that device removal function, instead of scheduling asynchronous
execution, since it detects process context and thinks it is safe to do
so. But almost all calls to shost_for_each_device() in our lldd are
inside spin_lock_irq, even in thread context. Obviously, schedule()
inside spin_lock_irq sections is a bad idea.

Change the lldd to use the proper iterator function,
__shost_for_each_device(), in combination with required locking.

Occurences that need to be changed include all calls in zfcp_erp.c,
since those might be executed in zfcp error recovery thread context
with a lock held.

Other occurences of shost_for_each_device() in zfcp_fsf.c do not
need to be changed (no process context, no surrounding locking).

The problem was introduced in Linux 2.6.37 by commit
b62a8d9b45b971a67a0f8413338c230e3117dff5
"[SCSI] zfcp: Use SCSI device data zfcp_scsi_dev instead of zfcp_unit".

Reported-by: Christian Borntraeger &lt;borntraeger@de.ibm.com&gt;
Signed-off-by: Martin Peschke &lt;mpeschke@linux.vnet.ibm.com&gt;
Signed-off-by: Steffen Maier &lt;maier@linux.vnet.ibm.com&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Parallels.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>SCSI: zfcp: fix lock imbalance by reworking request queue locking</title>
<updated>2013-08-29T16:47:39Z</updated>
<author>
<name>Martin Peschke</name>
<email>mpeschke@linux.vnet.ibm.com</email>
</author>
<published>2013-08-22T15:45:36Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=bda5d1efa09527e443a6990f81459779a313e24d'/>
<id>urn:sha1:bda5d1efa09527e443a6990f81459779a313e24d</id>
<content type='text'>
commit d79ff142624e1be080ad8d09101f7004d79c36e1 upstream.

This patch adds wait_event_interruptible_lock_irq_timeout(), which is a
straight-forward descendant of wait_event_interruptible_timeout() and
wait_event_interruptible_lock_irq().

The zfcp driver used to call wait_event_interruptible_timeout()
in combination with some intricate and error-prone locking. Using
wait_event_interruptible_lock_irq_timeout() as a replacement
nicely cleans up that locking.

This rework removes a situation that resulted in a locking imbalance
in zfcp_qdio_sbal_get():

BUG: workqueue leaked lock or atomic: events/1/0xffffff00/10
    last function: zfcp_fc_wka_port_offline+0x0/0xa0 [zfcp]

It was introduced by commit c2af7545aaff3495d9bf9a7608c52f0af86fb194
"[SCSI] zfcp: Do not wait for SBALs on stopped queue", which had a new
code path related to ZFCP_STATUS_ADAPTER_QDIOUP that took an early exit
without a required lock being held. The problem occured when a
special, non-SCSI I/O request was being submitted in process context,
when the adapter's queues had been torn down. In this case the bug
surfaced when the Fibre Channel port connection for a well-known address
was closed during a concurrent adapter shut-down procedure, which is a
rare constellation.

This patch also fixes these warnings from the sparse tool (make C=1):

drivers/s390/scsi/zfcp_qdio.c:224:12: warning: context imbalance in
 'zfcp_qdio_sbal_check' - wrong count at exit
drivers/s390/scsi/zfcp_qdio.c:244:5: warning: context imbalance in
 'zfcp_qdio_sbal_get' - unexpected unlock

Last but not least, we get rid of that crappy lock-unlock-lock
sequence at the beginning of the critical section.

It is okay to call zfcp_erp_adapter_reopen() with req_q_lock held.

Reported-by: Mikulas Patocka &lt;mpatocka@redhat.com&gt;
Reported-by: Heiko Carstens &lt;heiko.carstens@de.ibm.com&gt;
Signed-off-by: Martin Peschke &lt;mpeschke@linux.vnet.ibm.com&gt;
Signed-off-by: Steffen Maier &lt;maier@linux.vnet.ibm.com&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Parallels.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>iwlwifi: pcie: disable L1 Active after pci_enable_device</title>
<updated>2013-08-29T16:47:38Z</updated>
<author>
<name>Emmanuel Grumbach</name>
<email>emmanuel.grumbach@intel.com</email>
</author>
<published>2013-07-29T20:05:18Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=67bdd3c0dc4dc00fc1e708fc9f326304d88cc8be'/>
<id>urn:sha1:67bdd3c0dc4dc00fc1e708fc9f326304d88cc8be</id>
<content type='text'>
commit eabc4ac5d7606a57ee2b7308cb7323ea8f60183b upstream.

As Arjan pointed out, we mustn't do anything related to PCI
configuration until the device is properly enabled with
pci_enable_device().

Reported-by: Arjan van de Ven &lt;arjan@linux.intel.com&gt;
Signed-off-by: Emmanuel Grumbach &lt;emmanuel.grumbach@intel.com&gt;
Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>iwlwifi: dvm: fix calling ieee80211_chswitch_done() with NULL</title>
<updated>2013-08-29T16:47:38Z</updated>
<author>
<name>Stanislaw Gruszka</name>
<email>sgruszka@redhat.com</email>
</author>
<published>2013-07-26T13:29:09Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=753fb619d10ed87c9ab5b75e83dd464244986f82'/>
<id>urn:sha1:753fb619d10ed87c9ab5b75e83dd464244986f82</id>
<content type='text'>
commit 9186a1fd9ed190739423db84bc344d258ef3e3d7 upstream.

If channel switch is pending and we remove interface we can
crash like showed below due to passing NULL vif to mac80211:

BUG: unable to handle kernel paging request at fffffffffffff8cc
IP: [&lt;ffffffff8130924d&gt;] strnlen+0xd/0x40
Call Trace:
 [&lt;ffffffff8130ad2e&gt;] string.isra.3+0x3e/0xd0
 [&lt;ffffffff8130bf99&gt;] vsnprintf+0x219/0x640
 [&lt;ffffffff8130c481&gt;] vscnprintf+0x11/0x30
 [&lt;ffffffff81061585&gt;] vprintk_emit+0x115/0x4f0
 [&lt;ffffffff81657bd5&gt;] printk+0x61/0x63
 [&lt;ffffffffa048987f&gt;] ieee80211_chswitch_done+0xaf/0xd0 [mac80211]
 [&lt;ffffffffa04e7b34&gt;] iwl_chswitch_done+0x34/0x40 [iwldvm]
 [&lt;ffffffffa04f83c3&gt;] iwlagn_commit_rxon+0x2a3/0xdc0 [iwldvm]
 [&lt;ffffffffa04ebc50&gt;] ? iwlagn_set_rxon_chain+0x180/0x2c0 [iwldvm]
 [&lt;ffffffffa04e5e76&gt;] iwl_set_mode+0x36/0x40 [iwldvm]
 [&lt;ffffffffa04e5f0d&gt;] iwlagn_mac_remove_interface+0x8d/0x1b0 [iwldvm]
 [&lt;ffffffffa0459b3d&gt;] ieee80211_do_stop+0x29d/0x7f0 [mac80211]

This is because we nulify ctx-&gt;vif in iwlagn_mac_remove_interface()
before calling some other functions that teardown interface. To fix
just check ctx-&gt;vif on iwl_chswitch_done(). We should not call
ieee80211_chswitch_done() as channel switch works were already canceled
by mac80211 in ieee80211_do_stop() -&gt; ieee80211_mgd_stop().

Resolve:
https://bugzilla.redhat.com/show_bug.cgi?id=979581

Reported-by: Lukasz Jagiello &lt;jagiello.lukasz@gmail.com&gt;
Signed-off-by: Stanislaw Gruszka &lt;sgruszka@redhat.com&gt;
Reviewed-by: Emmanuel Grumbach &lt;emmanuel.grumbach@intel.com&gt;
Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
</feed>
