<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-toradex.git/drivers, branch v3.10.5</title>
<subtitle>Linux kernel for Apalis and Colibri modules</subtitle>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/'/>
<entry>
<title>drm/i915: Correct obj-&gt;mm_list link to dev_priv-&gt;dev_priv-&gt;mm.inactive_list</title>
<updated>2013-08-04T08:51:18+00:00</updated>
<author>
<name>Xiong Zhang</name>
<email>xiong.y.zhang@intel.com</email>
</author>
<published>2013-07-05T10:53:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=0915f45b1275f392665df955e2e93ec459dac538'/>
<id>0915f45b1275f392665df955e2e93ec459dac538</id>
<content type='text'>
commit 067556084a0e412013af6b0250a3143ae5afde6d upstream.

obj-&gt;mm_list link to dev_priv-&gt;mm.inactive_list/active_list
obj-&gt;global_list link to dev_priv-&gt;mm.unbound_list/bound_list

This regression has been introduced in

commit 93927ca52a55c23e0a6a305e7e9082e8411ac9fa
Author: Daniel Vetter &lt;daniel.vetter@ffwll.ch&gt;
Date:   Thu Jan 10 18:03:00 2013 +0100

    drm/i915: Revert shrinker changes from "Track unbound pages"

Cc: stable@vger.kernel.org
Signed-off-by: Xiong Zhang &lt;xiong.y.zhang@intel.com&gt;
[danvet: Add regression notice.]
Signed-off-by: Daniel Vetter &lt;daniel.vetter@ffwll.ch&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
Signed-off-by: Zhouping Liu &lt;zliu@redhat.com&gt;


</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 067556084a0e412013af6b0250a3143ae5afde6d upstream.

obj-&gt;mm_list link to dev_priv-&gt;mm.inactive_list/active_list
obj-&gt;global_list link to dev_priv-&gt;mm.unbound_list/bound_list

This regression has been introduced in

commit 93927ca52a55c23e0a6a305e7e9082e8411ac9fa
Author: Daniel Vetter &lt;daniel.vetter@ffwll.ch&gt;
Date:   Thu Jan 10 18:03:00 2013 +0100

    drm/i915: Revert shrinker changes from "Track unbound pages"

Cc: stable@vger.kernel.org
Signed-off-by: Xiong Zhang &lt;xiong.y.zhang@intel.com&gt;
[danvet: Add regression notice.]
Signed-off-by: Daniel Vetter &lt;daniel.vetter@ffwll.ch&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
Signed-off-by: Zhouping Liu &lt;zliu@redhat.com&gt;


</pre>
</div>
</content>
</entry>
<entry>
<title>iscsi-target: Fix iscsit_sequence_cmd reject handling for iser</title>
<updated>2013-08-04T08:51:17+00:00</updated>
<author>
<name>Nicholas Bellinger</name>
<email>nab@linux-iscsi.org</email>
</author>
<published>2013-07-30T04:04:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=adb97c299904814edb0bb26ae894139ca46ae446'/>
<id>adb97c299904814edb0bb26ae894139ca46ae446</id>
<content type='text'>
commit 561bf15892375597ee59d473a704a3e634c4f311 upstream

This patch moves ISCSI_OP_REJECT failures into iscsit_sequence_cmd()
in order to avoid external iscsit_reject_cmd() reject usage for all
PDU types.

It also updates PDU specific handlers for traditional iscsi-target
code to not reset the session after posting a ISCSI_OP_REJECT during
setup.

(v2: Fix CMDSN_LOWER_THAN_EXP for ISCSI_OP_SCSI to call
     target_put_sess_cmd() after iscsit_sequence_cmd() failure)

Signed-off-by: Nicholas Bellinger &lt;nab@linux-iscsi.org&gt;
Cc: Or Gerlitz &lt;ogerlitz@mellanox.com&gt;
Cc: Mike Christie &lt;michaelc@cs.wisc.edu&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 561bf15892375597ee59d473a704a3e634c4f311 upstream

This patch moves ISCSI_OP_REJECT failures into iscsit_sequence_cmd()
in order to avoid external iscsit_reject_cmd() reject usage for all
PDU types.

