<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/drivers, branch v3.14.6</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/drivers?h=v3.14.6</id>
<link rel='self' href='https://git.amat.us/linux/atom/drivers?h=v3.14.6'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2014-06-07T17:28:29Z</updated>
<entry>
<title>media: V4L2: fix VIDIOC_CREATE_BUFS in 64- / 32-bit compatibility mode</title>
<updated>2014-06-07T17:28:29Z</updated>
<author>
<name>Guennadi Liakhovetski</name>
<email>g.liakhovetski@gmx.de</email>
</author>
<published>2014-04-26T15:51:31Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=3372ac6f0c1617a381f8a69ff1e7cc2e6751bdd3'/>
<id>urn:sha1:3372ac6f0c1617a381f8a69ff1e7cc2e6751bdd3</id>
<content type='text'>
commit 97d9d23dda6f37d90aefeec4ed619d52df525382 upstream.

If a struct contains 64-bit fields, it is aligned on 64-bit boundaries
within containing structs in 64-bit compilations. This is the case with
struct v4l2_window, which contains pointers and is embedded into struct
v4l2_format, and that one is embedded into struct v4l2_create_buffers.
Unlike some other structs, used as a part of the kernel ABI as ioctl()
arguments, that are packed, these structs aren't packed. This isn't a
problem per se, but the ioctl-compat code for VIDIOC_CREATE_BUFS contains
a bug, that triggers in such 64-bit builds. That code wrongly assumes,
that in struct v4l2_create_buffers, struct v4l2_format immediately follows
the __u32 memory field, which in fact isn't the case. This bug wasn't
visible until now, because until recently hardly any applications used
this ioctl() and mostly embedded 32-bit only drivers implemented it. This
is changing now with addition of this ioctl() to some USB drivers, e.g.
UVC. This patch fixes the bug by copying parts of struct
v4l2_create_buffers separately.

Signed-off-by: Guennadi Liakhovetski &lt;g.liakhovetski@gmx.de&gt;
Acked-by: Laurent Pinchart &lt;laurent.pinchart@ideasonboard.com&gt;
Signed-off-by: Mauro Carvalho Chehab &lt;m.chehab@samsung.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>media: V4L2: ov7670: fix a wrong index, potentially Oopsing the kernel from user-space</title>
<updated>2014-06-07T17:28:28Z</updated>
<author>
<name>Guennadi Liakhovetski</name>
<email>g.liakhovetski@gmx.de</email>
</author>
<published>2014-04-14T13:49:34Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=d0c47e5d003514bef6b7be36a49a4c87058a732a'/>
<id>urn:sha1:d0c47e5d003514bef6b7be36a49a4c87058a732a</id>
<content type='text'>
commit cfece5857ca51d1dcdb157017aba226f594e9dcf upstream.

Commit 75e2bdad8901a0b599e01a96229be922eef1e488 "ov7670: allow
configuration of image size, clock speed, and I/O method" uses a wrong
index to iterate an array. Apart from being wrong, it also uses an
unchecked value from user-space, which can cause access to unmapped
memory in the kernel, triggered by a normal desktop user with rights to
use V4L2 devices.

Signed-off-by: Guennadi Liakhovetski &lt;g.liakhovetski@gmx.de&gt;
Acked-by: Jonathan Corbet &lt;corbet@lwn.net&gt;
Signed-off-by: Mauro Carvalho Chehab &lt;m.chehab@samsung.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>iwlwifi: mvm: rs: clear per rate stats when aggregation changes</title>
<updated>2014-06-07T17:28:28Z</updated>
<author>
<name>Eyal Shapira</name>
<email>eyal@wizery.com</email>
</author>
<published>2014-06-04T18:58:01Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=ca4a4d64a7b1c0d08067622c02ec6a276a4ebf7c'/>
<id>urn:sha1:ca4a4d64a7b1c0d08067622c02ec6a276a4ebf7c</id>
<content type='text'>
commit b804eeb6649d75caeccbeae9f5623fc7b8bdfdfa upstream.

The per rate stats should be cleared when aggregation state changes
to avoid making rate scale decisions based on throughput figures which
were collected prior to the aggregation state change and are now stale.
While at it make sure any clearing of the per rate stats will get logged.

Signed-off-by: Eyal Shapira &lt;eyalx.shapira@intel.com&gt;
Signed-off-by: Emmanuel Grumbach &lt;emmanuel.grumbach@intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>iwlwifi: add rs_rate_scale_clear_tbl_windows helper function</title>
<updated>2014-06-07T17:28:28Z</updated>
<author>
<name>Eliad Peller</name>
<email>eliad@wizery.com</email>
</author>
<published>2014-06-04T18:58:00Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=424048eb3ff12c2b8da830cb8827d5bec136f515'/>
<id>urn:sha1:424048eb3ff12c2b8da830cb8827d5bec136f515</id>
<content type='text'>
commit 3ca71f603bb1a0f55e1ba24618ba45617bc36f70 upstream.

