Commit graph

592669 commits

Author SHA1 Message Date
Linux Build Service Account
2b487d2603 Merge "ath10k: wait for peer delete resp after every peer delete" 2017-07-21 20:15:27 -07:00
Linux Build Service Account
61f5287f13 Merge "ath10k: skip vdev down command before vdev restart for wcn3990" 2017-07-21 20:15:26 -07:00
Linux Build Service Account
2c1e981c40 Merge "msm: thermal: fix return value check for scm_is_secure_device() API" 2017-07-21 20:15:25 -07:00
Linux Build Service Account
b7cd152c17 Merge "mmc: sdhci: Enable CDR for cmdq mode" 2017-07-21 20:15:24 -07:00
Linux Build Service Account
7d24b9b417 Merge "ARM: dts: msm: Add remote debugger device configuration for cdsp" 2017-07-21 20:15:23 -07:00
Linux Build Service Account
afcd879a6c Merge "diag: Add NULL pointer checks" 2017-07-21 20:15:22 -07:00
Linux Build Service Account
1ee0540f23 Merge "coresight-remote-etm: Removes lock in remote_etm_rcv_msg()" 2017-07-21 20:15:21 -07:00
Linux Build Service Account
e6ef63a8a8 Merge "msm: ais: sensor: actuator: add conditional check for ioctl" 2017-07-21 20:15:20 -07:00
Linux Build Service Account
150e8fab68 Merge "msm: ADSPRPC: Add exec permission for hyp_assign_phys" 2017-07-21 20:15:19 -07:00
Yuanyuan Liu
2e16671480 icnss: Consolidate logging message
Currently the code makes liberal use of macros that print a log message
(with pr_err or pr_debug) and then passes the same string on to the
IPC logging mechanism. The problem is that it doesn't actually end up
being the same string in the binary. Using pr_err or one of its friends
appends the KERN_* code to the front of the string with the pre-processor
and the IPC logger just uses the passed in string. Every string used by
the macros ends up appearing twice in the binary, once with KERN_*
prepended and the other not.

This change fix this duplication issue by appending KERN_* to the front
of the IPC logger.

Change-Id: Ibfdf9edf6e243d13cacf1a45838a88e287a684be
Signed-off-by: Yuanyuan Liu <yuanliu@codeaurora.org>
2017-07-21 15:06:46 -07:00
Linux Build Service Account
44f9f08a04 Merge "ARM: dts: msm: Update bootargs with LPM disabled for msm8996pro" 2017-07-21 11:08:30 -07:00
Linux Build Service Account
f1f963ba1f Merge "ARM: dts: msm: Add support for MSM8996pro UFS based board" 2017-07-21 11:08:29 -07:00
Linux Build Service Account
86fe8aca46 Merge "power: smb-lib: Restart charging from soft JEITA" 2017-07-21 11:08:28 -07:00
Linux Build Service Account
6d6eae7214 Merge "net/packet: fix overflow in check for tp_reserve" 2017-07-21 11:08:26 -07:00
Linux Build Service Account
5b779ed898 Merge "msm: camera: Proper use of snprintf to avoid information leak" 2017-07-21 11:08:25 -07:00
Linux Build Service Account
be95399835 Merge "diag: mhi: Fix error handling for DCI channel failure" 2017-07-21 11:08:23 -07:00
Linux Build Service Account
e3ec219ea1 Merge "cnss2: Deinit MHI before device power on during SSR" 2017-07-21 11:08:22 -07:00
Linux Build Service Account
2221afb10d Merge "USB: f_accessory: Check for length before updating accessory string" 2017-07-21 11:08:21 -07:00
Linux Build Service Account
5d3a6dd49d Merge "drm/msm: add support for HDR playback control sequence" 2017-07-21 11:08:21 -07:00
Clarence Ip
7477f5db6e drm/msm/sde: disable vblank ref power on crtc disable
Update vblank reference counts via the exposed sde_crtc_vblank
function, rather than attempting to zero it on the side during
CRTC disable operations. This allows the power voting to be
updated correctly based on the vblank reference count value.