It also updates PDU specific handlers for traditional iscsi-target
code to not reset the session after posting a ISCSI_OP_REJECT during
setup.

(v2: Fix CMDSN_LOWER_THAN_EXP for ISCSI_OP_SCSI to call
     target_put_sess_cmd() after iscsit_sequence_cmd() failure)

Signed-off-by: Nicholas Bellinger &lt;nab@linux-iscsi.org&gt;
Cc: Or Gerlitz &lt;ogerlitz@mellanox.com&gt;
Cc: Mike Christie &lt;michaelc@cs.wisc.edu&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>iscsi-target: Fix iscsit_add_reject* usage for iser</title>
<updated>2013-08-04T08:51:17+00:00</updated>
<author>
<name>Nicholas Bellinger</name>
<email>nab@linux-iscsi.org</email>
</author>
<published>2013-07-30T04:04:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=1aa58ccd029fc75c115ae35c3fcb4d43043c0725'/>
<id>1aa58ccd029fc75c115ae35c3fcb4d43043c0725</id>
<content type='text'>
commit ba159914086f06532079fc15141f46ffe7e04a41 upstream

This patch changes iscsit_add_reject() + iscsit_add_reject_from_cmd()
usage to not sleep on iscsi_cmd-&gt;reject_comp to address a free-after-use
usage bug in v3.10 with iser-target code.

It saves -&gt;reject_reason for use within iscsit_build_reject() so the
correct value for both transport cases.  It also drops the legacy
fail_conn parameter usage throughput iscsi-target code and adds
two iscsit_add_reject_cmd() and iscsit_reject_cmd helper functions,
along with various small cleanups.

(v2: Re-enable target_put_sess_cmd() to be called from
     iscsit_add_reject_from_cmd() for rejects invoked after
     target_get_sess_cmd() has been called)

Signed-off-by: Nicholas Bellinger &lt;nab@linux-iscsi.org&gt;
Cc: Or Gerlitz &lt;ogerlitz@mellanox.com&gt;
Cc: Mike Christie &lt;michaelc@cs.wisc.edu&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit ba159914086f06532079fc15141f46ffe7e04a41 upstream

This patch changes iscsit_add_reject() + iscsit_add_reject_from_cmd()
usage to not sleep on iscsi_cmd-&gt;reject_comp to address a free-after-use
usage bug in v3.10 with iser-target code.

It saves -&gt;reject_reason for use within iscsit_build_reject() so the
correct value for both transport cases.  It also drops the legacy
fail_conn parameter usage throughput iscsi-target code and adds
two iscsit_add_reject_cmd() and iscsit_reject_cmd helper functions,
along with various small cleanups.

(v2: Re-enable target_put_sess_cmd() to be called from
     iscsit_add_reject_from_cmd() for rejects invoked after
     target_get_sess_cmd() has been called)

Signed-off-by: Nicholas Bellinger &lt;nab@linux-iscsi.org&gt;
Cc: Or Gerlitz &lt;ogerlitz@mellanox.com&gt;
Cc: Mike Christie &lt;michaelc@cs.wisc.edu&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>radeon kms: do not flush uninitialized hotplug work</title>
<updated>2013-08-04T08:51:17+00:00</updated>
<author>
<name>Sergey Senozhatsky</name>
<email>sergey.senozhatsky@gmail.com</email>
</author>
<published>2013-07-14T11:03:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=6655d76ecb91fa618c4d0d0dd653e94078b3f050'/>
<id>6655d76ecb91fa618c4d0d0dd653e94078b3f050</id>
<content type='text'>
commit a01c34f72e7cd2624570818f579b5ab464f93de2 upstream.

Fix a warning from lockdep caused by calling flush_work() for
uninitialized hotplug work. Initialize hotplug_work, audio_work
and reset_work upon successful radeon_irq_kms_init() completion
and thus perform hotplug flush_work only when rdev-&gt;irq.installed
is true.

