From: Greg Kroah-Hartman Date: Wed, 4 Jun 2014 06:03:24 +0000 (-0700) Subject: 3.4-stable patches X-Git-Tag: v3.14.6~44 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=9ea198bde32af0882188fe4209c1e80013107b30;p=thirdparty%2Fkernel%2Fstable-queue.git 3.4-stable patches added patches: pci-shpchp-check-bridge-s-secondary-not-primary-bus-speed.patch --- diff --git a/queue-3.4/pci-shpchp-check-bridge-s-secondary-not-primary-bus-speed.patch b/queue-3.4/pci-shpchp-check-bridge-s-secondary-not-primary-bus-speed.patch new file mode 100644 index 00000000000..6cad37ee53b --- /dev/null +++ b/queue-3.4/pci-shpchp-check-bridge-s-secondary-not-primary-bus-speed.patch @@ -0,0 +1,45 @@ +From 93fa9d32670f5592c8e56abc9928fc194e1e72fc Mon Sep 17 00:00:00 2001 +From: Marcel Apfelbaum +Date: Thu, 15 May 2014 12:42:49 -0600 +Subject: PCI: shpchp: Check bridge's secondary (not primary) bus speed + +From: Marcel Apfelbaum + +commit 93fa9d32670f5592c8e56abc9928fc194e1e72fc upstream. + +When a new device is added below a hotplug bridge, the bridge's secondary +bus speed and the device's bus speed must match. The shpchp driver +previously checked the bridge's *primary* bus speed, not the secondary bus +speed. + +This caused hot-add errors like: + + shpchp 0000:00:03.0: Speed of bus ff and adapter 0 mismatch + +Check the secondary bus speed instead. + +[bhelgaas: changelog] +Link: https://bugzilla.kernel.org/show_bug.cgi?id=75251 +Fixes: 3749c51ac6c1 ("PCI: Make current and maximum bus speeds part of the PCI core") +Signed-off-by: Marcel Apfelbaum +Signed-off-by: Bjorn Helgaas +Acked-by: Michael S. Tsirkin +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/pci/hotplug/shpchp_ctrl.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/drivers/pci/hotplug/shpchp_ctrl.c ++++ b/drivers/pci/hotplug/shpchp_ctrl.c +@@ -285,8 +285,8 @@ static int board_added(struct slot *p_sl + return WRONG_BUS_FREQUENCY; + } + +- bsp = ctrl->pci_dev->bus->cur_bus_speed; +- msp = ctrl->pci_dev->bus->max_bus_speed; ++ bsp = ctrl->pci_dev->subordinate->cur_bus_speed; ++ msp = ctrl->pci_dev->subordinate->max_bus_speed; + + /* Check if there are other slots or devices on the same bus */ + if (!list_empty(&ctrl->pci_dev->subordinate->devices)) diff --git a/queue-3.4/series b/queue-3.4/series index 8d8ae587c3a..b7fde96fcc1 100644 --- a/queue-3.4/series +++ b/queue-3.4/series @@ -68,3 +68,4 @@ nfsd4-remove-lockowner-when-removing-lock-stateid.patch percpu-make-pcpu_alloc_chunk-use-pcpu_mem_free-instead-of-kfree.patch asoc-wm8962-update-register-class_d_control_1-to-be-non-volatile.patch x86-64-modify_ldt-make-support-for-16-bit-segments-a-runtime-option.patch +pci-shpchp-check-bridge-s-secondary-not-primary-bus-speed.patch