CRs-Fixed: 2037677
Change-Id: I7026a1b239503a2b1d97ad7bb61fbc0a4a38d7ea
Signed-off-by: Clarence Ip <cip@codeaurora.org>
2017-07-21 11:26:54 -04:00
Clarence Ip
e67107812d drm/msm/sde: output black frame during resume operation
This patch provides a module parameter to control whether each
plane outputs the previously configured content or a black frame
during the resume operation. The default is set to output a
black frame.

CRs-Fixed: 2019307
Change-Id: I48c1a8edfa1e85252a070bda51228ef67dea041c
Signed-off-by: Clarence Ip <cip@codeaurora.org>
2017-07-21 11:26:47 -04:00
Clarence Ip
081178b8fd drm/msm/sde: dispatch suspend/resume notification to cp
This change enables the appropriate callbacks to the color
processing component on suspend/resume transitions.

CRs-Fixed: 2019307
Change-Id: I7b8c9eb2b32da42e36d32e9d88e74e0c0c7b1ecb
Signed-off-by: Clarence Ip <cip@codeaurora.org>
2017-07-21 10:59:20 -04:00
Clarence Ip
864edc591c drm/msm/sde: move power resource handling for vblank to crtcs
Move the power resource request/release from the sde kms layer
into the CRTCs so that proper accounting for suspend/resume
operations may be done. A single power resource request is
made as long while the CRTC's vblank request ref count is not
zero and the driver is not in a suspended state.

CRs-Fixed: 2019307
Change-Id: I2d47567ec3dded72faed8bd5441d8d4653d5ef25
Signed-off-by: Clarence Ip <cip@codeaurora.org>
2017-07-21 10:51:14 -04:00
Clarence Ip
4fc53f0d46 drm/msm/sde: reset drm state on suspend/resume
Explicitly disable connector DPMS and CRTC active states on
system suspend, and restore the previous state during a
system resume. This allows the underlying drivers to trigger
a DPMS callback for handling any panel related power disables
while still preserving the DRM atomic state.

CRs-Fixed: 2019307
Change-Id: Ib9933e4bc8b43c64def777b081d4315e5dbb7365
Signed-off-by: Clarence Ip <cip@codeaurora.org>
2017-07-21 10:50:13 -04:00
Clarence Ip
1331c9a856 drm/msm/sde: allow forcing of kernel scaler calculation
This patch adds a debugfs entry to the planes to force the driver
to ignore any custom scaler configuration from the user space.

CRs-Fixed: 2019305
Change-Id: I98596a1aaa0629ca1bfe81ab5c01a0d7854859e3
Signed-off-by: Clarence Ip <cip@codeaurora.org>
2017-07-21 10:50:12 -04:00
Clarence Ip
e9e11292d7 drm/msm/sde: add null checks to scaler3 lut setup
Plane state is set to NULL during color fill operations.
This patch adds checks to gracefully handle NULL plane
state during the scaler3 setup path.

CRs-Fixed: 2019301
Change-Id: I3ac5bd8f26e68afe559bf7c815da904392d3de13
Signed-off-by: Clarence Ip <cip@codeaurora.org>
2017-07-21 10:50:11 -04:00
Tharun Kumar Merugu
bcd8434f47 msm: ADSPRPC: Handle SMD event signal
Handle multiple sessions properly for given channel.

Change-Id: I3061fd883794da0465bfdae2b1c19d425ede7470
Acked-by: Krishnaiah Tadakamalla <ktadakam@qti.qualcomm.com>
Signed-off-by: Tharun Kumar Merugu <mtharu@codeaurora.org>
2017-07-21 07:17:52 -07:00
Neeraj Soni
c1ab2e8a1a crypto: ice: Remove redundant checks
Check is implemented in required function as part of
new implementation.

Change-Id: I346cd27cb254abe7d9706f01a9b463750614245e
Signed-off-by: Neeraj Soni <neersoni@codeaurora.org>
2017-07-21 19:19:53 +05:30
Ashutosh Kumar
15eb4216a4 ath10k: skip vdev down command before vdev restart for wcn3990
Vdev restart command triggers a vdev down and vdev stop in the
firmware. We do not need to send vdev down before sending vdev
restart to the firmware.

