<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/linux.git/drivers, branch v3.8.8</title>
<subtitle>Linux kernel stable tree (mirror)</subtitle>
<id>https://git.radix-linux.su/kernel/linux.git/atom?h=v3.8.8</id>
<link rel='self' href='https://git.radix-linux.su/kernel/linux.git/atom?h=v3.8.8'/>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/'/>
<updated>2013-04-17T04:48:30+00:00</updated>
<entry>
<title>tty: don't deadlock while flushing workqueue</title>
<updated>2013-04-17T04:48:30+00:00</updated>
<author>
<name>Sebastian Andrzej Siewior</name>
<email>bigeasy@linutronix.de</email>
</author>
<published>2012-12-25T22:02:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=77d0ca8b5d7e7cd48005ddb79b05c79082a68bb5'/>
<id>urn:sha1:77d0ca8b5d7e7cd48005ddb79b05c79082a68bb5</id>
<content type='text'>
commit 852e4a8152b427c3f318bb0e1b5e938d64dcdc32 upstream.

Since commit 89c8d91e31f2 ("tty: localise the lock") I see a dead lock
in one of my dummy_hcd + g_nokia test cases. The first run was usually
okay, the second often resulted in a splat by lockdep and the third was
usually a dead lock.
Lockdep complained about tty-&gt;hangup_work and tty-&gt;legacy_mutex taken
both ways:
| ======================================================
| [ INFO: possible circular locking dependency detected ]
| 3.7.0-rc6+ #204 Not tainted
| -------------------------------------------------------
| kworker/2:1/35 is trying to acquire lock:
|  (&amp;tty-&gt;legacy_mutex){+.+.+.}, at: [&lt;c14051e6&gt;] tty_lock_nested+0x36/0x80
|
| but task is already holding lock:
|  ((&amp;tty-&gt;hangup_work)){+.+...}, at: [&lt;c104f6e4&gt;] process_one_work+0x124/0x5e0
|
| which lock already depends on the new lock.
|
| the existing dependency chain (in reverse order) is:
|
| -&gt; #2 ((&amp;tty-&gt;hangup_work)){+.+...}:
|        [&lt;c107fe74&gt;] lock_acquire+0x84/0x190
|        [&lt;c104d82d&gt;] flush_work+0x3d/0x240
|        [&lt;c12e6986&gt;] tty_ldisc_flush_works+0x16/0x30
|        [&lt;c12e7861&gt;] tty_ldisc_release+0x21/0x70
|        [&lt;c12e0dfc&gt;] tty_release+0x35c/0x470
|        [&lt;c1105e28&gt;] __fput+0xd8/0x270
|        [&lt;c1105fcd&gt;] ____fput+0xd/0x10
|        [&lt;c1051dd9&gt;] task_work_run+0xb9/0xf0
|        [&lt;c1002a51&gt;] do_notify_resume+0x51/0x80
|        [&lt;c140550a&gt;] work_notifysig+0x35/0x3b
|
| -&gt; #1 (&amp;tty-&gt;legacy_mutex/1){+.+...}:
|        [&lt;c107fe74&gt;] lock_acquire+0x84/0x190
|        [&lt;c140276c&gt;] mutex_lock_nested+0x6c/0x2f0
|        [&lt;c14051e6&gt;] tty_lock_nested+0x36/0x80
|        [&lt;c1405279&gt;] tty_lock_pair+0x29/0x70
|        [&lt;c12e0bb8&gt;] tty_release+0x118/0x470
|        [&lt;c1105e28&gt;] __fput+0xd8/0x270
|        [&lt;c1105fcd&gt;] ____fput+0xd/0x10
|        [&lt;c1051dd9&gt;] task_work_run+0xb9/0xf0
|        [&lt;c1002a51&gt;] do_notify_resume+0x51/0x80
|        [&lt;c140550a&gt;] work_notifysig+0x35/0x3b
|
| -&gt; #0 (&amp;tty-&gt;legacy_mutex){+.+.+.}:
|        [&lt;c107f3c9&gt;] __lock_acquire+0x1189/0x16a0
|        [&lt;c107fe74&gt;] lock_acquire+0x84/0x190
|        [&lt;c140276c&gt;] mutex_lock_nested+0x6c/0x2f0
|        [&lt;c14051e6&gt;] tty_lock_nested+0x36/0x80
|        [&lt;c140523f&gt;] tty_lock+0xf/0x20
|        [&lt;c12df8e4&gt;] __tty_hangup+0x54/0x410
|        [&lt;c12dfcb2&gt;] do_tty_hangup+0x12/0x20
|        [&lt;c104f763&gt;] process_one_work+0x1a3/0x5e0
|        [&lt;c104fec9&gt;] worker_thread+0x119/0x3a0
|        [&lt;c1055084&gt;] kthread+0x94/0xa0
|        [&lt;c140ca37&gt;] ret_from_kernel_thread+0x1b/0x28
|
|other info that might help us debug this:
|
|Chain exists of:
|  &amp;tty-&gt;legacy_mutex --&gt; &amp;tty-&gt;legacy_mutex/1 --&gt; (&amp;tty-&gt;hangup_work)
|
| Possible unsafe locking scenario:
|
|       CPU0                    CPU1
|       ----                    ----
|  lock((&amp;tty-&gt;hangup_work));
|                               lock(&amp;tty-&gt;legacy_mutex/1);
|                               lock((&amp;tty-&gt;hangup_work));
|  lock(&amp;tty-&gt;legacy_mutex);
|
| *** DEADLOCK ***