[    4.790019] [drm] Loading CEDAR Microcode
[    4.790943] r600_cp: Failed to load firmware "radeon/CEDAR_smc.bin"
[    4.791152] [drm:evergreen_startup] *ERROR* Failed to load firmware!
[    4.791330] radeon 0000:01:00.0: disabling GPU acceleration

[    4.792633] INFO: trying to register non-static key.
[    4.792792] the code is fine but needs lockdep annotation.
[    4.792953] turning off the locking correctness validator.

[    4.793114] CPU: 2 PID: 1 Comm: swapper/0 Not tainted 3.11.0-rc0-dbg-10676-gfe56456-dirty #1816
[    4.793314] Hardware name: Acer             Aspire 5741G    /Aspire 5741G    , BIOS V1.20 02/08/2011
[    4.793507]  ffffffff821fd810 ffff8801530b9a18 ffffffff8160434e 0000000000000002
[    4.794155]  ffff8801530b9ad8 ffffffff810b8404 ffff8801530b0798 ffff8801530b0000
[    4.794789]  ffff8801530b9b00 0000000000000046 00000000000004c0 ffffffff00000000
[    4.795418] Call Trace:
[    4.795573]  [&lt;ffffffff8160434e&gt;] dump_stack+0x4e/0x82
[    4.795731]  [&lt;ffffffff810b8404&gt;] __lock_acquire+0x1a64/0x1d30
[    4.795893]  [&lt;ffffffff814a87f0&gt;] ? dev_vprintk_emit+0x50/0x60
[    4.796034]  [&lt;ffffffff810b8fb4&gt;] lock_acquire+0xa4/0x200
[    4.796216]  [&lt;ffffffff8106cd75&gt;] ? flush_work+0x5/0x280
[    4.796375]  [&lt;ffffffff8106cdad&gt;] flush_work+0x3d/0x280
[    4.796520]  [&lt;ffffffff8106cd75&gt;] ? flush_work+0x5/0x280
[    4.796682]  [&lt;ffffffff810b659d&gt;] ? trace_hardirqs_on_caller+0xfd/0x1c0
[    4.796862]  [&lt;ffffffff8131d775&gt;] ? delay_tsc+0x95/0xf0
[    4.797024]  [&lt;ffffffff8141bb8b&gt;] radeon_irq_kms_fini+0x2b/0x70
[    4.797186]  [&lt;ffffffff814557c9&gt;] evergreen_init+0x2a9/0x2e0
[    4.797347]  [&lt;ffffffff813ebb1f&gt;] radeon_device_init+0x5ef/0x700
[    4.797511]  [&lt;ffffffff81335bc7&gt;] ? pci_find_capability+0x47/0x50
[    4.797672]  [&lt;ffffffff813edaed&gt;] radeon_driver_load_kms+0x8d/0x150
[    4.797843]  [&lt;ffffffff813ce426&gt;] drm_get_pci_dev+0x166/0x280
[    4.798007]  [&lt;ffffffff8116cff5&gt;] ? kfree+0xf5/0x2e0
[    4.798168]  [&lt;ffffffff813ea298&gt;] ? radeon_pci_probe+0x98/0xd0
[    4.798329]  [&lt;ffffffff813ea2aa&gt;] radeon_pci_probe+0xaa/0xd0
[    4.798489]  [&lt;ffffffff81339404&gt;] pci_device_probe+0x84/0xe0
[    4.798644]  [&lt;ffffffff814ac7d6&gt;] driver_probe_device+0x76/0x240
[    4.798805]  [&lt;ffffffff814aca73&gt;] __driver_attach+0x93/0xa0
[    4.798948]  [&lt;ffffffff814ac9e0&gt;] ? __device_attach+0x40/0x40
[    4.799126]  [&lt;ffffffff814aa82b&gt;] bus_for_each_dev+0x6b/0xb0
[    4.799272]  [&lt;ffffffff814ac2be&gt;] driver_attach+0x1e/0x20
[    4.799434]  [&lt;ffffffff814abec0&gt;] bus_add_driver+0x1f0/0x280
[    4.799596]  [&lt;ffffffff814ad0e4&gt;] driver_register+0x74/0x150
[    4.799758]  [&lt;ffffffff8133923d&gt;] __pci_register_driver+0x5d/0x60
[    4.799936]  [&lt;ffffffff81d16efc&gt;] ? ttm_init+0x67/0x67
[    4.800081]  [&lt;ffffffff813ce655&gt;] drm_pci_init+0x115/0x130
[    4.800243]  [&lt;ffffffff81d16efc&gt;] ? ttm_init+0x67/0x67
[    4.800405]  [&lt;ffffffff81d16f98&gt;] radeon_init+0x9c/0xba
[    4.800586]  [&lt;ffffffff810002ca&gt;] do_one_initcall+0xfa/0x150
[    4.800746]  [&lt;ffffffff81073f60&gt;] ? parse_args+0x120/0x330
[    4.800909]  [&lt;ffffffff81cdafae&gt;] kernel_init_freeable+0x111/0x191
[    4.801052]  [&lt;ffffffff81cda87a&gt;] ? do_early_param+0x88/0x88
[    4.801233]  [&lt;ffffffff815fb670&gt;] ? rest_init+0x140/0x140
[    4.801393]  [&lt;ffffffff815fb67e&gt;] kernel_init+0xe/0x180
[    4.801556]  [&lt;ffffffff8160dcac&gt;] ret_from_fork+0x7c/0xb0
[    4.801718]  [&lt;ffffffff815fb670&gt;] ? rest_init+0x140/0x140