Skip vdev down command before we send the vdev restart command
for wcn3990 in the case of change in the channel context.

CRs-Fixed: 2079703
Change-Id: Idb611ec9ae8d40c7f7c3fe6efe853bf4c60d3123
Signed-off-by: Ashutosh Kumar <askuma@codeaurora.org>
2017-07-21 19:16:27 +05:30
Manaf Meethalavalappu Pallikunhi
a72f768c6b msm: thermal: fix return value check for scm_is_secure_device() API
KTM ignores software secure watchdog bite if it is a secure device
since this call support is not there in secure device. But API
scm_is_secure_device() returns false if it is secure device,
true otherwise. But KTM return value check is wrong and leads to
no secure watchdog bite call from KTM for all targets.
Fix return value check properly in KTM to resolve this issue.

Change-Id: I1612fee3f57f6c2d27c4329abc2c563b7b1d8102
Signed-off-by: Manaf Meethalavalappu Pallikunhi <manafm@codeaurora.org>
2017-07-21 17:21:53 +05:30
Rahul Sharma
4151bedcbe msm: ais: sensor: actuator: add conditional check for ioctl
Add conditional check when sending VIDIOC_MSM_ACTUATOR_CFG32.

Change-Id: I8f47823a9f932fe9f3fa96560f16d7da755a781f
CRs-Fixed: 2060371
Signed-off-by: Rahul Sharma <sharah@codeaurora.org>
2017-07-21 02:30:07 -07:00
Mukesh Ojha
560dd41dff coresight-remote-etm: Removes lock in remote_etm_rcv_msg()
'commit 9021973bac ("coresight-remote-etm: Adds missing lock to avoid
race condition")' adds lock inside remote_etm_rcv_msg() which is not
needed as we are waiting inside it for a response of request made
remote_etm_enable => qmi_send_req_wait() which already holds lock
'drvdata->mutex'.

So, adding 'drvdata->mutex' inside remote_etm_rcv_msg() adds wait for
the lock and due to which not able to ack the response got which results
in timeout error qmi_send_req_wait().

This patch fixes the above mentioned issue by removing the lock added in
above mentioned commit.

Change-Id: Ie47607722ff170e012d598a2347b1c0ec6913cdf
Signed-off-by: Mukesh Ojha <mojha@codeaurora.org>
2017-07-21 13:49:34 +05:30
Greg Kroah-Hartman
59ff2e15be This is the 4.4.78 stable release
-----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEZH8oZUiU471FcZm+ONu9yGCSaT4FAllxlOsACgkQONu9yGCS
 aT4naw//VrWIuIf523IP6egcS+iprNM1lt8HZIzTQ0b2x0qv82UFA9FSs3e97dbG
 LJAUEmHW+oBbm6AekAUrNFF62qaMM5HYxVgGYeiniA1dRvLCDG/OxzxPc0hv6Kmm
 VsbZBlPQEj2B5tqUOkpvQNcqbKpIVglBsK4tjeHE/mRziUkIoPXWKS6Tt7VKGtBa
 gIGY7VASyKhPtxGCdbKzHsO/IGi3cmpwAyhqQDRBR/5Dxy3p9xlQ4gTpobeL+x8z
 A7WHqVNbgfdz21LBii5xE8+GUwiRjlYhxeFJTjhM6wo2/XCtw1FJgc7EMmsbVtbZ
 xYu1/tkYaZGoxOQ7sH5jNgVjE8IcyVimDa5eJ7p7fbh3AzsyXzAJIRc8cS7cL40F
 jLDWrYDnm5t7ziITrAf0uoMmRZLHqS2Bv5sqaoCxR3D51r6LVaNdavD6hYN1CLRA
 fjlDvnvwxbLPI4YPr7PZNu4oSJiawKx9jEBOTFSYu9L1XLvdvdcVU6ULAdpShnLn
 80a+YJmYsNg54im7sxFUw6z87AScznzirIpXEJoUO+Hs0SN9Rq/BQx8cKvVeaMEI
 z53c4Hci45Go/ozZVqCTxGbkQ6tKWIKBSo6kl3xchwms4lmijpWuwbAkDUzECNvv
 0RgyQvNx4d2cRJ8hIVcdVFzp+h+kgNqVQQ2nDld7/1QSZHLPhFo=
 =vrgw
 -----END PGP SIGNATURE-----