Before the path mentioned tty_ldisc_release() look like this:

|	tty_ldisc_halt(tty);
|	tty_ldisc_flush_works(tty);
|	tty_lock();

As it can be seen, it first flushes the workqueue and then grabs the
tty_lock. Now we grab the lock first:

|	tty_lock_pair(tty, o_tty);
|	tty_ldisc_halt(tty);
|	tty_ldisc_flush_works(tty);

so lockdep's complaint seems valid.

The earlier version of this patch took the ldisc_mutex since the other
user of tty_ldisc_flush_works() (tty_set_ldisc()) did this.
Peter Hurley then said that it is should not be requried. Since it
wasn't done earlier, I dropped this part.
The code under tty_ldisc_kill() was executed earlier with the tty lock
taken so it is taken again.

I was able to reproduce the deadlock on v3.8-rc1, this patch fixes the
problem in my testcase. I didn't notice any problems so far.

Signed-off-by: Sebastian Andrzej Siewior &lt;bigeasy@linutronix.de&gt;
Cc: Alan Cox &lt;alan@linux.intel.com&gt;
Cc: Peter Hurley &lt;peter@hurleysoftware.com&gt;
Cc: Bryan O'Donoghue &lt;bryan.odonoghue.lkml@nexus-software.ie&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>udl: handle EDID failure properly.</title>
<updated>2013-04-17T04:48:29+00:00</updated>
<author>
<name>Dave Airlie</name>
<email>airlied@gmail.com</email>
</author>
<published>2013-04-12T03:25:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=69bcccfef278d0b58b684fbd3ead0c52e4384d53'/>
<id>urn:sha1:69bcccfef278d0b58b684fbd3ead0c52e4384d53</id>
<content type='text'>
commit 1baee58638fc58248625255f5c5fcdb987f11b1f upstream.

Don't oops seems proper.

Signed-off-by: Dave Airlie &lt;airlied@redhat.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>gpio: fix wrong checking condition for gpio range</title>
<updated>2013-04-17T04:48:29+00:00</updated>
<author>
<name>Haojian Zhuang</name>
<email>haojian.zhuang@linaro.org</email>
</author>
<published>2013-02-17T11:42:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=aabc281d18eef3106c9f58c06e466a9ffdf33759'/>
<id>urn:sha1:aabc281d18eef3106c9f58c06e466a9ffdf33759</id>
<content type='text'>
commit ad4e1a7caf937ad395ced585ca85a7d14395dc80 upstream.

If index++ calculates from 0, the checking condition of "while
(index++)" fails &amp; it doesn't check any more. It doesn't follow
the loop that used at here.

Replace it by endless loop at here. Then it keeps parsing
"gpio-ranges" property until it ends.

Signed-off-by: Haojian Zhuang &lt;haojian.zhuang@linaro.org&gt;
Reviewed-by: Linus Walleij &lt;linus.walleij@linaro.org&gt;
Signed-off-by: Linus Walleij &lt;linus.walleij@linaro.org&gt;
Signed-off-by: Jonghwan Choi &lt;jhbird.choi@samsung.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>target: Fix incorrect fallthrough of ALUA Standby/Offline/Transition CDBs</title>
<updated>2013-04-17T04:48:28+00:00</updated>
<author>
<name>Nicholas Bellinger</name>
<email>nab@linux-iscsi.org</email>
</author>
<published>2013-04-10T22:00:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=51fd56450d83624ca98c5e9e9340c3c6165ead6f'/>
<id>urn:sha1:51fd56450d83624ca98c5e9e9340c3c6165ead6f</id>
<content type='text'>
commit 30f359a6f9da65a66de8cadf959f0f4a0d498bba upstream.