Signed-off-by: Sergey Senozhatsky &lt;sergey.senozhatsky@gmail.com&gt;
Signed-off-by: Alex Deucher &lt;alexander.deucher@amd.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit a01c34f72e7cd2624570818f579b5ab464f93de2 upstream.

Fix a warning from lockdep caused by calling flush_work() for
uninitialized hotplug work. Initialize hotplug_work, audio_work
and reset_work upon successful radeon_irq_kms_init() completion
and thus perform hotplug flush_work only when rdev-&gt;irq.installed
is true.

[    4.790019] [drm] Loading CEDAR Microcode
[    4.790943] r600_cp: Failed to load firmware "radeon/CEDAR_smc.bin"
[    4.791152] [drm:evergreen_startup] *ERROR* Failed to load firmware!
[    4.791330] radeon 0000:01:00.0: disabling GPU acceleration

[    4.792633] INFO: trying to register non-static key.
[    4.792792] the code is fine but needs lockdep annotation.
[    4.792953] turning off the locking correctness validator.

[    4.793114] CPU: 2 PID: 1 Comm: swapper/0 Not tainted 3.11.0-rc0-dbg-10676-gfe56456-dirty #1816
[    4.793314] Hardware name: Acer             Aspire 5741G    /Aspire 5741G    , BIOS V1.20 02/08/2011
[    4.793507]  ffffffff821fd810 ffff8801530b9a18 ffffffff8160434e 0000000000000002
[    4.794155]  ffff8801530b9ad8 ffffffff810b8404 ffff8801530b0798 ffff8801530b0000
[    4.794789]  ffff8801530b9b00 0000000000000046 00000000000004c0 ffffffff00000000
[    4.795418] Call Trace:
[    4.795573]  [&lt;ffffffff8160434e&gt;] dump_stack+0x4e/0x82
[    4.795731]  [&lt;ffffffff810b8404&gt;] __lock_acquire+0x1a64/0x1d30
[    4.795893]  [&lt;ffffffff814a87f0&gt;] ? dev_vprintk_emit+0x50/0x60
[    4.796034]  [&lt;ffffffff810b8fb4&gt;] lock_acquire+0xa4/0x200
[    4.796216]  [&lt;ffffffff8106cd75&gt;] ? flush_work+0x5/0x280
[    4.796375]  [&lt;ffffffff8106cdad&gt;] flush_work+0x3d/0x280
[    4.796520]  [&lt;ffffffff8106cd75&gt;] ? flush_work+0x5/0x280
[    4.796682]  [&lt;ffffffff810b659d&gt;] ? trace_hardirqs_on_caller+0xfd/0x1c0
[    4.796862]  [&lt;ffffffff8131d775&gt;] ? delay_tsc+0x95/0xf0
[    4.797024]  [&lt;ffffffff8141bb8b&gt;] radeon_irq_kms_fini+0x2b/0x70
[    4.797186]  [&lt;ffffffff814557c9&gt;] evergreen_init+0x2a9/0x2e0
[    4.797347]  [&lt;ffffffff813ebb1f&gt;] radeon_device_init+0x5ef/0x700
[    4.797511]  [&lt;ffffffff81335bc7&gt;] ? pci_find_capability+0x47/0x50
[    4.797672]  [&lt;ffffffff813edaed&gt;] radeon_driver_load_kms+0x8d/0x150
[    4.797843]  [&lt;ffffffff813ce426&gt;] drm_get_pci_dev+0x166/0x280
[    4.798007]  [&lt;ffffffff8116cff5&gt;] ? kfree+0xf5/0x2e0
[    4.798168]  [&lt;ffffffff813ea298&gt;] ? radeon_pci_probe+0x98/0xd0
[    4.798329]  [&lt;ffffffff813ea2aa&gt;] radeon_pci_probe+0xaa/0xd0
[    4.798489]  [&lt;ffffffff81339404&gt;] pci_device_probe+0x84/0xe0
[    4.798644]  [&lt;ffffffff814ac7d6&gt;] driver_probe_device+0x76/0x240
[    4.798805]  [&lt;ffffffff814aca73&gt;] __driver_attach+0x93/0xa0
[    4.798948]  [&lt;ffffffff814ac9e0&gt;] ? __device_attach+0x40/0x40
[    4.799126]  [&lt;ffffffff814aa82b&gt;] bus_for_each_dev+0x6b/0xb0
[    4.799272]  [&lt;ffffffff814ac2be&gt;] driver_attach+0x1e/0x20
[    4.799434]  [&lt;ffffffff814abec0&gt;] bus_add_driver+0x1f0/0x280
[    4.799596]  [&lt;ffffffff814ad0e4&gt;] driver_register+0x74/0x150
[    4.799758]  [&lt;ffffffff8133923d&gt;] __pci_register_driver+0x5d/0x60
[    4.799936]  [&lt;ffffffff81d16efc&gt;] ? ttm_init+0x67/0x67
[    4.800081]  [&lt;ffffffff813ce655&gt;] drm_pci_init+0x115/0x130
[    4.800243]  [&lt;ffffffff81d16efc&gt;] ? ttm_init+0x67/0x67
[    4.800405]  [&lt;ffffffff81d16f98&gt;] radeon_init+0x9c/0xba
[    4.800586]  [&lt;ffffffff810002ca&gt;] do_one_initcall+0xfa/0x150
[    4.800746]  [&lt;ffffffff81073f60&gt;] ? parse_args+0x120/0x330
[    4.800909]  [&lt;ffffffff81cdafae&gt;] kernel_init_freeable+0x111/0x191
[    4.801052]  [&lt;ffffffff81cda87a&gt;] ? do_early_param+0x88/0x88
[    4.801233]  [&lt;ffffffff815fb670&gt;] ? rest_init+0x140/0x140
[    4.801393]  [&lt;ffffffff815fb67e&gt;] kernel_init+0xe/0x180
[    4.801556]  [&lt;ffffffff8160dcac&gt;] ret_from_fork+0x7c/0xb0
[    4.801718]  [&lt;ffffffff815fb670&gt;] ? rest_init+0x140/0x140