instead of duplicating the same loop multiple times,
use a new function for it.

this will be later used also for clearing other
windows in the table.

Signed-off-by: Eliad Peller &lt;eliadx.peller@intel.com&gt;
Signed-off-by: Emmanuel Grumbach &lt;emmanuel.grumbach@intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>iwlwifi: mvm: disable beacon filtering</title>
<updated>2014-06-07T17:28:28Z</updated>
<author>
<name>Emmanuel Grumbach</name>
<email>emmanuel.grumbach@intel.com</email>
</author>
<published>2014-05-18T16:05:23Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=f47fc3c1b48dd8fc7a0a591551454459eca0ca94'/>
<id>urn:sha1:f47fc3c1b48dd8fc7a0a591551454459eca0ca94</id>
<content type='text'>
commit 7bacc782270ff7db3b9f29fa5d24ad2ee1e8e81d upstream.

This feature has been causing trouble - disable it for now.

Signed-off-by: Emmanuel Grumbach &lt;emmanuel.grumbach@intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>media: fc2580: fix tuning failure on 32-bit arch</title>
<updated>2014-06-07T17:28:28Z</updated>
<author>
<name>Antti Palosaari</name>
<email>crope@iki.fi</email>
</author>
<published>2014-04-11T00:18:16Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=24d0dd75ef19c885309cf06990267cd2cbf49fa4'/>
<id>urn:sha1:24d0dd75ef19c885309cf06990267cd2cbf49fa4</id>
<content type='text'>
commit 8845cc6415ec28ef8d57b3fb81c75ef9bce69c5f upstream.

There was some frequency calculation overflows which caused tuning
failure on 32-bit architecture. Use 64-bit numbers where needed in
order to avoid calculation overflows.

Thanks for the Finnish person, who asked remain anonymous, reporting,
testing and suggesting the fix.

Signed-off-by: Antti Palosaari &lt;crope@iki.fi&gt;
Signed-off-by: Mauro Carvalho Chehab &lt;m.chehab@samsung.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>iommu/amd: Fix interrupt remapping for aliased devices</title>
<updated>2014-06-07T17:28:28Z</updated>
<author>
<name>Alex Williamson</name>
<email>alex.williamson@redhat.com</email>
</author>
<published>2014-04-22T16:08:40Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=c1a763c431dffca42b609be822a4e1ef4231c582'/>
<id>urn:sha1:c1a763c431dffca42b609be822a4e1ef4231c582</id>
<content type='text'>
commit e028a9e6b8a637af09ac4114083280df4a7045f1 upstream.

An apparent cut and paste error prevents the correct flags from being
set on the alias device resulting in MSI on conventional PCI devices
failing to work.  This also produces error events from the IOMMU like:

AMD-Vi: Event logged [INVALID_DEVICE_REQUEST device=00:14.4 address=0x000000fdf8000000 flags=0x0a00]

Where 14.4 is a PCIe-to-PCI bridge with a device behind it trying to
use MSI interrupts.

Signed-off-by: Alex Williamson &lt;alex.williamson@redhat.com&gt;
Signed-off-by: Joerg Roedel &lt;joro@8bytes.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>spi: core: Ignore unsupported Dual/Quad Transfer Mode bits</title>
<updated>2014-06-07T17:28:28Z</updated>
<author>
<name>Geert Uytterhoeven</name>
<email>geert+renesas@glider.be</email>
</author>
<published>2014-04-14T17:39:53Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=a03443f50794844b449d296d45557315208bec1e'/>
<id>urn:sha1:a03443f50794844b449d296d45557315208bec1e</id>
<content type='text'>
commit 83596fbeb5d28e8cb8878786133945d4dc7c0090 upstream.

The availability of SPI Dual or Quad Transfer Mode as indicated by the
"spi-tx-bus-width" and "spi-rx-bus-width" properties in the device tree is
a hardware property of the SPI master, SPI slave, and board wiring.  Hence
the SPI core should not reject an SPI slave because an SPI master driver
doesn't (yet) support Dual or Quad Transfer Mode.

Change the lack of Dual or Quad Transfer Mode support in the SPI master
driver from an error condition to a warning condition, and ignore the
unsupported mode bits, falling back to Single Transfer Mode, to avoid
breakages when running old kernels with new device trees.

