~tjaalton/ubuntu/+source/linux/+git/xenial:master

Last commit made on 2017-01-18
Get this branch:
git clone -b master https://git.launchpad.net/~tjaalton/ubuntu/+source/linux/+git/xenial
Only Timo Aaltonen can upload to this branch. If you are Timo Aaltonen please log in for upload directions.

Branch merges

Branch information

Recent commits

b9052cf... by Timo Aaltonen

UBUNTU: SAUCE: i915_bpo: Validate mode against max. link data rate for DP MST

BugLink: http://bugs.launchpad.net/bugs/1657353

Not validating the mode rate against max. link rate results in not pruning
invalid modes. For e.g, a HBR2 5.4 Gbps 2-lane configuration does not
support 4k@60Hz. But, we do not reject this mode.

So, make use of the helpers in intel_dp to validate mode data rate against
max. link data rate of a configuration.

v3: Renamed local variables again for consistency (Manasi)
v2: Renamed mode data rate local variable to be more explanatory.

Signed-off-by: Dhinakaran Pandiyan <email address hidden>
Link: http://patchwork.freedesktop.org/patch<email address hidden>
Signed-off-by: Ville Syrjälä <email address hidden>
(backported from drm-intel-next commit 22a2c8e0457f5d66db0819a49beb8c119d8f7a97)
Signed-off-by: Timo Aaltonen <email address hidden>

9f9a75b... by Timo Aaltonen

UBUNTU: SAUCE: i915_bpo: Fix DP link rate math

BugLink: http://bugs.launchpad.net/bugs/1657353

We store DP link rates as link clock frequencies in kHz, just like all
other clock values. But, DP link rates in the DP Spec. are expressed in
Gbps/lane, which seems to have led to some confusion.

E.g., for HBR2
Max. data rate = 5.4 Gbps/lane x 4 lane x 8/10 x 1/8 = 2160000 kBps
where, 8/10 is for channel encoding and 1/8 is for bit to Byte conversion

Using link clock frequency, like we do
Max. data rate = 540000 kHz * 4 lanes = 2160000 kSymbols/s
Because, each symbol has 8 bit of data, this is 2160000 kBps
and there is no need to account for channel encoding here.

But, currently we do 540000 kHz * 4 lanes * (8/10) = 1728000 kBps

Similarly, while computing the required link bandwidth for a mode,
there is a mysterious 1/10 term.
This should simply be pixel_clock kHz * (bpp/8) to give the final result in
kBps

v2: Changed to DIV_ROUND_UP() and comment changes (Ville)

Signed-off-by: Dhinakaran Pandiyan <email address hidden>
Link: http://patchwork.freedesktop.org/patch<email address hidden>
Signed-off-by: Ville Syrjälä <email address hidden>
(backported from drm-intel-next commit fd81c44eba9ca1e78d0601f37b5d7819df522aa7)
Signed-off-by: Timo Aaltonen <email address hidden>

f2fabda... by Thadeu Lima de Souza Cascardo

UBUNTU: Ubuntu-4.4.0-61.82

Signed-off-by: Thadeu Lima de Souza Cascardo <email address hidden>

9436fbc... by Dan Streetman

UBUNTU: SAUCE: xen: do not re-use pirq number cached in pci device msi msg data

BugLink: http://bugs.launchpad.net/bugs/1656381

Revert the main part of commit:
af42b8d12f8a ("xen: fix MSI setup and teardown for PV on HVM guests")

That commit introduced reading the pci device's msi message data to see
if a pirq was previously configured for the device's msi/msix, and re-use
that pirq. At the time, that was the correct behavior. However, a
later change to Qemu caused it to call into the Xen hypervisor to unmap
all pirqs for a pci device, when the pci device disables its MSI/MSIX
vectors; specifically the Qemu commit:
c976437c7dba9c7444fb41df45468968aaa326ad
("qemu-xen: free all the pirqs for msi/msix when driver unload")

Once Qemu added this pirq unmapping, it was no longer correct for the
kernel to re-use the pirq number cached in the pci device msi message
data. All Qemu releases since 2.1.0 contain the patch that unmaps the
pirqs when the pci device disables its MSI/MSIX vectors.

This bug is causing failures to initialize multiple NVMe controllers
under Xen, because the NVMe driver sets up a single MSIX vector for
each controller (concurrently), and then after using that to talk to
the controller for some configuration data, it disables the single MSIX
vector and re-configures all the MSIX vectors it needs. So the MSIX
setup code tries to re-use the cached pirq from the first vector
for each controller, but the hypervisor has already given away that
pirq to another controller, and its initialization fails.

This is discussed in more detail at:
https://lists.xen.org/archives/html/xen-devel/2017-01/msg00447.html

Fixes: af42b8d12f8a ("xen: fix MSI setup and teardown for PV on HVM guests")
Signed-off-by: Dan Streetman <email address hidden>
Acked-by: Tim Gardner <email address hidden>
Acked-by: Thadeu Lima de Souza Cascardo <email address hidden>
Signed-off-by: Thadeu Lima de Souza Cascardo <email address hidden>

bc0b86b... by Dan Streetman

nvme: revert NVMe: only setup MSIX once

BugLink: http://bugs.launchpad.net/bugs/1626894

Revert the following commits from Xenial:
8fb7c1f39c99 ("UBUNTU: (fix) nvme: only require 1 interrupt vector, not 2+")
96fce9e4025b ("UBUNTU: SAUCE: (no-up) NVMe: only setup MSIX once")

These commits were added to work around a problem that is actually a bug
in the Xen kernel code, which prevented multiple NVMe controllers from
initializing in a Xen guest. However, they appear to be causing NVMe
controller initialization failures in some (but not all) non-Xen
environments. Since they are not needed once the actual Xen bug is
fixed, they should be reverted so the non-Xen NVMe initialization works
again, and the real Xen bugfix applied.

