<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/linux.git, branch v4.7.3</title>
<subtitle>Linux kernel stable tree (mirror)</subtitle>
<id>https://git.radix-linux.su/kernel/linux.git/atom?h=v4.7.3</id>
<link rel='self' href='https://git.radix-linux.su/kernel/linux.git/atom?h=v4.7.3'/>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/'/>
<updated>2016-09-07T06:35:12+00:00</updated>
<entry>
<title>Linux 4.7.3</title>
<updated>2016-09-07T06:35:12+00:00</updated>
<author>
<name>Greg Kroah-Hartman</name>
<email>gregkh@linuxfoundation.org</email>
</author>
<published>2016-09-07T06:35:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=d7f6728f57e3ecbb7ef34eb7d9f564d514775d75'/>
<id>urn:sha1:d7f6728f57e3ecbb7ef34eb7d9f564d514775d75</id>
<content type='text'>
</content>
</entry>
<entry>
<title>SUNRPC: Fix infinite looping in rpc_clnt_iterate_for_each_xprt</title>
<updated>2016-09-07T06:34:56+00:00</updated>
<author>
<name>Trond Myklebust</name>
<email>trond.myklebust@primarydata.com</email>
</author>
<published>2016-07-16T15:47:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=6b553b7ac74ddc1450e8b0a52dfdcfab9129d4c2'/>
<id>urn:sha1:6b553b7ac74ddc1450e8b0a52dfdcfab9129d4c2</id>
<content type='text'>
commit bdc54d8e3cb4a41dddcabfd86d9eb3aa5f622b75 upstream.

If there were less than 2 entries in the multipath list, then
xprt_iter_next_entry_multiple() would never advance beyond the
first entry, which is correct for round robin behaviour, but not
for the list iteration.

The end result would be infinite looping in rpc_clnt_iterate_for_each_xprt()
as we would never see the xprt == NULL condition fulfilled.

Reported-by: Oleg Drokin &lt;green@linuxhacker.ru&gt;
Fixes: 80b14d5e61ca ("SUNRPC: Add a structure to track multiple transports")
Signed-off-by: Trond Myklebust &lt;trond.myklebust@primarydata.com&gt;
Cc: Jason L Tibbitts III &lt;tibbs@math.uh.edu&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>sysfs: correctly handle read offset on PREALLOC attrs</title>
<updated>2016-09-07T06:34:56+00:00</updated>
<author>
<name>Konstantin Khlebnikov</name>
<email>khlebnikov@yandex-team.ru</email>
</author>
<published>2016-06-22T18:42:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=95f837790b66c770d94625206e0cc178df984635'/>
<id>urn:sha1:95f837790b66c770d94625206e0cc178df984635</id>
<content type='text'>
commit 17d0774f80681020eccc9638d925a23f1fc4f671 upstream.

Attributes declared with __ATTR_PREALLOC use sysfs_kf_read() which returns
zero bytes for non-zero offset. This breaks script checkarray in mdadm tool
in debian where /bin/sh is 'dash' because its builtin 'read' reads only one
byte at a time. Script gets 'i' instead of 'idle' when reads current action
from /sys/block/$dev/md/sync_action and as a result does nothing.

This patch adds trivial implementation of partial read: generate whole
string and move required part into buffer head.

Signed-off-by: Konstantin Khlebnikov &lt;khlebnikov@yandex-team.ru&gt;
Fixes: 4ef67a8c95f3 ("sysfs/kernfs: make read requests on pre-alloc files use the buffer.")
Link: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=787950
Acked-by: Tejun Heo &lt;tj@kernel.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>hwmon: (iio_hwmon) fix memory leak in name attribute</title>
<updated>2016-09-07T06:34:56+00:00</updated>
<author>
<name>Quentin Schulz</name>
<email>quentin.schulz@free-electrons.com</email>
</author>
<published>2016-07-26T07:47:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=34242c449ae7753772b68436efef5679a0726cf4'/>
<id>urn:sha1:34242c449ae7753772b68436efef5679a0726cf4</id>
<content type='text'>
commit 5d17d3b4bbf3becb89fd48b74340a50a39736f6d upstream.

The "name" variable's memory is now freed when the device is destructed
thanks to devm function.