Fixes: f477b7fb13df (spi: DUAL and QUAD support)
Signed-off-by: Geert Uytterhoeven &lt;geert+renesas@glider.be&gt;
Signed-off-by: Mark Brown &lt;broonie@linaro.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>clk: Fix slab corruption in clk_unregister()</title>
<updated>2014-06-07T17:28:27Z</updated>
<author>
<name>Stephen Boyd</name>
<email>sboyd@codeaurora.org</email>
</author>
<published>2014-04-18T23:29:43Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=2bf0e785c5c78bcdf1eaa7b6516240ab58cad25c'/>
<id>urn:sha1:2bf0e785c5c78bcdf1eaa7b6516240ab58cad25c</id>
<content type='text'>
commit 874f224cc52d64c912087e68e3724be95ad80ee7 upstream.

When a clock is unregsitered, we iterate over the list of
children and reparent them to NULL (i.e. orphan list). While
iterating the list, we should use the safe iterators because the
children list for this clock is changing when we reparent the
children to NULL. Failure to iterate safely can lead to slab
corruption like this:

=============================================================================
BUG kmalloc-128 (Not tainted): Poison overwritten
-----------------------------------------------------------------------------

Disabling lock debugging due to kernel taint
INFO: 0xed0c4900-0xed0c4903. First byte 0x0 instead of 0x6b
INFO: Allocated in clk_register+0x20/0x1bc age=297 cpu=2 pid=70
 __slab_alloc.isra.39.constprop.42+0x410/0x454
 kmem_cache_alloc_trace+0x200/0x24c
 clk_register+0x20/0x1bc
 devm_clk_register+0x34/0x68
 0xbf0000f0
 platform_drv_probe+0x18/0x48
 driver_probe_device+0x94/0x360
 __driver_attach+0x94/0x98
 bus_for_each_dev+0x54/0x88
 bus_add_driver+0xe8/0x204
 driver_register+0x78/0xf4
 do_one_initcall+0xc4/0x17c
 load_module+0x19ac/0x2294
 SyS_init_module+0xa4/0x110
 ret_fast_syscall+0x0/0x48
INFO: Freed in clk_unregister+0xd4/0x140 age=23 cpu=2 pid=73
 __slab_free+0x38/0x41c
 clk_unregister+0xd4/0x140
 release_nodes+0x164/0x1d8
 __device_release_driver+0x60/0xb0
 driver_detach+0xb4/0xb8
 bus_remove_driver+0x5c/0xc4
 SyS_delete_module+0x148/0x1d8
 ret_fast_syscall+0x0/0x48
INFO: Slab 0xeec50b90 objects=25 used=0 fp=0xed0c5400 flags=0x4080
INFO: Object 0xed0c48c0 @offset=2240 fp=0xed0c4a00

Bytes b4 ed0c48b0: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Object ed0c48c0: 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b  kkkkkkkkkkkkkkkk
Object ed0c48d0: 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b  kkkkkkkkkkkkkkkk
Object ed0c48e0: 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b  kkkkkkkkkkkkkkkk
Object ed0c48f0: 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b  kkkkkkkkkkkkkkkk
Object ed0c4900: 00 00 00 00 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b  ....kkkkkkkkkkkk
Object ed0c4910: 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b  kkkkkkkkkkkkkkkk
Object ed0c4920: 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b  kkkkkkkkkkkkkkkk
Object ed0c4930: 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b a5  kkkkkkkkkkkkkkk.
Redzone ed0c4940: bb bb bb bb                                      ....
Padding ed0c49e8: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
Padding ed0c49f8: 5a 5a 5a 5a 5a 5a 5a 5a                          ZZZZZZZZ
CPU: 3 PID: 75 Comm: mdev Tainted: G    B         3.14.0-11033-g2054ba5ca781 #35
[&lt;c0014be0&gt;] (unwind_backtrace) from [&lt;c0012240&gt;] (show_stack+0x10/0x14)
[&lt;c0012240&gt;] (show_stack) from [&lt;c04b74a0&gt;] (dump_stack+0x70/0xbc)
[&lt;c04b74a0&gt;] (dump_stack) from [&lt;c00f7a78&gt;] (check_bytes_and_report+0xbc/0x100)
[&lt;c00f7a78&gt;] (check_bytes_and_report) from [&lt;c00f7c48&gt;] (check_object+0x18c/0x218)
[&lt;c00f7c48&gt;] (check_object) from [&lt;c00f7efc&gt;] (__free_slab+0x104/0x144)
[&lt;c00f7efc&gt;] (__free_slab) from [&lt;c04b6668&gt;] (__slab_free+0x3dc/0x41c)
[&lt;c04b6668&gt;] (__slab_free) from [&lt;c014c008&gt;] (load_elf_binary+0x88/0x12b4)
[&lt;c014c008&gt;] (load_elf_binary) from [&lt;c0105a44&gt;] (search_binary_handler+0x78/0x18c)
[&lt;c0105a44&gt;] (search_binary_handler) from [&lt;c0106fc0&gt;] (do_execve+0x490/0x5dc)
[&lt;c0106fc0&gt;] (do_execve) from [&lt;c0036b8c&gt;] (____call_usermodehelper+0x134/0x168)
[&lt;c0036b8c&gt;] (____call_usermodehelper) from [&lt;c000f048&gt;] (ret_from_fork+0x14/0x2c)
FIX kmalloc-128: Restoring 0xed0c4900-0xed0c4903=0x6b