Signed-off-by: Sergey Senozhatsky &lt;sergey.senozhatsky@gmail.com&gt;
Signed-off-by: Alex Deucher &lt;alexander.deucher@amd.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>xen/evtchn: avoid a deadlock when unbinding an event channel</title>
<updated>2013-08-04T08:51:15+00:00</updated>
<author>
<name>David Vrabel</name>
<email>david.vrabel@citrix.com</email>
</author>
<published>2013-07-19T14:51:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=3d63d1e0fe8aeed27f6ef38fa6eaf518dee1bbab'/>
<id>3d63d1e0fe8aeed27f6ef38fa6eaf518dee1bbab</id>
<content type='text'>
commit 179fbd5a45f0d4034cc6fd37b8d367a3b79663c4 upstream.

Unbinding an event channel (either with the ioctl or when the evtchn
device is closed) may deadlock because disable_irq() is called with
port_user_lock held which is also locked by the interrupt handler.

Think of the IOCTL_EVTCHN_UNBIND is being serviced, the routine has
just taken the lock, and an interrupt happens. The evtchn_interrupt
is invoked, tries to take the lock and spins forever.

A quick glance at the code shows that the spinlock is a local IRQ
variant. Unfortunately that does not help as "disable_irq() waits for
the interrupt handler on all CPUs to stop running.  If the irq occurs
on another VCPU, it tries to take port_user_lock and can't because
the unbind ioctl is holding it." (from David). Hence we cannot
depend on the said spinlock to protect us. We could make it a system
wide IRQ disable spinlock but there is a better way.