This patch fixes a bug where a handful of informational / control CDBs
that should be allowed during ALUA access state Standby/Offline/Transition
where incorrectly returning CHECK_CONDITION + ASCQ_04H_ALUA_TG_PT_*.

This includes INQUIRY + REPORT_LUNS, which would end up preventing LUN
registration when LUN scanning occured during these ALUA access states.

Signed-off-by: Nicholas Bellinger &lt;nab@linux-iscsi.org&gt;
Cc: Hannes Reinecke &lt;hare@suse.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>SCSI: libsas: fix handling vacant phy in sas_set_ex_phy()</title>
<updated>2013-04-17T04:48:28+00:00</updated>
<author>
<name>Lukasz Dorau</name>
<email>lukasz.dorau@intel.com</email>
</author>
<published>2013-04-03T08:27:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=978ddcd80a05229e14d8f078ee99bbf2d0f71867'/>
<id>urn:sha1:978ddcd80a05229e14d8f078ee99bbf2d0f71867</id>
<content type='text'>
commit d4a2618fa77b5e58ec15342972bd3505a1c3f551 upstream.

If a result of the SMP discover function is PHY VACANT,
the content of discover response structure (dr) is not valid.
It sometimes happens that dr-&gt;attached_sas_addr can contain
even SAS address of other phy. In such case an invalid phy
is created, what causes NULL pointer dereference during
destruction of expander's phys.

So if a result of SMP function is PHY VACANT, the content of discover
response structure (dr) must not be copied to phy structure.

This patch fixes the following bug:

BUG: unable to handle kernel NULL pointer dereference at 0000000000000030
IP: [&lt;ffffffff811c9002&gt;] sysfs_find_dirent+0x12/0x90
Call Trace:
  [&lt;ffffffff811c95f5&gt;] sysfs_get_dirent+0x35/0x80
  [&lt;ffffffff811cb55e&gt;] sysfs_unmerge_group+0x1e/0xb0
  [&lt;ffffffff813329f4&gt;] dpm_sysfs_remove+0x24/0x90
  [&lt;ffffffff8132b0f4&gt;] device_del+0x44/0x1d0
  [&lt;ffffffffa016fc59&gt;] sas_rphy_delete+0x9/0x20 [scsi_transport_sas]
  [&lt;ffffffffa01a16f6&gt;] sas_destruct_devices+0xe6/0x110 [libsas]
  [&lt;ffffffff8107ac7c&gt;] process_one_work+0x16c/0x350
  [&lt;ffffffff8107d84a&gt;] worker_thread+0x17a/0x410
  [&lt;ffffffff81081b76&gt;] kthread+0x96/0xa0
  [&lt;ffffffff81464944&gt;] kernel_thread_helper+0x4/0x10

Signed-off-by: Lukasz Dorau &lt;lukasz.dorau@intel.com&gt;
Signed-off-by: Pawel Baldysiak &lt;pawel.baldysiak@intel.com&gt;
Reviewed-by: Maciej Patelczyk &lt;maciej.patelczyk@intel.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>Revert "brcmsmac: support 4313iPA"</title>
<updated>2013-04-17T04:48:28+00:00</updated>
<author>
<name>John W. Linville</name>
<email>linville@tuxdriver.com</email>
</author>
<published>2013-03-27T14:52:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=95ffc2b9c20c201cead468e1fe185b8c11f9a55b'/>
<id>urn:sha1:95ffc2b9c20c201cead468e1fe185b8c11f9a55b</id>
<content type='text'>
commit 54683441a92ebe20c5282465ea6f21e5e74d2974 upstream.

This reverts commit b6fc28a158076ca2764edc9a6d1e1402f56e1c0c.

This commit is reported to cause a regression in the support for some
revisions of 4313 ePA devices.

http://marc.info/?l=linux-wireless&amp;m=136360340200943&amp;w=2

Conflicts:
	drivers/net/wireless/brcm80211/brcmsmac/phy/phy_lcn.c