Merge 4.4.78 into android-4.4

Changes in 4.4.78
	net_sched: fix error recovery at qdisc creation
	net: sched: Fix one possible panic when no destroy callback
	net/phy: micrel: configure intterupts after autoneg workaround
	ipv6: avoid unregistering inet6_dev for loopback
	net: dp83640: Avoid NULL pointer dereference.
	tcp: reset sk_rx_dst in tcp_disconnect()
	net: prevent sign extension in dev_get_stats()
	bpf: prevent leaking pointer via xadd on unpriviledged
	net: handle NAPI_GRO_FREE_STOLEN_HEAD case also in napi_frags_finish()
	ipv6: dad: don't remove dynamic addresses if link is down
	net: ipv6: Compare lwstate in detecting duplicate nexthops
	vrf: fix bug_on triggered by rx when destroying a vrf
	rds: tcp: use sock_create_lite() to create the accept socket
	brcmfmac: fix possible buffer overflow in brcmf_cfg80211_mgmt_tx()
	cfg80211: Define nla_policy for NL80211_ATTR_LOCAL_MESH_POWER_MODE
	cfg80211: Validate frequencies nested in NL80211_ATTR_SCAN_FREQUENCIES
	cfg80211: Check if PMKID attribute is of expected size
	irqchip/gic-v3: Fix out-of-bound access in gic_set_affinity
	parisc: Report SIGSEGV instead of SIGBUS when running out of stack
	parisc: use compat_sys_keyctl()
	parisc: DMA API: return error instead of BUG_ON for dma ops on non dma devs
	parisc/mm: Ensure IRQs are off in switch_mm()
	tools/lib/lockdep: Reduce MAX_LOCK_DEPTH to avoid overflowing lock_chain/: Depth
	kernel/extable.c: mark core_kernel_text notrace
	mm/list_lru.c: fix list_lru_count_node() to be race free
	fs/dcache.c: fix spin lockup issue on nlru->lock
	checkpatch: silence perl 5.26.0 unescaped left brace warnings
	binfmt_elf: use ELF_ET_DYN_BASE only for PIE
	arm: move ELF_ET_DYN_BASE to 4MB
	arm64: move ELF_ET_DYN_BASE to 4GB / 4MB
	powerpc: move ELF_ET_DYN_BASE to 4GB / 4MB
	s390: reduce ELF_ET_DYN_BASE
	exec: Limit arg stack to at most 75% of _STK_LIM
	vt: fix unchecked __put_user() in tioclinux ioctls
	mnt: In umount propagation reparent in a separate pass
	mnt: In propgate_umount handle visiting mounts in any order
	mnt: Make propagate_umount less slow for overlapping mount propagation trees
	selftests/capabilities: Fix the test_execve test
	tpm: Get rid of chip->pdev
	tpm: Provide strong locking for device removal
	Add "shutdown" to "struct class".
	tpm: Issue a TPM2_Shutdown for TPM2 devices.
	mm: fix overflow check in expand_upwards()
	crypto: talitos - Extend max key length for SHA384/512-HMAC and AEAD
	crypto: atmel - only treat EBUSY as transient if backlog
	crypto: sha1-ssse3 - Disable avx2
	crypto: caam - fix signals handling
	sched/topology: Fix overlapping sched_group_mask
	sched/topology: Optimize build_group_mask()
	PM / wakeirq: Convert to SRCU
	PM / QoS: return -EINVAL for bogus strings
	tracing: Use SOFTIRQ_OFFSET for softirq dectection for more accurate results
	KVM: x86: disable MPX if host did not enable MPX XSAVE features
	kvm: vmx: Do not disable intercepts for BNDCFGS
	kvm: x86: Guest BNDCFGS requires guest MPX support
	kvm: vmx: Check value written to IA32_BNDCFGS
	kvm: vmx: allow host to access guest MSR_IA32_BNDCFGS
	Linux 4.4.78

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2017-07-21 09:14:57 +02:00
Tharun Kumar Merugu
0c74826be7 ARM: dts: msm: Add remote debugger device configuration for cdsp
Adding remote debugger device configuration. The Remote Debugger driver
allows a debugger running on a host PC to communicate with a remote
stub running on peripheral subsystems.