Fixes: fcb0ee6a3d33 (clk: Implement clk_unregister)
Cc: Jiada Wang &lt;jiada_wang@mentor.com&gt;
Cc: Sylwester Nawrocki &lt;s.nawrocki@samsung.com&gt;
Cc: Kyungmin Park &lt;kyungmin.park@samsung.com&gt;
Signed-off-by: Stephen Boyd &lt;sboyd@codeaurora.org&gt;
Signed-off-by: Mike Turquette &lt;mturquette@linaro.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>clk: Fix double free due to devm_clk_register()</title>
<updated>2014-06-07T17:28:27Z</updated>
<author>
<name>Stephen Boyd</name>
<email>sboyd@codeaurora.org</email>
</author>
<published>2014-04-18T23:29:42Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=798ad2abc1b05842b7bd5292ff43055e4a767a64'/>
<id>urn:sha1:798ad2abc1b05842b7bd5292ff43055e4a767a64</id>
<content type='text'>
commit 293ba3b4a4fd54891b900f2911d1a57e1ed4a843 upstream.

Now that clk_unregister() frees the struct clk we're
unregistering we'll free memory twice: first we'll call kfree()
in __clk_release() with an address kmalloc doesn't know about and
second we'll call kfree() in the devres layer. Remove the
allocation of struct clk in devm_clk_register() and let
clk_release() handle it. This fixes slab errors like:

=============================================================================
BUG kmalloc-128 (Not tainted): Invalid object pointer 0xed08e8d0
-----------------------------------------------------------------------------

Disabling lock debugging due to kernel taint
INFO: Slab 0xeec503f8 objects=25 used=15 fp=0xed08ea00 flags=0x4081
CPU: 2 PID: 73 Comm: rmmod Tainted: G    B         3.14.0-11032-g526e9c764381 #34
[&lt;c0014be0&gt;] (unwind_backtrace) from [&lt;c0012240&gt;] (show_stack+0x10/0x14)
[&lt;c0012240&gt;] (show_stack) from [&lt;c04b74dc&gt;] (dump_stack+0x70/0xbc)
[&lt;c04b74dc&gt;] (dump_stack) from [&lt;c00f6778&gt;] (slab_err+0x74/0x84)
[&lt;c00f6778&gt;] (slab_err) from [&lt;c04b6278&gt;] (free_debug_processing+0x2cc/0x31c)
[&lt;c04b6278&gt;] (free_debug_processing) from [&lt;c04b6300&gt;] (__slab_free+0x38/0x41c)
[&lt;c04b6300&gt;] (__slab_free) from [&lt;c03931bc&gt;] (clk_unregister+0xd4/0x140)
[&lt;c03931bc&gt;] (clk_unregister) from [&lt;c02fb774&gt;] (release_nodes+0x164/0x1d8)
[&lt;c02fb774&gt;] (release_nodes) from [&lt;c02f8698&gt;] (__device_release_driver+0x60/0xb0)
[&lt;c02f8698&gt;] (__device_release_driver) from [&lt;c02f9080&gt;] (driver_detach+0xb4/0xb8)
[&lt;c02f9080&gt;] (driver_detach) from [&lt;c02f8480&gt;] (bus_remove_driver+0x5c/0xc4)
[&lt;c02f8480&gt;] (bus_remove_driver) from [&lt;c008c9b8&gt;] (SyS_delete_module+0x148/0x1d8)
[&lt;c008c9b8&gt;] (SyS_delete_module) from [&lt;c000ef80&gt;] (ret_fast_syscall+0x0/0x48)
FIX kmalloc-128: Object at 0xed08e8d0 not freed

Fixes: fcb0ee6a3d33 (clk: Implement clk_unregister)
Cc: Jiada Wang &lt;jiada_wang@mentor.com&gt;
Cc: Sylwester Nawrocki &lt;s.nawrocki@samsung.com&gt;
Cc: Kyungmin Park &lt;kyungmin.park@samsung.com&gt;
Signed-off-by: Stephen Boyd &lt;sboyd@codeaurora.org&gt;
Signed-off-by: Mike Turquette &lt;mturquette@linaro.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

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