Signed-off-by: Quentin Schulz &lt;quentin.schulz@free-electrons.com&gt;
Reported-by: Guenter Roeck &lt;linux@roeck-us.net&gt;
Fixes: e0f8a24e0edfd ("staging:iio::hwmon interface client driver.")
Fixes: 61bb53bcbdd86 ("hwmon: (iio_hwmon) Add support for humidity sensors")
Signed-off-by: Guenter Roeck &lt;linux@roeck-us.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>hwmon: (it87) Add missing sysfs attribute group terminator</title>
<updated>2016-09-07T06:34:56+00:00</updated>
<author>
<name>Jean Delvare</name>
<email>jdelvare@suse.de</email>
</author>
<published>2016-08-29T11:18:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=6814e92876b85752813b6180ef2fe2250fe0b6ae'/>
<id>urn:sha1:6814e92876b85752813b6180ef2fe2250fe0b6ae</id>
<content type='text'>
commit 3c3292634fc2de1ab97b6aa3222fee647f737adb upstream.

Attribute array it87_attributes_in lacks its NULL terminator,
causing random behavior when operating on the attribute group.

Fixes: 52929715634a ("hwmon: (it87) Use is_visible for voltage sensors")
Signed-off-by: Jean Delvare &lt;jdelvare@suse.de&gt;
Cc: Martin Blumenstingl &lt;martin.blumenstingl@googlemail.com&gt;
Cc: Guenter Roeck &lt;linux@roeck-us.net&gt;
Signed-off-by: Guenter Roeck &lt;linux@roeck-us.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>ALSA: line6: Fix POD sysfs attributes segfault</title>
<updated>2016-09-07T06:34:56+00:00</updated>
<author>
<name>Andrej Krutak</name>
<email>dev@andree.sk</email>
</author>
<published>2016-08-18T21:52:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=2c926ec5e0404b08c98d3b39ffad42cab192d8e5'/>
<id>urn:sha1:2c926ec5e0404b08c98d3b39ffad42cab192d8e5</id>
<content type='text'>
commit b027d11263836a0cd335520175257dcb99b43757 upstream.

The commit 02fc76f6a changed base of the sysfs attributes from device to card.
The "show" callbacks dereferenced wrong objects because of this.

Fixes: 02fc76f6a7db ('ALSA: line6: Create sysfs via snd_card_add_dev_attr()')
Reviewed-by: Stefan Hajnoczi &lt;stefanha@gmail.com&gt;
Signed-off-by: Andrej Krutak &lt;dev@andree.sk&gt;
Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>ALSA: line6: Give up on the lock while URBs are released.</title>
<updated>2016-09-07T06:34:56+00:00</updated>
<author>
<name>Andrej Krutak</name>
<email>dev@andree.sk</email>
</author>
<published>2016-08-18T21:52:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=906c9e0f1444b7c9b28d08458b56da25df3d6e6e'/>
<id>urn:sha1:906c9e0f1444b7c9b28d08458b56da25df3d6e6e</id>
<content type='text'>
commit adc8a43a6d6688272ebffa81789fa857e603dec6 upstream.

Done, because line6_stream_stop() locks and calls line6_unlink_audio_urbs(),
which in turn invokes audio_out_callback(), which tries to lock 2nd time.

Fixes:

=============================================
[ INFO: possible recursive locking detected ]
4.4.15+ #15 Not tainted
---------------------------------------------
mplayer/3591 is trying to acquire lock:
 (&amp;(&amp;line6pcm-&gt;out.lock)-&gt;rlock){-.-...}, at: [&lt;bfa27655&gt;] audio_out_callback+0x70/0x110 [snd_usb_line6]

but task is already holding lock:
 (&amp;(&amp;line6pcm-&gt;out.lock)-&gt;rlock){-.-...}, at: [&lt;bfa26aad&gt;] line6_stream_stop+0x24/0x5c [snd_usb_line6]

other info that might help us debug this:
 Possible unsafe locking scenario:

       CPU0
       ----
  lock(&amp;(&amp;line6pcm-&gt;out.lock)-&gt;rlock);
  lock(&amp;(&amp;line6pcm-&gt;out.lock)-&gt;rlock);

 *** DEADLOCK ***

 May be due to missing lock nesting notation

3 locks held by mplayer/3591:
 #0:  (snd_pcm_link_rwlock){.-.-..}, at: [&lt;bf8d49a7&gt;] snd_pcm_stream_lock+0x1e/0x40 [snd_pcm]
 #1:  (&amp;(&amp;substream-&gt;self_group.lock)-&gt;rlock){-.-...}, at: [&lt;bf8d49af&gt;] snd_pcm_stream_lock+0x26/0x40 [snd_pcm]
 #2:  (&amp;(&amp;line6pcm-&gt;out.lock)-&gt;rlock){-.-...}, at: [&lt;bfa26aad&gt;] line6_stream_stop+0x24/0x5c [snd_usb_line6]