Change-Id: I4aa40846efbf11739d81a9fbe22df811903d8eee
Acked-by: Chenna Kesava Raju <chennak@qti.qualcomm.com>
Signed-off-by: Tharun Kumar Merugu <mtharu@codeaurora.org>
2017-07-20 23:56:44 -07:00
Rakesh Pillai
f056b1e528 ath10k: wait for peer delete resp after every peer delete
Peer create fails if the same peer has not been
properly deleted earlier.

Peer delete response indicates the successful deletion
of a peer. Wait for peer delete resp after every peer
delete cmd.

CRs-Fixed: 2079668
Change-Id: I48d6787a42f79d3ce1225c885ca9fa159ef6df77
Signed-off-by: Rakesh Pillai <pillair@codeaurora.org>
2017-07-20 23:34:50 -07:00
Greg Kroah-Hartman
ece78cd779 Linux 4.4.78 2017-07-21 07:45:10 +02:00
Haozhong Zhang
3ed43caedf kvm: vmx: allow host to access guest MSR_IA32_BNDCFGS
commit 691bd4340bef49cf7e5855d06cf24444b5bf2d85 upstream.

It's easier for host applications, such as QEMU, if they can always
access guest MSR_IA32_BNDCFGS in VMCS, even though MPX is disabled in
guest cpuid.

Signed-off-by: Haozhong Zhang <haozhong.zhang@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-07-21 07:45:00 +02:00
Jim Mattson
6ffa92ffae kvm: vmx: Check value written to IA32_BNDCFGS
commit 4531662d1abf6c1f0e5c2b86ddb60e61509786c8 upstream.

Bits 11:2 must be zero and the linear addess in bits 63:12 must be
canonical. Otherwise, WRMSR(BNDCFGS) should raise #GP.

Fixes: 0dd376e709 ("KVM: x86: add MSR_IA32_BNDCFGS to msrs_to_save")
Signed-off-by: Jim Mattson <jmattson@google.com>
Signed-off-by: Radim Krčmář <rkrcmar@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-07-21 07:44:59 +02:00
Jim Mattson
a40f0ccd4f kvm: x86: Guest BNDCFGS requires guest MPX support
commit 4439af9f911ae0243ffe4e2dfc12bace49605d8b upstream.

The BNDCFGS MSR should only be exposed to the guest if the guest
supports MPX. (cf. the TSC_AUX MSR and RDTSCP.)

Fixes: 0dd376e709 ("KVM: x86: add MSR_IA32_BNDCFGS to msrs_to_save")
Change-Id: I3ad7c01bda616715137ceac878f3fa7e66b6b387
Signed-off-by: Jim Mattson <jmattson@google.com>
Signed-off-by: Radim Krčmář <rkrcmar@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-07-21 07:44:59 +02:00
Jim Mattson
be6f33a61f kvm: vmx: Do not disable intercepts for BNDCFGS
commit a8b6fda38f80e75afa3b125c9e7f2550b579454b upstream.

The MSR permission bitmaps are shared by all VMs. However, some VMs
may not be configured to support MPX, even when the host does. If the
host supports VMX and the guest does not, we should intercept accesses
to the BNDCFGS MSR, so that we can synthesize a #GP
fault. Furthermore, if the host does not support MPX and the
"ignore_msrs" kvm kernel parameter is set, then we should intercept
accesses to the BNDCFGS MSR, so that we can skip over the rdmsr/wrmsr
without raising a #GP fault.