Reported-by: David Herrmann &lt;dh.herrmann@gmail.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>dmaengine: omap-dma: Start DMA without delay for cyclic channels</title>
<updated>2013-04-17T04:48:28+00:00</updated>
<author>
<name>Peter Ujfalusi</name>
<email>peter.ujfalusi@ti.com</email>
</author>
<published>2013-04-09T14:33:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=2182bc06086014173a9474e1ba4eb5c556b509f0'/>
<id>urn:sha1:2182bc06086014173a9474e1ba4eb5c556b509f0</id>
<content type='text'>
commit 765024697807ad1e1cac332aa891253ca4a339da upstream.

cyclic DMA is only used by audio which needs DMA to be started without a
delay.
If the DMA for audio is started using the tasklet we experience random
channel switch (to be more precise: channel shift).

Reported-by: Peter Meerwald &lt;pmeerw@pmeerw.net&gt;
Signed-off-by: Peter Ujfalusi &lt;peter.ujfalusi@ti.com&gt;
Acked-by: Santosh Shilimkar &lt;santosh.shilimkar@ti.com&gt;
Acked-by: Russell King &lt;rmk+kernel@arm.linux.org.uk&gt;
Signed-off-by: Vinod Koul &lt;vinod.koul@intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>Revert "tty/8250_pnp: serial port detection regression since v3.7"</title>
<updated>2013-04-12T16:52:13+00:00</updated>
<author>
<name>Sean Young</name>
<email>sean@mess.org</email>
</author>
<published>2013-04-07T19:47:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=292f82fc424238e32754ca67b2b9f280d53efea0'/>
<id>urn:sha1:292f82fc424238e32754ca67b2b9f280d53efea0</id>
<content type='text'>
commit c12f9ea28e9fbe7b1f4cefc953bee33298370683 upstream.

This reverts commit 77e372a3d82e5e4878ce1962207edd766773cc76.

Checking for disabled resources board breaks detection pnp on another
board "AMI UEFI implementation (Version: 0406 Release Date: 06/06/2012)".
I'm working with the reporter of the original bug to write and test
a better fix.

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

Signed-off-by: Sean Young &lt;sean@mess.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>rt2x00: rt2x00pci_regbusy_read() - only print register access failure once</title>
<updated>2013-04-12T16:52:13+00:00</updated>
<author>
<name>Tim Gardner</name>
<email>tim.gardner@canonical.com</email>
</author>
<published>2013-02-18T19:56:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=19a993879bb86c801995f55702ab6beaa5485f5e'/>
<id>urn:sha1:19a993879bb86c801995f55702ab6beaa5485f5e</id>
<content type='text'>
commit 83589b30f1e1dc9898986293c9336b8ce1705dec upstream.

BugLink: http://bugs.launchpad.net/bugs/1128840

It appears that when this register read fails it never recovers, so
I think there is no need to repeat the same error message ad infinitum.

Signed-off-by: Tim Gardner &lt;tim.gardner@canonical.com&gt;
Cc: Ivo van Doorn &lt;IvDoorn@gmail.com&gt;
Cc: Gertjan van Wingerde &lt;gwingerde@gmail.com&gt;
Cc: Helmut Schaa &lt;helmut.schaa@googlemail.com&gt;
Cc: "John W. Linville" &lt;linville@tuxdriver.com&gt;
Cc: linux-wireless@vger.kernel.org
Cc: users@rt2x00.serialmonkey.com
Cc: netdev@vger.kernel.org
Cc: stable@vger.kernel.org
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>mwifiex: complete last internal scan</title>
<updated>2013-04-12T16:52:12+00:00</updated>
<author>
<name>Bing Zhao</name>
<email>bzhao@marvell.com</email>
</author>
<published>2013-04-01T19:44:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=303bf43a2390c09ff38f0efc37f5917b928d453e'/>
<id>urn:sha1:303bf43a2390c09ff38f0efc37f5917b928d453e</id>
<content type='text'>
commit 21de979ecfc7b7f9442f8aea9a54b3ab670d0151 upstream.

We are waiting on first scan command of internal scan request
before association, so we should complete on last internal scan
command response.

Tested-by: Daniel Drake &lt;dsd@laptop.org&gt;
Tested-by: Marco Cesarano &lt;marco@marvell.com&gt;
Signed-off-by: Bing Zhao &lt;bzhao@marvell.com&gt;
Signed-off-by: Amitkumar Karwar &lt;akarwar@marvell.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

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