]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.2-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 13 Feb 2012 19:59:05 +0000 (11:59 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 13 Feb 2012 19:59:05 +0000 (11:59 -0800)
added patches:
drm-i915-force-explicit-bpp-selection-for-intel_dp_link_required.patch
drm-i915-no-lvds-quirk-for-aopen-mp45.patch
igb-fix-vf-lookup.patch
ixgbe-fix-vf-lookup.patch
perf-evsel-fix-an-issue-where-perf-report-fails-to-show-the-proper-percentage.patch
perf-tools-fix-perf-stack-to-non-executable-on-x86_64.patch

queue-3.2/drm-i915-force-explicit-bpp-selection-for-intel_dp_link_required.patch [new file with mode: 0644]
queue-3.2/drm-i915-no-lvds-quirk-for-aopen-mp45.patch [new file with mode: 0644]
queue-3.2/igb-fix-vf-lookup.patch [new file with mode: 0644]
queue-3.2/ixgbe-fix-vf-lookup.patch [new file with mode: 0644]
queue-3.2/perf-evsel-fix-an-issue-where-perf-report-fails-to-show-the-proper-percentage.patch [new file with mode: 0644]
queue-3.2/perf-tools-fix-perf-stack-to-non-executable-on-x86_64.patch [new file with mode: 0644]
queue-3.2/series [new file with mode: 0644]

diff --git a/queue-3.2/drm-i915-force-explicit-bpp-selection-for-intel_dp_link_required.patch b/queue-3.2/drm-i915-force-explicit-bpp-selection-for-intel_dp_link_required.patch
new file mode 100644 (file)
index 0000000..b0105a3
--- /dev/null
@@ -0,0 +1,96 @@
+From c898261c0dad617f0f1080bedc02d507a2fcfb92 Mon Sep 17 00:00:00 2001
+From: Keith Packard <keithp@keithp.com>
+Date: Wed, 25 Jan 2012 08:16:25 -0800
+Subject: drm/i915: Force explicit bpp selection for intel_dp_link_required
+
+From: Keith Packard <keithp@keithp.com>
+
+commit c898261c0dad617f0f1080bedc02d507a2fcfb92 upstream.
+
+It is never correct to use intel_crtc->bpp in intel_dp_link_required,
+so instead pass an explicit bpp in to this function. This patch
+only supports 18bpp and 24bpp modes, which means that 10bpc modes will
+be computed incorrectly. Fixing that will require more extensive
+changes, and so must be addressed separately from this bugfix.
+
+intel_dp_link_required is called from intel_dp_mode_valid and
+intel_dp_mode_fixup.
+
+* intel_dp_mode_valid is called to list supported modes; in this case,
+  the current crtc values cannot be relevant as the modes in question
+  may never be selected. Thus, using intel_crtc->bpp is never right.
+
+* intel_dp_mode_fixup is called during mode setting, but it is run
+  well before ironlake_crtc_mode_set is called to set intel_crtc->bpp,
+  so using intel_crtc-bpp in this path can only ever get a stale
+  value.
+
+Cc: Lubos Kolouch <lubos.kolouch@gmail.com>
+Cc: Adam Jackson <ajax@redhat.com>
+Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
+Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=42263
+Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=44881
+Tested-by: Dave Airlie <airlied@redhat.com>
+Tested-by: camalot@picnicpark.org (Dell Latitude 6510)
+Tested-by: Roland Dreier <roland@digitalvampire.org>
+Signed-off-by: Keith Packard <keithp@keithp.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/gpu/drm/i915/intel_dp.c |   20 +++++---------------
+ 1 file changed, 5 insertions(+), 15 deletions(-)
+
+--- a/drivers/gpu/drm/i915/intel_dp.c
++++ b/drivers/gpu/drm/i915/intel_dp.c
+@@ -208,17 +208,8 @@ intel_dp_link_clock(uint8_t link_bw)
+  */
+ static int
+-intel_dp_link_required(struct intel_dp *intel_dp, int pixel_clock, int check_bpp)
++intel_dp_link_required(int pixel_clock, int bpp)
+ {
+-      struct drm_crtc *crtc = intel_dp->base.base.crtc;
+-      struct intel_crtc *intel_crtc = to_intel_crtc(crtc);
+-      int bpp = 24;
+-
+-      if (check_bpp)
+-              bpp = check_bpp;
+-      else if (intel_crtc)
+-              bpp = intel_crtc->bpp;
+-
+       return (pixel_clock * bpp + 9) / 10;
+ }
+@@ -245,12 +236,11 @@ intel_dp_mode_valid(struct drm_connector
+                       return MODE_PANEL;
+       }
+-      mode_rate = intel_dp_link_required(intel_dp, mode->clock, 0);
++      mode_rate = intel_dp_link_required(mode->clock, 24);
+       max_rate = intel_dp_max_data_rate(max_link_clock, max_lanes);
+       if (mode_rate > max_rate) {
+-                      mode_rate = intel_dp_link_required(intel_dp,
+-                                                         mode->clock, 18);
++                      mode_rate = intel_dp_link_required(mode->clock, 18);
+                       if (mode_rate > max_rate)
+                               return MODE_CLOCK_HIGH;
+                       else
+@@ -683,7 +673,7 @@ intel_dp_mode_fixup(struct drm_encoder *
+       int lane_count, clock;
+       int max_lane_count = intel_dp_max_lane_count(intel_dp);
+       int max_clock = intel_dp_max_link_bw(intel_dp) == DP_LINK_BW_2_7 ? 1 : 0;
+-      int bpp = mode->private_flags & INTEL_MODE_DP_FORCE_6BPC ? 18 : 0;
++      int bpp = mode->private_flags & INTEL_MODE_DP_FORCE_6BPC ? 18 : 24;
+       static int bws[2] = { DP_LINK_BW_1_62, DP_LINK_BW_2_7 };
+       if (is_edp(intel_dp) && intel_dp->panel_fixed_mode) {
+@@ -701,7 +691,7 @@ intel_dp_mode_fixup(struct drm_encoder *
+               for (clock = 0; clock <= max_clock; clock++) {
+                       int link_avail = intel_dp_max_data_rate(intel_dp_link_clock(bws[clock]), lane_count);
+-                      if (intel_dp_link_required(intel_dp, mode->clock, bpp)
++                      if (intel_dp_link_required(mode->clock, bpp)
+                                       <= link_avail) {
+                               intel_dp->link_bw = bws[clock];
+                               intel_dp->lane_count = lane_count;
diff --git a/queue-3.2/drm-i915-no-lvds-quirk-for-aopen-mp45.patch b/queue-3.2/drm-i915-no-lvds-quirk-for-aopen-mp45.patch
new file mode 100644 (file)
index 0000000..32805f6
--- /dev/null
@@ -0,0 +1,38 @@
+From e57b6886f555ab57f40a01713304e2053efe51ec Mon Sep 17 00:00:00 2001
+From: Daniel Vetter <daniel.vetter@ffwll.ch>
+Date: Wed, 8 Feb 2012 16:42:52 +0100
+Subject: drm/i915: no lvds quirk for AOpen MP45
+
+From: Daniel Vetter <daniel.vetter@ffwll.ch>
+
+commit e57b6886f555ab57f40a01713304e2053efe51ec upstream.
+
+According to a bug report, it doesn't have one.
+
+Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=44263
+Acked-by: Chris Wilson <chris@chris-wilson.co.uk>
+Signed-Off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
+Signed-off-by: Keith Packard <keithp@keithp.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/gpu/drm/i915/intel_lvds.c |    8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+--- a/drivers/gpu/drm/i915/intel_lvds.c
++++ b/drivers/gpu/drm/i915/intel_lvds.c
+@@ -694,6 +694,14 @@ static const struct dmi_system_id intel_
+       },
+       {
+               .callback = intel_no_lvds_dmi_callback,
++                .ident = "AOpen i45GMx-I",
++                .matches = {
++                        DMI_MATCH(DMI_BOARD_VENDOR, "AOpen"),
++                        DMI_MATCH(DMI_BOARD_NAME, "i45GMx-I"),
++                },
++        },
++      {
++              .callback = intel_no_lvds_dmi_callback,
+               .ident = "Aopen i945GTt-VFA",
+               .matches = {
+                       DMI_MATCH(DMI_PRODUCT_VERSION, "AO00001JW"),
diff --git a/queue-3.2/igb-fix-vf-lookup.patch b/queue-3.2/igb-fix-vf-lookup.patch
new file mode 100644 (file)
index 0000000..430da6a
--- /dev/null
@@ -0,0 +1,40 @@
+From 0629292117572a60465f38cdedde2f8164c3df0b Mon Sep 17 00:00:00 2001
+From: Greg Rose <gregory.v.rose@intel.com>
+Date: Thu, 2 Feb 2012 23:51:43 +0000
+Subject: igb: fix vf lookup
+
+From: Greg Rose <gregory.v.rose@intel.com>
+
+commit 0629292117572a60465f38cdedde2f8164c3df0b upstream.
+
+Recent addition of code to find already allocated VFs failed to take
+account that systems with 2 or more multi-port SR-IOV capable controllers
+might have already enabled VFs.  Make sure that the VFs the function is
+finding are actually subordinate to the particular instance of the adapter
+that is looking for them and not subordinate to some device that has
+previously enabled SR-IOV.
+
+This is applicable to 3.2+ kernels.
+
+Reported-by: David Ahern <daahern@cisco.com>
+Signed-off-by: Greg Rose <gregory.v.rose@intel.com>
+Tested-by: Robert E Garrett <robertX.e.garrett@intel.com>
+Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/net/ethernet/intel/igb/igb_main.c |    3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+--- a/drivers/net/ethernet/intel/igb/igb_main.c
++++ b/drivers/net/ethernet/intel/igb/igb_main.c
+@@ -4965,7 +4965,8 @@ static int igb_find_enabled_vfs(struct i
+       vf_devfn = pdev->devfn + 0x80;
+       pvfdev = pci_get_device(hw->vendor_id, device_id, NULL);
+       while (pvfdev) {
+-              if (pvfdev->devfn == vf_devfn)
++              if (pvfdev->devfn == vf_devfn &&
++                  (pvfdev->bus->number >= pdev->bus->number))
+                       vfs_found++;
+               vf_devfn += vf_stride;
+               pvfdev = pci_get_device(hw->vendor_id,
diff --git a/queue-3.2/ixgbe-fix-vf-lookup.patch b/queue-3.2/ixgbe-fix-vf-lookup.patch
new file mode 100644 (file)
index 0000000..c39b6a7
--- /dev/null
@@ -0,0 +1,40 @@
+From a4b08329c74985e5cc3a44b6d2b2c59444ed8079 Mon Sep 17 00:00:00 2001
+From: Greg Rose <gregory.v.rose@intel.com>
+Date: Fri, 3 Feb 2012 00:54:13 +0000
+Subject: ixgbe: fix vf lookup
+
+From: Greg Rose <gregory.v.rose@intel.com>
+
+commit a4b08329c74985e5cc3a44b6d2b2c59444ed8079 upstream.
+
+Recent addition of code to find already allocated VFs failed to take
+account that systems with 2 or more multi-port SR-IOV capable controllers
+might have already enabled VFs.  Make sure that the VFs the function is
+finding are actually subordinate to the particular instance of the adapter
+that is looking for them and not subordinate to some device that has
+previously enabled SR-IOV.
+
+This bug exists in 3.2 stable as well as 3.3 release candidates.
+
+Reported-by: David Ahern <daahern@cisco.com>
+Signed-off-by: Greg Rose <gregory.v.rose@intel.com>
+Tested-by: Robert E Garrett <robertX.e.garrett@intel.com>
+Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c |    3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c
++++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c
+@@ -67,7 +67,8 @@ static int ixgbe_find_enabled_vfs(struct
+       vf_devfn = pdev->devfn + 0x80;
+       pvfdev = pci_get_device(IXGBE_INTEL_VENDOR_ID, device_id, NULL);
+       while (pvfdev) {
+-              if (pvfdev->devfn == vf_devfn)
++              if (pvfdev->devfn == vf_devfn &&
++                  (pvfdev->bus->number >= pdev->bus->number))
+                       vfs_found++;
+               vf_devfn += 2;
+               pvfdev = pci_get_device(IXGBE_INTEL_VENDOR_ID,
diff --git a/queue-3.2/perf-evsel-fix-an-issue-where-perf-report-fails-to-show-the-proper-percentage.patch b/queue-3.2/perf-evsel-fix-an-issue-where-perf-report-fails-to-show-the-proper-percentage.patch
new file mode 100644 (file)
index 0000000..ab1ba3f
--- /dev/null
@@ -0,0 +1,61 @@
+From a4a03fc7ef89020baca4f19174e6a43767c6d78a Mon Sep 17 00:00:00 2001
+From: "Naveen N. Rao" <naveen.n.rao@linux.vnet.ibm.com>
+Date: Fri, 3 Feb 2012 22:31:13 +0530
+Subject: perf evsel: Fix an issue where perf report fails to show the proper percentage
+
+From: "Naveen N. Rao" <naveen.n.rao@linux.vnet.ibm.com>
+
+commit a4a03fc7ef89020baca4f19174e6a43767c6d78a upstream.
+
+This patch fixes an issue where perf report shows nan% for certain
+perf.data files. The below is from a report for a do_fork probe:
+
+   -nan%           sshd  [kernel.kallsyms]  [k] do_fork
+   -nan%    packagekitd  [kernel.kallsyms]  [k] do_fork
+   -nan%    dbus-daemon  [kernel.kallsyms]  [k] do_fork
+   -nan%           bash  [kernel.kallsyms]  [k] do_fork
+
+A git bisect shows commit f3bda2c as the cause. However, looking back
+through the git history, I saw commit 640c03c which seems to have
+removed the required initialization for perf_sample->period. The problem
+only started showing after commit f3bda2c. The below patch re-introduces
+the initialization and it fixes the problem for me.
+
+With the below patch, for the same perf.data:
+
+  73.08%             bash  [kernel.kallsyms]  [k] do_fork
+   8.97%      11-dhclient  [kernel.kallsyms]  [k] do_fork
+   6.41%             sshd  [kernel.kallsyms]  [k] do_fork
+   3.85%        20-chrony  [kernel.kallsyms]  [k] do_fork
+   2.56%         sendmail  [kernel.kallsyms]  [k] do_fork
+
+This patch applies over current linux-tip commit 9949284.
+
+Problem introduced in:
+
+$ git describe 640c03c
+v2.6.37-rc3-83-g640c03c
+
+Cc: Ananth N Mavinakayanahalli <ananth@in.ibm.com>
+Cc: Ingo Molnar <mingo@elte.hu>
+Cc: Robert Richter <robert.richter@amd.com>
+Cc: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
+Link: http://lkml.kernel.org/r/20120203170113.5190.25558.stgit@localhost6.localdomain6
+Signed-off-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
+Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ tools/perf/util/evsel.c |    1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/tools/perf/util/evsel.c
++++ b/tools/perf/util/evsel.c
+@@ -390,6 +390,7 @@ int perf_event__parse_sample(const union
+       data->cpu = data->pid = data->tid = -1;
+       data->stream_id = data->id = data->time = -1ULL;
++      data->period = 1;
+       if (event->header.type != PERF_RECORD_SAMPLE) {
+               if (!sample_id_all)
diff --git a/queue-3.2/perf-tools-fix-perf-stack-to-non-executable-on-x86_64.patch b/queue-3.2/perf-tools-fix-perf-stack-to-non-executable-on-x86_64.patch
new file mode 100644 (file)
index 0000000..6c7db34
--- /dev/null
@@ -0,0 +1,53 @@
+From 7a0153ee15575a4d07b5da8c96b79e0b0fd41a12 Mon Sep 17 00:00:00 2001
+From: Jiri Olsa <jolsa@redhat.com>
+Date: Mon, 6 Feb 2012 18:54:06 -0200
+Subject: perf tools: Fix perf stack to non executable on x86_64
+
+From: Jiri Olsa <jolsa@redhat.com>
+
+commit 7a0153ee15575a4d07b5da8c96b79e0b0fd41a12 upstream.
+
+By adding following objects:
+  bench/mem-memcpy-x86-64-asm.o
+the x86_64 perf binary ended up with executable stack.
+
+The reason was that above object are assembler sourced and is missing the
+GNU-stack note section. In such case the linker assumes that the final binary
+should not be restricted at all and mark the stack as RWX.
+
+Adding section ".note.GNU-stack" definition to mentioned object, with all
+flags disabled, thus omiting this object from linker stack flags decision.
+
+Problem introduced in:
+
+  $ git describe ea7872b
+  v2.6.37-rc2-19-gea7872b
+
+Reported-at: https://bugzilla.redhat.com/show_bug.cgi?id=783570
+Reported-by: Clark Williams <williams@redhat.com>
+Acked-by: Eric Dumazet <eric.dumazet@gmail.com>
+Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
+Cc: Ingo Molnar <mingo@elte.hu>
+Cc: Paul Mackerras <paulus@samba.org>
+Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
+Link: http://lkml.kernel.org/r/1328100848-5630-1-git-send-email-jolsa@redhat.com
+Signed-off-by: Jiri Olsa <jolsa@redhat.com>
+[ committer note: Backported fix to perf/urgent (3.3-rc2+) ]
+Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ tools/perf/bench/mem-memcpy-x86-64-asm.S |    6 ++++++
+ 1 file changed, 6 insertions(+)
+
+--- a/tools/perf/bench/mem-memcpy-x86-64-asm.S
++++ b/tools/perf/bench/mem-memcpy-x86-64-asm.S
+@@ -1,2 +1,8 @@
+ #include "../../../arch/x86/lib/memcpy_64.S"
++/*
++ * We need to provide note.GNU-stack section, saying that we want
++ * NOT executable stack. Otherwise the final linking will assume that
++ * the ELF stack should not be restricted at all and set it RWX.
++ */
++.section .note.GNU-stack,"",@progbits
diff --git a/queue-3.2/series b/queue-3.2/series
new file mode 100644 (file)
index 0000000..c6bcb06
--- /dev/null
@@ -0,0 +1,6 @@
+ixgbe-fix-vf-lookup.patch
+igb-fix-vf-lookup.patch
+perf-evsel-fix-an-issue-where-perf-report-fails-to-show-the-proper-percentage.patch
+perf-tools-fix-perf-stack-to-non-executable-on-x86_64.patch
+drm-i915-force-explicit-bpp-selection-for-intel_dp_link_required.patch
+drm-i915-no-lvds-quirk-for-aopen-mp45.patch