Fixes: da8999d318 ("KVM: x86: Intel MPX vmx and msr handle")
Signed-off-by: Jim Mattson <jmattson@google.com>
Signed-off-by: Radim Krčmář <rkrcmar@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-07-21 07:44:59 +02:00
Paolo Bonzini
c6f3576ed0 KVM: x86: disable MPX if host did not enable MPX XSAVE features
commit a87036add09283e6c4f4103a15c596c67b86ab86 upstream.

When eager FPU is disabled, KVM will still see the MPX bit in CPUID and
presumably the MPX vmentry and vmexit controls.  However, it will not
be able to expose the MPX XSAVE features to the guest, because the guest's
accessible XSAVE features are always a subset of host_xcr0.

In this case, we should disable the MPX CPUID bit, the BNDCFGS MSR,
and the MPX vmentry and vmexit controls for nested virtualization.
It is then unnecessary to enable guest eager FPU if the guest has the
MPX CPUID bit set.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-07-21 07:44:59 +02:00
Pavankumar Kondeti
999b96b4de tracing: Use SOFTIRQ_OFFSET for softirq dectection for more accurate results
commit c59f29cb144a6a0dfac16ede9dc8eafc02dc56ca upstream.

The 's' flag is supposed to indicate that a softirq is running. This
can be detected by testing the preempt_count with SOFTIRQ_OFFSET.

The current code tests the preempt_count with SOFTIRQ_MASK, which
would be true even when softirqs are disabled but not serving a
softirq.

Link: http://lkml.kernel.org/r/1481300417-3564-1-git-send-email-pkondeti@codeaurora.org

Signed-off-by: Pavankumar Kondeti <pkondeti@codeaurora.org>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-07-21 07:44:59 +02:00
Dan Carpenter
c17f651246 PM / QoS: return -EINVAL for bogus strings
commit 2ca30331c156ca9e97643ad05dd8930b8fe78b01 upstream.

In the current code, if the user accidentally writes a bogus command to
this sysfs file, then we set the latency tolerance to an uninitialized
variable.

Fixes: 2d984ad132 (PM / QoS: Introcuce latency tolerance device PM QoS type)
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Acked-by: Pavel Machek <pavel@ucw.cz>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-07-21 07:44:59 +02:00
Thomas Gleixner
275d4be9d3 PM / wakeirq: Convert to SRCU
commit ea0212f40c6bc0594c8eff79266759e3ecd4bacc upstream.

The wakeirq infrastructure uses RCU to protect the list of wakeirqs. That
breaks the irq bus locking infrastructure, which is allows sleeping
functions to be called so interrupt controllers behind slow busses,
e.g. i2c, can be handled.

The wakeirq functions hold rcu_read_lock and call into irq functions, which
in case of interrupts using the irq bus locking will trigger a
might_sleep() splat.

Convert the wakeirq infrastructure to Sleepable RCU and unbreak it.

Fixes: 4990d4fe32 (PM / Wakeirq: Add automated device wake IRQ handling)
Reported-by: Brian Norris <briannorris@chromium.org>
Suggested-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Tested-by: Tony Lindgren <tony@atomide.com>
Tested-by: Brian Norris <briannorris@chromium.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-07-21 07:44:59 +02:00
Lauro Ramos Venancio
988067ec96 sched/topology: Optimize build_group_mask()
commit f32d782e31bf079f600dcec126ed117b0577e85c upstream.

The group mask is always used in intersection with the group CPUs. So,
when building the group mask, we don't have to care about CPUs that are
not part of the group.

Signed-off-by: Lauro Ramos Venancio <lvenanci@redhat.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: lwang@redhat.com
Cc: riel@redhat.com
Link: http://lkml.kernel.org/r/1492717903-5195-2-git-send-email-lvenanci@redhat.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-07-21 07:44:59 +02:00
Peter Zijlstra
5c34f49776 sched/topology: Fix overlapping sched_group_mask
commit 73bb059f9b8a00c5e1bf2f7ca83138c05d05e600 upstream.

The point of sched_group_mask is to select those CPUs from
sched_group_cpus that can actually arrive at this balance domain.

The current code gets it wrong, as can be readily demonstrated with a
topology like:

  node   0   1   2   3
    0:  10  20  30  20
    1:  20  10  20  30
    2:  30  20  10  20
    3:  20  30  20  10