Signed-off-by: Dan Streetman <email address hidden>
Acked-by: Tim Gardner <email address hidden>
Acked-by: Thadeu Lima de Souza Cascardo <email address hidden>
Signed-off-by: Thadeu Lima de Souza Cascardo <email address hidden>

4bac0fc... by Thadeu Lima de Souza Cascardo

UBUNTU: Start new release

Ignore: yes
Signed-off-by: Thadeu Lima de Souza Cascardo <email address hidden>

4583c20... by John Donnelly

UBUNTU: Ubuntu-4.4.0-60.81

Signed-off-by: John Donnelly <email address hidden>

fe22fa3... by Thomas Huth <email address hidden>

KVM: PPC: Book3S PR: Fix illegal opcode emulation

BugLink: http://bugs.launchpad.net/bugs/1634129

If kvmppc_handle_exit_pr() calls kvmppc_emulate_instruction() to emulate
one instruction (in the BOOK3S_INTERRUPT_H_EMUL_ASSIST case), it calls
kvmppc_core_queue_program() afterwards if kvmppc_emulate_instruction()
returned EMULATE_FAIL, so the guest gets an program interrupt for the
illegal opcode.
However, the kvmppc_emulate_instruction() also tried to inject a
program exception for this already, so the program interrupt gets
injected twice and the return address in srr0 gets destroyed.
All other callers of kvmppc_emulate_instruction() are also injecting
a program interrupt, and since the callers have the right knowledge
about the srr1 flags that should be used, it is the function
kvmppc_emulate_instruction() that should _not_ inject program
interrupts, so remove the kvmppc_core_queue_program() here.

This fixes the issue discovered by Laurent Vivier with kvm-unit-tests
where the logs are filled with these messages when the test tries
to execute an illegal instruction:

     Couldn't emulate instruction 0x00000000 (op 0 xop 0)
     kvmppc_handle_exit_pr: emulation at 700 failed (00000000)

Signed-off-by: Thomas Huth <email address hidden>
Reviewed-by: Alexander Graf <email address hidden>
Tested-by: Laurent Vivier <email address hidden>
Signed-off-by: Paul Mackerras <email address hidden>
(cherry picked from commit 708e75a3ee750dce1072134e630d66c4e6eaf63c)
Signed-off-by: Tim Gardner <email address hidden>
Acked-by: Colin Ian King <email address hidden>
Acked-by: Stefan Bader <email address hidden>
Signed-off-by: Luis Henriques <email address hidden>

528506b... by Sukadev Bhattiprolu <email address hidden>

powerpc/perf/24x7: Eliminate domain suffix in event names

BugLink: http://bugs.launchpad.net/bugs/1560482

The Physical Core events of the 24x7 PMU can be monitored across various
domains (physical core, vcpu home core, vcpu home node etc). For each of
these core events, we currently create multiple events in sysfs, one for
each domain the event can be monitored in. These events are distinguished
by their suffixes like __PHYS_CORE, __VCPU_HOME_CORE etc.

Rather than creating multiple such entries, we could let the user specify
make 'domain' index a required parameter and let the user specify a value
for it (like they currently specify the core index).

 $ cat /sys/bus/event_source/devices/hv_24x7/events/HPM_CCYC
 domain=?,offset=0x98,core=?,lpar=0x0

 $ perf stat -C 0 -e hv_24x7/HPM_CCYC,domain=2,core=1/ true

(the 'domain=?' and 'core=?' in sysfs tell perf tool to enforce them as
required parameters).

This simplifies the interface and allows users to identify events by the
name specified in the catalog (User can determine the domain index by
referring to '/sys/bus/event_source/devices/hv_24x7/interface/domains').

Eliminating the event suffix eliminates several functions and simplifies
code.

Note that Physical Chip events can only be monitored in the chip domain
so those events have the domain set to 1 (rather than =?) and users don't
need to specify the domain index for the Chip events.

 $ cat /sys/bus/event_source/devices/hv_24x7/events/PM_XLINK_CYCLES
 domain=1,offset=0x230,chip=?,lpar=0x0

 $ perf stat -C 0 -e hv_24x7/PM_XLINK_CYCLES,chip=1/ true

Signed-off-by: Sukadev Bhattiprolu <email address hidden>
Signed-off-by: Michael Ellerman <email address hidden>
(cherry picked from commit 8f69dc701aac170421117adf7e04d8ec7031a05f)
Signed-off-by: Tim Gardner <email address hidden>
Acked-by: Seth Forshee <email address hidden>
Acked-by: Stefan Bader <email address hidden>
Signed-off-by: Luis Henriques <email address hidden>

162729e... by Sukadev Bhattiprolu <email address hidden>

powerpc/perf/hv-24x7: Display domain indices in sysfs

BugLink: http://bugs.launchpad.net/bugs/1560482

To help users determine domains, display the domain indices used by the
kernel in sysfs.

 $ cat /sys/bus/event_source/devices/hv_24x7/interface/domains
 1: Physical Chip
 2: Physical Core
 3: VCPU Home Core
 4: VCPU Home Chip
 5: VCPU Home Node
 6: VCPU Remote Node

Signed-off-by: Sukadev Bhattiprolu <email address hidden>
Signed-off-by: Michael Ellerman <email address hidden>
(cherry picked from commit d34171e88aeed4a99c00c7f2af3d5c553e7a4972)
Signed-off-by: Tim Gardner <email address hidden>
Acked-by: Seth Forshee <email address hidden>
Acked-by: Stefan Bader <email address hidden>
Signed-off-by: Luis Henriques <email address hidden>