stack backtrace:
CPU: 0 PID: 3591 Comm: mplayer Not tainted 4.4.15+ #15
Hardware name: Generic AM33XX (Flattened Device Tree)
[&lt;c0015d85&gt;] (unwind_backtrace) from [&lt;c001253d&gt;] (show_stack+0x11/0x14)
[&lt;c001253d&gt;] (show_stack) from [&lt;c02f1bdf&gt;] (dump_stack+0x8b/0xac)
[&lt;c02f1bdf&gt;] (dump_stack) from [&lt;c0076f43&gt;] (__lock_acquire+0xc8b/0x1780)
[&lt;c0076f43&gt;] (__lock_acquire) from [&lt;c007810d&gt;] (lock_acquire+0x99/0x1c0)
[&lt;c007810d&gt;] (lock_acquire) from [&lt;c06171e7&gt;] (_raw_spin_lock_irqsave+0x3f/0x4c)
[&lt;c06171e7&gt;] (_raw_spin_lock_irqsave) from [&lt;bfa27655&gt;] (audio_out_callback+0x70/0x110 [snd_usb_line6])
[&lt;bfa27655&gt;] (audio_out_callback [snd_usb_line6]) from [&lt;c04294db&gt;] (__usb_hcd_giveback_urb+0x53/0xd0)
[&lt;c04294db&gt;] (__usb_hcd_giveback_urb) from [&lt;c046388d&gt;] (musb_giveback+0x3d/0x98)
[&lt;c046388d&gt;] (musb_giveback) from [&lt;c04647f5&gt;] (musb_urb_dequeue+0x6d/0x114)
[&lt;c04647f5&gt;] (musb_urb_dequeue) from [&lt;c042ac11&gt;] (usb_hcd_unlink_urb+0x39/0x98)
[&lt;c042ac11&gt;] (usb_hcd_unlink_urb) from [&lt;bfa26a87&gt;] (line6_unlink_audio_urbs+0x6a/0x6c [snd_usb_line6])
[&lt;bfa26a87&gt;] (line6_unlink_audio_urbs [snd_usb_line6]) from [&lt;bfa26acb&gt;] (line6_stream_stop+0x42/0x5c [snd_usb_line6])
[&lt;bfa26acb&gt;] (line6_stream_stop [snd_usb_line6]) from [&lt;bfa26fe7&gt;] (snd_line6_trigger+0xb6/0xf4 [snd_usb_line6])
[&lt;bfa26fe7&gt;] (snd_line6_trigger [snd_usb_line6]) from [&lt;bf8d47b7&gt;] (snd_pcm_do_stop+0x36/0x38 [snd_pcm])
[&lt;bf8d47b7&gt;] (snd_pcm_do_stop [snd_pcm]) from [&lt;bf8d462f&gt;] (snd_pcm_action_single+0x22/0x40 [snd_pcm])
[&lt;bf8d462f&gt;] (snd_pcm_action_single [snd_pcm]) from [&lt;bf8d46f9&gt;] (snd_pcm_action+0xac/0xb0 [snd_pcm])
[&lt;bf8d46f9&gt;] (snd_pcm_action [snd_pcm]) from [&lt;bf8d4b61&gt;] (snd_pcm_drop+0x38/0x64 [snd_pcm])
[&lt;bf8d4b61&gt;] (snd_pcm_drop [snd_pcm]) from [&lt;bf8d6233&gt;] (snd_pcm_common_ioctl1+0x7fe/0xbe8 [snd_pcm])
[&lt;bf8d6233&gt;] (snd_pcm_common_ioctl1 [snd_pcm]) from [&lt;bf8d6779&gt;] (snd_pcm_playback_ioctl1+0x15c/0x51c [snd_pcm])
[&lt;bf8d6779&gt;] (snd_pcm_playback_ioctl1 [snd_pcm]) from [&lt;bf8d6b59&gt;] (snd_pcm_playback_ioctl+0x20/0x28 [snd_pcm])
[&lt;bf8d6b59&gt;] (snd_pcm_playback_ioctl [snd_pcm]) from [&lt;c016714b&gt;] (do_vfs_ioctl+0x3af/0x5c8)

Fixes: 63e20df1e5b2 ('ALSA: line6: Reorganize PCM stream handling')
Reviewed-by: Stefan Hajnoczi &lt;stefanha@gmail.com&gt;
Signed-off-by: Andrej Krutak &lt;dev@andree.sk&gt;
Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>ALSA: line6: Remove double line6_pcm_release() after failed acquire.</title>
<updated>2016-09-07T06:34:55+00:00</updated>
<author>
<name>Andrej Krutak</name>
<email>dev@andree.sk</email>
</author>
<published>2016-08-18T21:52:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=c869384f1168b67bc183af2a803a26a25dce4ff5'/>
<id>urn:sha1:c869384f1168b67bc183af2a803a26a25dce4ff5</id>
<content type='text'>
commit 7e4379eae0e31994ea645db1d13006ea8e5ce539 upstream.