We can piggyback on the fact that the existence of the spinlock is
to make get_port_user() checks be up-to-date. And we can alter those
checks to not depend on the spin lock (as it's protected by u-&gt;bind_mutex
in the ioctl) and can remove the unnecessary locking (this is
IOCTL_EVTCHN_UNBIND) path.

In the interrupt handler we cannot use the mutex, but we do not
need it.

"The unbind disables the irq before making the port user stale, so when
you clear it you are guaranteed that the interrupt handler that might
use that port cannot be running." (from David).

Hence this patch removes the spinlock usage on the teardown path
and piggybacks on disable_irq happening before we muck with the
get_port_user() data. This ensures that the interrupt handler will
never run on stale data.

Signed-off-by: David Vrabel &lt;david.vrabel@citrix.com&gt;
Signed-off-by: Konrad Rzeszutek Wilk &lt;konrad.wilk@oracle.com&gt;
[v1: Expanded the commit description a bit]
Signed-off-by: Jonghwan Choi &lt;jhbird.choi@samsung.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 179fbd5a45f0d4034cc6fd37b8d367a3b79663c4 upstream.

Unbinding an event channel (either with the ioctl or when the evtchn
device is closed) may deadlock because disable_irq() is called with
port_user_lock held which is also locked by the interrupt handler.

Think of the IOCTL_EVTCHN_UNBIND is being serviced, the routine has
just taken the lock, and an interrupt happens. The evtchn_interrupt
is invoked, tries to take the lock and spins forever.

A quick glance at the code shows that the spinlock is a local IRQ
variant. Unfortunately that does not help as "disable_irq() waits for
the interrupt handler on all CPUs to stop running.  If the irq occurs
on another VCPU, it tries to take port_user_lock and can't because
the unbind ioctl is holding it." (from David). Hence we cannot
depend on the said spinlock to protect us. We could make it a system
wide IRQ disable spinlock but there is a better way.

We can piggyback on the fact that the existence of the spinlock is
to make get_port_user() checks be up-to-date. And we can alter those
checks to not depend on the spin lock (as it's protected by u-&gt;bind_mutex
in the ioctl) and can remove the unnecessary locking (this is
IOCTL_EVTCHN_UNBIND) path.

In the interrupt handler we cannot use the mutex, but we do not
need it.

"The unbind disables the irq before making the port user stale, so when
you clear it you are guaranteed that the interrupt handler that might
use that port cannot be running." (from David).

Hence this patch removes the spinlock usage on the teardown path
and piggybacks on disable_irq happening before we muck with the
get_port_user() data. This ensures that the interrupt handler will
never run on stale data.

Signed-off-by: David Vrabel &lt;david.vrabel@citrix.com&gt;
Signed-off-by: Konrad Rzeszutek Wilk &lt;konrad.wilk@oracle.com&gt;
[v1: Expanded the commit description a bit]
Signed-off-by: Jonghwan Choi &lt;jhbird.choi@samsung.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>tty_port: Fix refcounting leak in tty_port_tty_hangup()</title>
<updated>2013-08-04T08:51:14+00:00</updated>
<author>
<name>Gianluca Anzolin</name>
<email>gianluca@sottospazio.it</email>
</author>
<published>2013-07-25T05:26:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=ba9a3c3ce30b8c399d5bfeef1d48a26170dc499e'/>
<id>ba9a3c3ce30b8c399d5bfeef1d48a26170dc499e</id>
<content type='text'>
commit 1d9e689c934bd5ecb0f273c6c65e0655c5cfee5f upstream.

