Attempting to use the request_key() function to add a key into a revoked
keyring was causing a resource leak in the kernel error path. Keys which were
allocated and then failed became stuck in memory and were impossible for the
garbage collector to remove. With this update, the reference count on failed
keys correctly reaches 0 in this situation, allowing the garbage collector to
remove them. (BZ#1288095)
A bug in the ipr driver on IBM Power Systems (ppc64) could result in backwards
memory buffer indexing and cause a kernel crash when running the Hardware Test
Exerciser (HTX) test suite. With this update, ipr memory buffer indexing uses a
bit mask operation instead of modulo, causing low bits to be masked off so that
backwards indexing is no longer possible. (BZ#1280211)
Resetting an ixgbe or vmxnet3 adapter while sending a message over netconsole
or netpoll at the same time could previously cause a kernel crash. This update
adds mutual exclusion between the core adapter reset path and the netpoll
transmit path, and the crash no longer occurs. (BZ#1295370)
When removing a directory while a reference was held to that directory by a
reference to a negative child dentry, the directory dentry was previously not
killed. In addition, once the negative child dentry was killed, unlinked and
unused dentry was present in the cache. As a consequence, deadlock could be
caused by forcing the dentry eviction while the file system in question was
frozen. With this update, all unused dentries are unhashed and evicted just
after a successful directory removal, which avoids the deadlock, and the system
no longer hangs in the aforementioned scenario. (BZ#1282621)
Previously, an unusual forking pattern could cause the anon_vma_chain and
anon_vma slab memory to grow infinitely even though the number of processes
involved stayed low. As a consequence, a kernel panic occurred. The provided
patch adds a heuristic which reuses existing anon_vma instead of forking a new
one and adds the anon_vma->degree counter which makes sure the count of
anon_vmas is not bigger than twice the count of vmas. As a result, the kernel
panic no longer occurs in this situation. (BZ#1285693)
A race condition was found in hash table invalidation code between inode
invalidation and inode clearing code in the GFS2 file system. In some
circumstances, two processes could attempt to free the same memory, resulting in
a kernel panic. This update adds a "spin_lock" to the hash table invalidation
code allowing only a single process to attempt to free a specific memory page,
which prevents the race condition from occurring. (BZ#1288093)
Due to a timer expiry issue, the scheduler tick previously stopped for too
long when the ksoftirqd daemon for hrtimer was blocked by a running process.
This update adds the force_hrtimer_reprogram kernel parameter. If
"force_hrtimer_reprogram=1" is used on the kernel command line, the
reprogramming of all expired timers is forced, which prevents this bug.
(BZ#1292082)
The kernel was incorrectly assigning multicast groups for the nl80211
protocol, causing problems with nl80211 wireless drivers. For example,
preventing hostapd from starting and initializing wireless devices in Access
Point mode. This update fixes multicast group assignments for nl80211 and allows
wireless devices to be managed correctly. (BZ#1259870)
Large Receive Offload (LRO) flag disabling was not being propagated downwards
from above devices in vlan and bond hierarchy, breaking the flow of traffic.
This problem has been fixed and LRO flags now propagate correctly. (BZ#1259008)