If there's an error, pcm is released in line6_pcm_acquire already.

Fixes: 247d95ee6dd2 ('ALSA: line6: Handle error from line6_pcm_acquire()')
Reviewed-by: Stefan Hajnoczi &lt;stefanha@gmail.com&gt;
Signed-off-by: Andrej Krutak &lt;dev@andree.sk&gt;
Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>ACPI / drivers: replace acpi_probe_lock spinlock with mutex</title>
<updated>2016-09-07T06:34:55+00:00</updated>
<author>
<name>Lorenzo Pieralisi</name>
<email>lorenzo.pieralisi@arm.com</email>
</author>
<published>2016-08-16T15:59:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=04790a5d92b5827082b8159e8a0202354c147a3d'/>
<id>urn:sha1:04790a5d92b5827082b8159e8a0202354c147a3d</id>
<content type='text'>
commit 5331d9cab32ef640b4cd38a43b0858874fbb7168 upstream.

Commit e647b532275b ("ACPI: Add early device probing infrastructure")
introduced code that allows inserting driver specific
struct acpi_probe_entry probe entries into ACPI linker sections
(one per-subsystem, eg irqchip, clocksource) that are then walked
to retrieve the data and function hooks required to probe the
respective kernel components.

Probing for all entries in a section is triggered through
the __acpi_probe_device_table() function, that in turn, according
to the table ID a given probe entry reports parses the table
with the function retrieved from the respective section structures
(ie struct acpi_probe_entry). Owing to the current ACPI table
parsing implementation, the __acpi_probe_device_table() function
has to share global variables with the acpi_match_madt() function, so
in order to guarantee mutual exclusion locking is required
between the two functions.

Current kernel code implements the locking through the acpi_probe_lock
spinlock; this has the side effect of requiring all code called
within the lock (ie struct acpi_probe_entry.probe_{table/subtbl} hooks)
not to sleep.

However, kernel subsystems that make use of the early probing
infrastructure are relying on kernel APIs that may sleep (eg
irq_domain_alloc_fwnode(), among others) in the function calls
pointed at by struct acpi_probe_entry.{probe_table/subtbl} entries
(eg gic_v2_acpi_init()), which is a bug.

Since __acpi_probe_device_table() is called from context
that is allowed to sleep the acpi_probe_lock spinlock can be replaced
with a mutex; this fixes the issue whilst still guaranteeing
mutual exclusion.

Signed-off-by: Lorenzo Pieralisi &lt;lorenzo.pieralisi@arm.com&gt;
Fixes: e647b532275b (ACPI: Add early device probing infrastructure)
Signed-off-by: Rafael J. Wysocki &lt;rafael.j.wysocki@intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>ACPI / drivers: fix typo in ACPI_DECLARE_PROBE_ENTRY macro</title>
<updated>2016-09-07T06:34:55+00:00</updated>
<author>
<name>Lorenzo Pieralisi</name>
<email>lorenzo.pieralisi@arm.com</email>
</author>
<published>2016-08-16T15:59:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=aeeae06593de55a83a90a833a0b394702d7021e5'/>
<id>urn:sha1:aeeae06593de55a83a90a833a0b394702d7021e5</id>
<content type='text'>
commit 3feab13c919f99b0a17d0ca22ae00cf90f5d3fd1 upstream.

When the ACPI_DECLARE_PROBE_ENTRY macro was added in
commit e647b532275b ("ACPI: Add early device probing infrastructure"),
a stub macro adding an unused entry was added for the !CONFIG_ACPI
Kconfig option case to make sure kernel code making use of the
macro did not require to be guarded within CONFIG_ACPI in order to
be compiled.

The stub macro was never used since all kernel code that defines
ACPI_DECLARE_PROBE_ENTRY entries is currently guarded within
CONFIG_ACPI; it contains a typo that should be nonetheless fixed.

Fix the typo in the stub (ie !CONFIG_ACPI) ACPI_DECLARE_PROBE_ENTRY()
macro so that it can actually be used if needed.

Signed-off-by: Lorenzo Pieralisi &lt;lorenzo.pieralisi@arm.com&gt;
Fixes: e647b532275b (ACPI: Add early device probing infrastructure)
Signed-off-by: Rafael J. Wysocki &lt;rafael.j.wysocki@intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

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