The function tty_port_tty_hangup() could leak a reference to the tty_struct:

        struct tty_struct *tty = tty_port_tty_get(port);

        if (tty &amp;&amp; (!check_clocal || !C_CLOCAL(tty))) {
                tty_hangup(tty);
                tty_kref_put(tty);
        }

If tty != NULL and the second condition is false we never call tty_kref_put and
the reference is leaked.

Fix by always calling tty_kref_put() which accepts a NULL argument.

The patch fixes a regression introduced by commit aa27a094.

Acked-by: Gustavo Padovan &lt;gustavo.padovan@collabora.co.uk&gt;
Signed-off-by: Gianluca Anzolin &lt;gianluca@sottospazio.it&gt;
Acked-by: Jiri Slaby &lt;jslaby@suse.cz&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 1d9e689c934bd5ecb0f273c6c65e0655c5cfee5f upstream.

The function tty_port_tty_hangup() could leak a reference to the tty_struct:

        struct tty_struct *tty = tty_port_tty_get(port);

        if (tty &amp;&amp; (!check_clocal || !C_CLOCAL(tty))) {
                tty_hangup(tty);
                tty_kref_put(tty);
        }

If tty != NULL and the second condition is false we never call tty_kref_put and
the reference is leaked.

Fix by always calling tty_kref_put() which accepts a NULL argument.

The patch fixes a regression introduced by commit aa27a094.

Acked-by: Gustavo Padovan &lt;gustavo.padovan@collabora.co.uk&gt;
Signed-off-by: Gianluca Anzolin &lt;gianluca@sottospazio.it&gt;
Acked-by: Jiri Slaby &lt;jslaby@suse.cz&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>usb: gadget: udc-core: fix the typo of udc state attribute</title>
<updated>2013-08-04T08:51:14+00:00</updated>
<author>
<name>Rong Wang</name>
<email>Rong.Wang@csr.com</email>
</author>
<published>2013-07-28T15:01:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=8fc2b1321b8fb0ed3d80de5303b8db99923bdecf'/>
<id>8fc2b1321b8fb0ed3d80de5303b8db99923bdecf</id>
<content type='text'>
commit 1894870eb4240399fabc6f0cb8c6fff4e6edbe83 upstream.

The name of udc state attribute file under sysfs is registered as
"state", while usb_gadget_set_state take it as "status" when it's
going to update. This patch fixes the typo.

Signed-off-by: Rong Wang &lt;Rong.Wang@csr.com&gt;
Signed-off-by: Barry Song &lt;Baohua.Song@csr.com&gt;
Signed-off-by: Felipe Balbi &lt;balbi@ti.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 1894870eb4240399fabc6f0cb8c6fff4e6edbe83 upstream.

The name of udc state attribute file under sysfs is registered as
"state", while usb_gadget_set_state take it as "status" when it's
going to update. This patch fixes the typo.

Signed-off-by: Rong Wang &lt;Rong.Wang@csr.com&gt;
Signed-off-by: Barry Song &lt;Baohua.Song@csr.com&gt;
Signed-off-by: Felipe Balbi &lt;balbi@ti.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>USB: serial: ftdi_sio: add more RT Systems ftdi devices</title>
<updated>2013-08-04T08:51:14+00:00</updated>
<author>
<name>Rick Farina (Zero_Chaos)</name>
<email>zerochaos@gentoo.org</email>
</author>
<published>2013-07-29T19:17:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=2ff7687bca58a839fd36e5a0b167465b4fa8bf51'/>
<id>2ff7687bca58a839fd36e5a0b167465b4fa8bf51</id>
<content type='text'>
commit fed1f1ed90bce42ea010e2904cbc04e7b8304940 upstream.