Where (for example) domain 1 on CPU1 ends up with a mask that includes
CPU0:

  [] CPU1 attaching sched-domain:
  []  domain 0: span 0-2 level NUMA
  []   groups: 1 (mask: 1), 2, 0
  []   domain 1: span 0-3 level NUMA
  []    groups: 0-2 (mask: 0-2) (cpu_capacity: 3072), 0,2-3 (cpu_capacity: 3072)

This causes sched_balance_cpu() to compute the wrong CPU and
consequently should_we_balance() will terminate early resulting in
missed load-balance opportunities.

The fixed topology looks like:

  [] CPU1 attaching sched-domain:
  []  domain 0: span 0-2 level NUMA
  []   groups: 1 (mask: 1), 2, 0
  []   domain 1: span 0-3 level NUMA
  []    groups: 0-2 (mask: 1) (cpu_capacity: 3072), 0,2-3 (cpu_capacity: 3072)

(note: this relies on OVERLAP domains to always have children, this is
 true because the regular topology domains are still here -- this is
 before degenerate trimming)

Debugged-by: Lauro Ramos Venancio <lvenanci@redhat.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: linux-kernel@vger.kernel.org
Fixes: e3589f6c81 ("sched: Allow for overlapping sched_domain spans")
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-07-21 07:44:59 +02:00
Horia Geantă
4e3c118852 crypto: caam - fix signals handling
commit 7459e1d25ffefa2b1be799477fcc1f6c62f6cec7 upstream.

Driver does not properly handle the case when signals interrupt
wait_for_completion_interruptible():
-it does not check for return value
-completion structure is allocated on stack; in case a signal interrupts
the sleep, it will go out of scope, causing the worker thread
(caam_jr_dequeue) to fail when it accesses it

wait_for_completion_interruptible() is replaced with uninterruptable
wait_for_completion().
We choose to block all signals while waiting for I/O (device executing
the split key generation job descriptor) since the alternative - in
order to have a deterministic device state - would be to flush the job
ring (aborting *all* in-progress jobs).

Fixes: 045e36780f ("crypto: caam - ahash hmac support")
Fixes: 4c1ec1f930 ("crypto: caam - refactor key_gen, sg")
Signed-off-by: Horia Geantă <horia.geanta@nxp.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-07-21 07:44:59 +02:00
Herbert Xu
f1bf5d83a9 crypto: sha1-ssse3 - Disable avx2
commit b82ce24426a4071da9529d726057e4e642948667 upstream.

It has been reported that sha1-avx2 can cause page faults by reading
beyond the end of the input.  This patch disables it until it can be
fixed.

Fixes: 7c1da8d0d0 ("crypto: sha - SHA1 transform x86_64 AVX2")
Reported-by: Jan Stancek <jstancek@redhat.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-07-21 07:44:58 +02:00
Gilad Ben-Yossef
fc43f09350 crypto: atmel - only treat EBUSY as transient if backlog
commit 1606043f214f912a52195293614935811a6e3e53 upstream.

The Atmel SHA driver was treating -EBUSY as indication of queueing
to backlog without checking that backlog is enabled for the request.

Fix it by checking request flags.

Signed-off-by: Gilad Ben-Yossef <gilad@benyossef.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-07-21 07:44:58 +02:00
Martin Hicks
d05fbdbe6d crypto: talitos - Extend max key length for SHA384/512-HMAC and AEAD
commit 03d2c5114c95797c0aa7d9f463348b171a274fd4 upstream.

An updated patch that also handles the additional key length requirements
for the AEAD algorithms.

The max keysize is not 96.  For SHA384/512 it's 128, and for the AEAD
algorithms it's longer still.  Extend the max keysize for the
AEAD size for AES256 + HMAC(SHA512).

Fixes: 357fb60502 ("crypto: talitos - add sha224, sha384 and sha512 to existing AEAD algorithms")
Signed-off-by: Martin Hicks <mort@bork.org>
Acked-by: Horia Geantă <horia.geanta@nxp.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-07-21 07:44:58 +02:00