RT Systems makes many usb serial cables based on the ftdi_sio driver for
programming various amateur radios.  This patch is a full listing of
their current product offerings and should allow these cables to all
be recognized.

Signed-off-by: Rick Farina (Zero_Chaos) &lt;zerochaos@gentoo.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit fed1f1ed90bce42ea010e2904cbc04e7b8304940 upstream.

RT Systems makes many usb serial cables based on the ftdi_sio driver for
programming various amateur radios.  This patch is a full listing of
their current product offerings and should allow these cables to all
be recognized.

Signed-off-by: Rick Farina (Zero_Chaos) &lt;zerochaos@gentoo.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>rtlwifi: Initialize power-setting callback for USB devices</title>
<updated>2013-08-04T08:51:14+00:00</updated>
<author>
<name>Larry Finger</name>
<email>Larry.Finger@lwfinger.net</email>
</author>
<published>2013-06-28T14:12:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=758057d66f667d17034b6080d06a2c6b5b498544'/>
<id>758057d66f667d17034b6080d06a2c6b5b498544</id>
<content type='text'>
commit bcfb879432094c267c35a7ff75d953d3a66c193a upstream.

Commit a269913c5 entitled "rtlwifi: Rework rtl_lps_leave() and
rtl_lps_enter() to use work queue" has two bugs for USB drivers.
Firstly, the work queue in question was not initialized. Secondly,
the callback routine used by this queue is contained within the
file used for PCI devices. As a result, it is not available for
architectures without PCI hardware.

Signed-off-by: Larry Finger &lt;Larry.Finger@lwfinger.net&gt;
Reported-by: Richard Genoud &lt;richard.genoud@gmail.com&gt;
Tested-by: Richard Genoud &lt;richard.genoud@gmail.com&gt;
Cc: Richard Genoud &lt;richard.genoud@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>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit bcfb879432094c267c35a7ff75d953d3a66c193a upstream.

Commit a269913c5 entitled "rtlwifi: Rework rtl_lps_leave() and
rtl_lps_enter() to use work queue" has two bugs for USB drivers.
Firstly, the work queue in question was not initialized. Secondly,
the callback routine used by this queue is contained within the
file used for PCI devices. As a result, it is not available for
architectures without PCI hardware.

Signed-off-by: Larry Finger &lt;Larry.Finger@lwfinger.net&gt;
Reported-by: Richard Genoud &lt;richard.genoud@gmail.com&gt;
Tested-by: Richard Genoud &lt;richard.genoud@gmail.com&gt;
Cc: Richard Genoud &lt;richard.genoud@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;

</pre>
</div>
</content>
</entry>
<entry>
<title>drm/radeon/atom: initialize more atom interpretor elements to 0</title>
<updated>2013-08-04T08:51:14+00:00</updated>
<author>
<name>Alex Deucher</name>
<email>alexander.deucher@amd.com</email>
</author>
<published>2013-07-30T04:22:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=6f8bbaf568c7f2c497558bfd04654c0b9841ad57'/>
<id>6f8bbaf568c7f2c497558bfd04654c0b9841ad57</id>
<content type='text'>
commit 42a21826dc54583cdb79cc8477732e911ac9c376 upstream.

The ProcessAuxChannel table on some rv635 boards assumes
the divmul members are initialized to 0 otherwise we get
an invalid fb offset since it has a bad mask set when
setting the fb base.  While here initialize all the
atom interpretor elements to 0.

Fixes:
https://bugzilla.kernel.org/show_bug.cgi?id=60639

Signed-off-by: Alex Deucher &lt;alexander.deucher@amd.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 42a21826dc54583cdb79cc8477732e911ac9c376 upstream.

The ProcessAuxChannel table on some rv635 boards assumes
the divmul members are initialized to 0 otherwise we get
an invalid fb offset since it has a bad mask set when
setting the fb base.  While here initialize all the
atom interpretor elements to 0.

Fixes:
https://bugzilla.kernel.org/show_bug.cgi?id=60639

Signed-off-by: Alex Deucher &lt;alexander.deucher@amd.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
</feed>
