]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.7-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 24 Jan 2013 20:59:04 +0000 (12:59 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 24 Jan 2013 20:59:04 +0000 (12:59 -0800)
added patches:
acpi-check-msr-valid-bit-before-using-p-state-frequencies.patch
acpi-cpuidle-fix-null-pointer-issues-when-cpuidle-is-disabled.patch
acpi-processor-get-power-info-before-updating-the-c-states.patch
cpufreq-add-module-aliases-for-acpi-cpufreq.patch
dma-tegra-implement-flags-parameters-for-cyclic-transfer.patch
i2c-mxs-fix-type-of-error-code.patch
intel_idle-don-t-register-cpu-notifier-if-we-are-not-running.patch
ioat-fix-dma-memory-sync-direction-correct-flag.patch
powernow-k8-add-a-kconfig-dependency-on-acpi-cpufreq.patch

queue-3.7/acpi-check-msr-valid-bit-before-using-p-state-frequencies.patch [new file with mode: 0644]
queue-3.7/acpi-cpuidle-fix-null-pointer-issues-when-cpuidle-is-disabled.patch [new file with mode: 0644]
queue-3.7/acpi-processor-get-power-info-before-updating-the-c-states.patch [new file with mode: 0644]
queue-3.7/cpufreq-add-module-aliases-for-acpi-cpufreq.patch [new file with mode: 0644]
queue-3.7/dma-tegra-implement-flags-parameters-for-cyclic-transfer.patch [new file with mode: 0644]
queue-3.7/i2c-mxs-fix-type-of-error-code.patch [new file with mode: 0644]
queue-3.7/intel_idle-don-t-register-cpu-notifier-if-we-are-not-running.patch [new file with mode: 0644]
queue-3.7/ioat-fix-dma-memory-sync-direction-correct-flag.patch [new file with mode: 0644]
queue-3.7/powernow-k8-add-a-kconfig-dependency-on-acpi-cpufreq.patch [new file with mode: 0644]
queue-3.7/series

diff --git a/queue-3.7/acpi-check-msr-valid-bit-before-using-p-state-frequencies.patch b/queue-3.7/acpi-check-msr-valid-bit-before-using-p-state-frequencies.patch
new file mode 100644 (file)
index 0000000..7e77129
--- /dev/null
@@ -0,0 +1,54 @@
+From 9855d8ce41a7801548a05d844db2f46c3e810166 Mon Sep 17 00:00:00 2001
+From: Stefan Bader <stefan.bader@canonical.com>
+Date: Tue, 22 Jan 2013 13:37:21 +0100
+Subject: ACPI: Check MSR valid bit before using P-state frequencies
+
+From: Stefan Bader <stefan.bader@canonical.com>
+
+commit 9855d8ce41a7801548a05d844db2f46c3e810166 upstream.
+
+To fix incorrect P-state frequencies which can happen on
+some AMD systems f594065faf4f9067c2283a34619fc0714e79a98d
+   "ACPI: Add fixups for AMD P-state figures"
+introduced a quirk to obtain the correct values by reading
+from AMD specific MSRs.
+
+This did cause a regression when running a kernel using that
+quirk under Xen which does (currently) not pass through MSR
+reads to the HW. Instead the guest gets a 0 in return.
+And this seems to cause a failure to initialize the ondemand
+governour (hard to say for sure as all P-states appear to run
+at the same frequency).
+
+While this should also be fixed in the hypervisor (to allow
+a guest to read that MSR), this patch is intended to work
+around the issue in the meantime. In discussion it turned out
+that indeed real HW/BIOSes may choose to not set the valid bit
+and thus mark the P-state as invalid. So this could be considered
+a fix for broken BIOSes that also works around the issue on Xen.
+
+Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
+Acked-by: Borislav Petkov <bp@suse.de>
+Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/acpi/processor_perflib.c |    7 +++++++
+ 1 file changed, 7 insertions(+)
+
+--- a/drivers/acpi/processor_perflib.c
++++ b/drivers/acpi/processor_perflib.c
+@@ -340,6 +340,13 @@ static void amd_fixup_frequency(struct a
+       if ((boot_cpu_data.x86 == 0x10 && boot_cpu_data.x86_model < 10)
+           || boot_cpu_data.x86 == 0x11) {
+               rdmsr(MSR_AMD_PSTATE_DEF_BASE + index, lo, hi);
++              /*
++               * MSR C001_0064+:
++               * Bit 63: PstateEn. Read-write. If set, the P-state is valid.
++               */
++              if (!(hi & BIT(31)))
++                      return;
++
+               fid = lo & 0x3f;
+               did = (lo >> 6) & 7;
+               if (boot_cpu_data.x86 == 0x10)
diff --git a/queue-3.7/acpi-cpuidle-fix-null-pointer-issues-when-cpuidle-is-disabled.patch b/queue-3.7/acpi-cpuidle-fix-null-pointer-issues-when-cpuidle-is-disabled.patch
new file mode 100644 (file)
index 0000000..82d0006
--- /dev/null
@@ -0,0 +1,81 @@
+From b88a634a903d9670aa5f2f785aa890628ce0dece Mon Sep 17 00:00:00 2001
+From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+Date: Wed, 16 Jan 2013 23:40:07 +0100
+Subject: ACPI / cpuidle: Fix NULL pointer issues when cpuidle is disabled
+
+From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+
+commit b88a634a903d9670aa5f2f785aa890628ce0dece upstream.
+
+If cpuidle is disabled, that means that:
+
+       per_cpu(acpi_cpuidle_device, pr->id)
+
+is set to NULL as the acpi_processor_power_init ends up failing at
+
+        retval = cpuidle_register_driver(&acpi_idle_driver)
+
+(in acpi_processor_power_init) and never sets the per_cpu idle
+device.  So when acpi_processor_hotplug on CPU online notification
+tries to reference said device it crashes:
+
+cpu 3 spinlock event irq 62
+BUG: unable to handle kernel NULL pointer dereference at 0000000000000004
+IP: [<ffffffff81381013>] acpi_processor_setup_cpuidle_cx+0x3f/0x105
+PGD a259b067 PUD ab38b067 PMD 0
+Oops: 0002 [#1] SMP
+odules linked in: dm_multipath dm_mod xen_evtchn iscsi_boot_sysfs iscsi_tcp libiscsi_tcp libiscsi scsi_transport_iscsi libcrc32c crc32c nouveau mxm_wmi wmi radeon ttm sg sr_mod sd_mod cdrom ata_generic ata_piix libata crc32c_intel scsi_mod atl1c i915 fbcon tileblit font bitblit softcursor drm_kms_helper video xen_blkfront xen_netfront fb_sys_fops sysimgblt sysfillrect syscopyarea xenfs xen_privcmd mperf
+CPU 1
+Pid: 3047, comm: bash Not tainted 3.8.0-rc3upstream-00250-g165c029 #1 MSI MS-7680/H61M-P23 (MS-7680)
+RIP: e030:[<ffffffff81381013>]  [<ffffffff81381013>] acpi_processor_setup_cpuidle_cx+0x3f/0x105
+RSP: e02b:ffff88001742dca8  EFLAGS: 00010202
+RAX: 0000000000010be9 RBX: ffff8800a0a61800 RCX: ffff880105380000
+RDX: 0000000000000003 RSI: 0000000000000200 RDI: ffff8800a0a61800
+RBP: ffff88001742dce8 R08: ffffffff81812360 R09: 0000000000000200
+R10: aaaaaaaaaaaaaaaa R11: 0000000000000001 R12: ffff8800a0a61800
+R13: 00000000ffffff01 R14: 0000000000000000 R15: ffffffff81a907a0
+FS:  00007fd6942f7700(0000) GS:ffff880105280000(0000) knlGS:0000000000000000
+CS:  e033 DS: 0000 ES: 0000 CR0: 0000000080050033
+CR2: 0000000000000004 CR3: 00000000a6773000 CR4: 0000000000042660
+DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
+DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
+Process bash (pid: 3047, threadinfo ffff88001742c000, task ffff880017944000)
+Stack:
+ 0000000000000150 ffff880100f59e00 ffff88001742dcd8 ffff8800a0a61800
+ 0000000000000000 00000000ffffff01 0000000000000000 ffffffff81a907a0
+ ffff88001742dd18 ffffffff813815b1 ffff88001742dd08 ffffffff810ae336
+Call Trace:
+ [<ffffffff813815b1>] acpi_processor_hotplug+0x7c/0x9f
+ [<ffffffff810ae336>] ? schedule_delayed_work_on+0x16/0x20
+ [<ffffffff8137ee8f>] acpi_cpu_soft_notify+0x90/0xca
+ [<ffffffff8166023d>] notifier_call_chain+0x4d/0x70
+ [<ffffffff810bc369>] __raw_notifier_call_chain+0x9/0x10
+ [<ffffffff81094a4b>] __cpu_notify+0x1b/0x30
+ [<ffffffff81652cf7>] _cpu_up+0x103/0x14b
+ [<ffffffff81652e18>] cpu_up+0xd9/0xec
+ [<ffffffff8164a254>] store_online+0x94/0xd0
+ [<ffffffff814122fb>] dev_attr_store+0x1b/0x20
+ [<ffffffff81216404>] sysfs_write_file+0xf4/0x170
+
+This patch fixes it.
+
+Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/acpi/processor_idle.c |    3 +++
+ 1 file changed, 3 insertions(+)
+
+--- a/drivers/acpi/processor_idle.c
++++ b/drivers/acpi/processor_idle.c
+@@ -1009,6 +1009,9 @@ static int acpi_processor_setup_cpuidle_
+               return -EINVAL;
+       }
++      if (!dev)
++              return -EINVAL;
++
+       dev->cpu = pr->id;
+       if (max_cstate == 0)
diff --git a/queue-3.7/acpi-processor-get-power-info-before-updating-the-c-states.patch b/queue-3.7/acpi-processor-get-power-info-before-updating-the-c-states.patch
new file mode 100644 (file)
index 0000000..f9990e4
--- /dev/null
@@ -0,0 +1,32 @@
+From f427e5f1cf75bba84cccdac1d8a90552d9ae1065 Mon Sep 17 00:00:00 2001
+From: Thomas Schlichter <thomas.schlichter@web.de>
+Date: Sat, 19 Jan 2013 00:28:22 +0100
+Subject: ACPI / processor: Get power info before updating the C-states
+
+From: Thomas Schlichter <thomas.schlichter@web.de>
+
+commit f427e5f1cf75bba84cccdac1d8a90552d9ae1065 upstream.
+
+acpi_processor_get_power_info() has to be called before
+acpi_processor_setup_cpuidle_states() to have the latest
+information available. This fixes the missing C-state information
+after AC-->DC transition.
+
+Signed-off-by: Thomas Schlichter <thomas.schlichter@web.de>
+Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/acpi/processor_idle.c |    1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/drivers/acpi/processor_idle.c
++++ b/drivers/acpi/processor_idle.c
+@@ -1203,6 +1203,7 @@ int acpi_processor_cst_has_changed(struc
+               }
+               /* Populate Updated C-state information */
++              acpi_processor_get_power_info(pr);
+               acpi_processor_setup_cpuidle_states(pr);
+               /* Enable all cpuidle devices */
diff --git a/queue-3.7/cpufreq-add-module-aliases-for-acpi-cpufreq.patch b/queue-3.7/cpufreq-add-module-aliases-for-acpi-cpufreq.patch
new file mode 100644 (file)
index 0000000..7f4ef04
--- /dev/null
@@ -0,0 +1,40 @@
+From efa17194581bdfca0986dabc178908bd7c21ba00 Mon Sep 17 00:00:00 2001
+From: Matthew Garrett <matthew.garrett@nebula.com>
+Date: Tue, 22 Jan 2013 22:33:46 +0100
+Subject: cpufreq: Add module aliases for acpi-cpufreq
+
+From: Matthew Garrett <matthew.garrett@nebula.com>
+
+commit efa17194581bdfca0986dabc178908bd7c21ba00 upstream.
+
+The acpi core will call request_module("acpi-cpufreq") on subsystem init,
+but this will fail if the module isn't available at that stage of boot.
+Add some module aliases to ensure that udev can load the module on Intel
+and AMD systems with the appropriate feature bits - I /think/ that this
+will also work on VIA systems, but haven't verified that.
+
+References: http://lkml.kernel.org/r/1448223.sdUJnNSRz4@vostro.rjw.lan
+Signed-off-by: Matthew Garrett <matthew.garrett@nebula.com>
+Tested-by: Leonid Isaev <lisaev@umail.iu.edu>
+Acked-by: Borislav Petkov <bp@suse.de>
+Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/cpufreq/acpi-cpufreq.c |    7 +++++++
+ 1 file changed, 7 insertions(+)
+
+--- a/drivers/cpufreq/acpi-cpufreq.c
++++ b/drivers/cpufreq/acpi-cpufreq.c
+@@ -1030,4 +1030,11 @@ MODULE_PARM_DESC(acpi_pstate_strict,
+ late_initcall(acpi_cpufreq_init);
+ module_exit(acpi_cpufreq_exit);
++static const struct x86_cpu_id acpi_cpufreq_ids[] = {
++      X86_FEATURE_MATCH(X86_FEATURE_ACPI),
++      X86_FEATURE_MATCH(X86_FEATURE_HW_PSTATE),
++      {}
++};
++MODULE_DEVICE_TABLE(x86cpu, acpi_cpufreq_ids);
++
+ MODULE_ALIAS("acpi");
diff --git a/queue-3.7/dma-tegra-implement-flags-parameters-for-cyclic-transfer.patch b/queue-3.7/dma-tegra-implement-flags-parameters-for-cyclic-transfer.patch
new file mode 100644 (file)
index 0000000..3181f48
--- /dev/null
@@ -0,0 +1,54 @@
+From b9bb37f5486ba05d2b557dbf1aeb754fef618985 Mon Sep 17 00:00:00 2001
+From: Laxman Dewangan <ldewangan@nvidia.com>
+Date: Wed, 9 Jan 2013 15:26:22 +0530
+Subject: dma: tegra: implement flags parameters for cyclic transfer
+
+From: Laxman Dewangan <ldewangan@nvidia.com>
+
+commit b9bb37f5486ba05d2b557dbf1aeb754fef618985 upstream.
+
+The flag parameter is added in the cyclic transfer request.
+Use the flag option of:
+- DMA_PREP_INTERRUPT for enabling interrupt.
+- DMA_CTRL_ACK for deciding whether ack is requred or not for
+  descriptor.
+
+Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
+Signed-off-by: Vinod Koul <vinod.koul@intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/dma/tegra20-apb-dma.c |    8 ++++++--
+ 1 file changed, 6 insertions(+), 2 deletions(-)
+
+--- a/drivers/dma/tegra20-apb-dma.c
++++ b/drivers/dma/tegra20-apb-dma.c
+@@ -266,6 +266,7 @@ static struct tegra_dma_desc *tegra_dma_
+               if (async_tx_test_ack(&dma_desc->txd)) {
+                       list_del(&dma_desc->node);
+                       spin_unlock_irqrestore(&tdc->lock, flags);
++                      dma_desc->txd.flags = 0;
+                       return dma_desc;
+               }
+       }
+@@ -1050,7 +1051,9 @@ struct dma_async_tx_descriptor *tegra_dm
+                                       TEGRA_APBDMA_AHBSEQ_WRAP_SHIFT;
+       ahb_seq |= TEGRA_APBDMA_AHBSEQ_BUS_WIDTH_32;
+-      csr |= TEGRA_APBDMA_CSR_FLOW | TEGRA_APBDMA_CSR_IE_EOC;
++      csr |= TEGRA_APBDMA_CSR_FLOW;
++      if (flags & DMA_PREP_INTERRUPT)
++              csr |= TEGRA_APBDMA_CSR_IE_EOC;
+       csr |= tdc->dma_sconfig.slave_id << TEGRA_APBDMA_CSR_REQ_SEL_SHIFT;
+       apb_seq |= TEGRA_APBDMA_APBSEQ_WRAP_WORD_1;
+@@ -1095,7 +1098,8 @@ struct dma_async_tx_descriptor *tegra_dm
+               mem += len;
+       }
+       sg_req->last_sg = true;
+-      dma_desc->txd.flags = 0;
++      if (flags & DMA_CTRL_ACK)
++              dma_desc->txd.flags = DMA_CTRL_ACK;
+       /*
+        * Make sure that mode should not be conflicting with currently
diff --git a/queue-3.7/i2c-mxs-fix-type-of-error-code.patch b/queue-3.7/i2c-mxs-fix-type-of-error-code.patch
new file mode 100644 (file)
index 0000000..ff58718
--- /dev/null
@@ -0,0 +1,36 @@
+From 0f40cbc4f85e13b1a42ae2f41231645a14965872 Mon Sep 17 00:00:00 2001
+From: Fabio Estevam <fabio.estevam@freescale.com>
+Date: Mon, 7 Jan 2013 22:32:06 -0200
+Subject: i2c: mxs: Fix type of error code
+
+From: Fabio Estevam <fabio.estevam@freescale.com>
+
+commit 0f40cbc4f85e13b1a42ae2f41231645a14965872 upstream.
+
+cmd_err is used to handle error code, so it should not be unsigned.
+
+This fixes the following warning when building with W=1 option:
+
+drivers/i2c/busses/i2c-mxs.c: In function 'mxs_i2c_xfer_msg':
+drivers/i2c/busses/i2c-mxs.c:331:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
+
+Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
+Acked-by: Marek Vasut <marex@denx.de>
+Signed-off-by: Wolfram Sang <w.sang@pengutronix.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/i2c/busses/i2c-mxs.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/i2c/busses/i2c-mxs.c
++++ b/drivers/i2c/busses/i2c-mxs.c
+@@ -127,7 +127,7 @@ struct mxs_i2c_dev {
+       struct device *dev;
+       void __iomem *regs;
+       struct completion cmd_complete;
+-      u32 cmd_err;
++      int cmd_err;
+       struct i2c_adapter adapter;
+       const struct mxs_i2c_speed_config *speed;
diff --git a/queue-3.7/intel_idle-don-t-register-cpu-notifier-if-we-are-not-running.patch b/queue-3.7/intel_idle-don-t-register-cpu-notifier-if-we-are-not-running.patch
new file mode 100644 (file)
index 0000000..d48b997
--- /dev/null
@@ -0,0 +1,100 @@
+From 6f8c2e7933679f54b6478945dc72e59ef9a3d5e0 Mon Sep 17 00:00:00 2001
+From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+Date: Wed, 16 Jan 2013 23:40:01 +0100
+Subject: intel_idle: Don't register CPU notifier if we are not running.
+
+From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+
+commit 6f8c2e7933679f54b6478945dc72e59ef9a3d5e0 upstream.
+
+The 'intel_idle_probe' probes the CPU and sets the CPU notifier.
+But if later on during the module initialization we fail (say
+in cpuidle_register_driver), we stop loading, but we neglect
+to unregister the CPU notifier.  This means that during CPU
+hotplug events the system will fail:
+
+calling  intel_idle_init+0x0/0x326 @ 1
+intel_idle: MWAIT substates: 0x1120
+intel_idle: v0.4 model 0x2A
+intel_idle: lapic_timer_reliable_states 0xffffffff
+intel_idle: intel_idle yielding to none
+initcall intel_idle_init+0x0/0x326 returned -19 after 14 usecs
+
+... some time later, offlining and onlining a CPU:
+
+cpu 3 spinlock event irq 62
+BUG: unable to ] __cpuidle_register_device+0x1c/0x120
+PGD 99b8b067 PUD 99b95067 PMD 0
+Oops: 0000 [#1] SMP
+Modules linked in: xen_evtchn nouveau mxm_wmi wmi radeon ttm i915 fbcon tileblit font atl1c bitblit softcursor drm_kms_helper video xen_blkfront xen_netfront fb_sys_fops sysimgblt sysfillrect syscopyarea xenfs xen_privcmd mperf
+CPU 0
+Pid: 2302, comm: udevd Not tainted 3.8.0-rc3upstream-00249-g09ad159 #1 MSI MS-7680/H61M-P23 (MS-7680)
+RIP: e030:[<ffffffff814d956c>]  [<ffffffff814d956c>] __cpuidle_register_device+0x1c/0x120
+RSP: e02b:ffff88009dacfcb8  EFLAGS: 00010286
+RAX: 0000000000000000 RBX: ffff880105380000 RCX: 000000000000001c
+RDX: 0000000000000000 RSI: 0000000000000055 RDI: ffff880105380000
+RBP: ffff88009dacfce8 R08: ffffffff81a4f048 R09: 0000000000000008
+R10: 0000000000000008 R11: 0000000000000000 R12: ffff880105380000
+R13: 00000000ffffffdd R14: 0000000000000000 R15: ffffffff81a523d0
+FS:  00007f37bd83b7a0(0000) GS:ffff880105200000(0000) knlGS:0000000000000000
+CS:  e033 DS: 0000 ES: 0000 CR0: 0000000080050033
+CR2: 0000000000000008 CR3: 00000000a09ea000 CR4: 0000000000042660
+DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
+DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
+Process udevd (pid: 2302, threadinfo ffff88009dace000, task ffff88009afb47f0)
+Stack:
+ ffffffff8107f2d0 ffffffff810c2fb7 ffff88009dacfce8 00000000ffffffea
+ ffff880105380000 00000000ffffffdd ffff88009dacfd08 ffffffff814d9882
+ 0000000000000003 ffff880105380000 ffff88009dacfd28 ffffffff81340afd
+Call Trace:
+ [<ffffffff8107f2d0>] ? collect_cpu_info_local+0x30/0x30
+ [<ffffffff810c2fb7>] ? __might_sleep+0xe7/0x100
+ [<ffffffff814d9882>] cpuidle_register_device+0x32/0x70
+ [<ffffffff81340afd>] intel_idle_cpu_init+0xad/0x110
+ [<ffffffff81340bc8>] cpu_hotplug_notify+0x68/0x80
+ [<ffffffff8166023d>] notifier_call_chain+0x4d/0x70
+ [<ffffffff810bc369>] __raw_notifier_call_chain+0x9/0x10
+ [<ffffffff81094a4b>] __cpu_notify+0x1b/0x30
+ [<ffffffff81652cf7>] _cpu_up+0x103/0x14b
+ [<ffffffff81652e18>] cpu_up+0xd9/0xec
+ [<ffffffff8164a254>] store_online+0x94/0xd0
+ [<ffffffff814122fb>] dev_attr_store+0x1b/0x20
+ [<ffffffff81216404>] sysfs_write_file+0xf4/0x170
+ [<ffffffff811a1024>] vfs_write+0xb4/0x130
+ [<ffffffff811a17ea>] sys_write+0x5a/0xa0
+ [<ffffffff816643a9>] system_call_fastpath+0x16/0x1b
+Code: 03 18 00 c9 c3 66 2e 0f 1f 84 00 00 00 00 00 55 48 89 e5 48 83 ec 30 48 89 5d e8 4c 89 65 f0 48 89 fb 4c 89 6d f8 e8 84 08 00 00 <48> 8b 78 08 49 89 c4 e8 f8 7f c1 ff 89 c2 b8 ea ff ff ff 84 d2
+RIP  [<ffffffff814d956c>] __cpuidle_register_device+0x1c/0x120
+ RSP <ffff88009dacfcb8>
+
+This patch fixes that by moving the CPU notifier registration
+as the last item to be done by the module.
+
+Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+Reviewed-by: Srivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com>
+Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/idle/intel_idle.c |    3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+--- a/drivers/idle/intel_idle.c
++++ b/drivers/idle/intel_idle.c
+@@ -460,8 +460,6 @@ static int intel_idle_probe(void)
+       else
+               on_each_cpu(__setup_broadcast_timer, (void *)true, 1);
+-      register_cpu_notifier(&cpu_hotplug_notifier);
+-
+       pr_debug(PREFIX "v" INTEL_IDLE_VERSION
+               " model 0x%X\n", boot_cpu_data.x86_model);
+@@ -624,6 +622,7 @@ static int __init intel_idle_init(void)
+                       return retval;
+               }
+       }
++      register_cpu_notifier(&cpu_hotplug_notifier);
+       return 0;
+ }
diff --git a/queue-3.7/ioat-fix-dma-memory-sync-direction-correct-flag.patch b/queue-3.7/ioat-fix-dma-memory-sync-direction-correct-flag.patch
new file mode 100644 (file)
index 0000000..5e1b6c7
--- /dev/null
@@ -0,0 +1,66 @@
+From ac4989874af56435c308bdde9ad9c837a26f8b23 Mon Sep 17 00:00:00 2001
+From: Shuah Khan <shuah.khan@hp.com>
+Date: Thu, 25 Oct 2012 10:22:32 -0600
+Subject: ioat: Fix DMA memory sync direction correct flag
+
+From: Shuah Khan <shuah.khan@hp.com>
+
+commit ac4989874af56435c308bdde9ad9c837a26f8b23 upstream.
+
+ioat does DMA memory sync with DMA_TO_DEVICE direction on a buffer allocated
+for DMA_FROM_DEVICE dma, resulting in the following warning from dma debug.
+Fixed the dma_sync_single_for_device() call to use the correct direction.
+
+[  226.288947] WARNING: at lib/dma-debug.c:990 check_sync+0x132/0x550()
+[  226.288948] Hardware name: ProLiant DL380p Gen8
+[  226.288951] ioatdma 0000:00:04.0: DMA-API: device driver syncs DMA memory with different direction [device address=0x00000000ffff7000] [size=4096 bytes] [mapped with DMA_FROM_DEVICE] [synced with DMA_TO_DEVICE]
+[  226.288953] Modules linked in: iTCO_wdt(+) sb_edac(+) ioatdma(+) microcode serio_raw pcspkr edac_core hpwdt(+) iTCO_vendor_support hpilo(+) dca acpi_power_meter ata_generic pata_acpi sd_mod crc_t10dif ata_piix libata hpsa tg3 netxen_nic(+) sunrpc dm_mirror dm_region_hash dm_log dm_mod
+[  226.288967] Pid: 1055, comm: work_for_cpu Tainted: G        W    3.3.0-0.20.el7.x86_64 #1
+[  226.288968] Call Trace:
+[  226.288974]  [<ffffffff810644cf>] warn_slowpath_common+0x7f/0xc0
+[  226.288977]  [<ffffffff810645c6>] warn_slowpath_fmt+0x46/0x50
+[  226.288980]  [<ffffffff81345502>] check_sync+0x132/0x550
+[  226.288983]  [<ffffffff81345c9f>] debug_dma_sync_single_for_device+0x3f/0x50
+[  226.288988]  [<ffffffff81661002>] ? wait_for_common+0x72/0x180
+[  226.288995]  [<ffffffffa019590f>] ioat_xor_val_self_test+0x3e5/0x832 [ioatdma]
+[  226.288999]  [<ffffffff811a5739>] ? kfree+0x259/0x270
+[  226.289004]  [<ffffffffa0195d77>] ioat3_dma_self_test+0x1b/0x20 [ioatdma]
+[  226.289008]  [<ffffffffa01952c3>] ioat_probe+0x2f8/0x348 [ioatdma]
+[  226.289011]  [<ffffffffa0195f51>] ioat3_dma_probe+0x1d5/0x2aa [ioatdma]
+[  226.289016]  [<ffffffffa0194d12>] ioat_pci_probe+0x139/0x17c [ioatdma]
+[  226.289020]  [<ffffffff81354b8c>] local_pci_probe+0x5c/0xd0
+[  226.289023]  [<ffffffff81083e50>] ? destroy_work_on_stack+0x20/0x20
+[  226.289025]  [<ffffffff81083e68>] do_work_for_cpu+0x18/0x30
+[  226.289029]  [<ffffffff8108d997>] kthread+0xb7/0xc0
+[  226.289033]  [<ffffffff8166cef4>] kernel_thread_helper+0x4/0x10
+[  226.289036]  [<ffffffff81662d20>] ? _raw_spin_unlock_irq+0x30/0x50
+[  226.289038]  [<ffffffff81663234>] ? retint_restore_args+0x13/0x13
+[  226.289041]  [<ffffffff8108d8e0>] ? kthread_worker_fn+0x1a0/0x1a0
+[  226.289044]  [<ffffffff8166cef0>] ? gs_change+0x13/0x13
+[  226.289045] ---[ end trace e1618afc7a606089 ]---
+[  226.289047] Mapped at:
+[  226.289048]  [<ffffffff81345307>] debug_dma_map_page+0x87/0x150
+[  226.289050]  [<ffffffffa019653c>] dma_map_page.constprop.18+0x70/0xb34 [ioatdma]
+[  226.289054]  [<ffffffffa0195702>] ioat_xor_val_self_test+0x1d8/0x832 [ioatdma]
+[  226.289058]  [<ffffffffa0195d77>] ioat3_dma_self_test+0x1b/0x20 [ioatdma]
+[  226.289061]  [<ffffffffa01952c3>] ioat_probe+0x2f8/0x348 [ioatdma]
+
+Signed-off-by: Shuah Khan <shuah.khan@hp.com>
+Signed-off-by: Vinod Koul <vinod.koul@linux.intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/dma/ioat/dma_v3.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/dma/ioat/dma_v3.c
++++ b/drivers/dma/ioat/dma_v3.c
+@@ -951,7 +951,7 @@ static int __devinit ioat_xor_val_self_t
+                       goto free_resources;
+               }
+       }
+-      dma_sync_single_for_device(dev, dest_dma, PAGE_SIZE, DMA_TO_DEVICE);
++      dma_sync_single_for_device(dev, dest_dma, PAGE_SIZE, DMA_FROM_DEVICE);
+       /* skip validate if the capability is not present */
+       if (!dma_has_cap(DMA_XOR_VAL, dma_chan->device->cap_mask))
diff --git a/queue-3.7/powernow-k8-add-a-kconfig-dependency-on-acpi-cpufreq.patch b/queue-3.7/powernow-k8-add-a-kconfig-dependency-on-acpi-cpufreq.patch
new file mode 100644 (file)
index 0000000..7a1bee6
--- /dev/null
@@ -0,0 +1,38 @@
+From 631e8ac18fd59722e7ceb15fceeef3f368c250f9 Mon Sep 17 00:00:00 2001
+From: Borislav Petkov <bp@suse.de>
+Date: Fri, 18 Jan 2013 00:19:37 +0100
+Subject: powernow-k8: Add a kconfig dependency on acpi-cpufreq
+
+From: Borislav Petkov <bp@suse.de>
+
+commit 631e8ac18fd59722e7ceb15fceeef3f368c250f9 upstream.
+
+Andreas reports in https://bugzilla.kernel.org/show_bug.cgi?id=51741
+that with his Gentoo config, acpi-cpufreq wasn't enabled and
+powernow-k8 couldn't handoff properly to acpi-cpufreq leading to
+running without P-state support (i.e., cores are constantly in P0).
+
+To alleaviate that, we need to make powernow-k8 depend on acpi-cpufreq
+so that acpi-cpufreq is always present.
+
+References: https://bugzilla.kernel.org/show_bug.cgi?id=51741
+Reported-by: Andreas <linuxuser330250@gmx.net>
+Signed-off-by: Borislav Petkov <bp@suse.de>
+Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/cpufreq/Kconfig.x86 |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/cpufreq/Kconfig.x86
++++ b/drivers/cpufreq/Kconfig.x86
+@@ -106,7 +106,7 @@ config X86_POWERNOW_K7_ACPI
+ config X86_POWERNOW_K8
+       tristate "AMD Opteron/Athlon64 PowerNow!"
+       select CPU_FREQ_TABLE
+-      depends on ACPI && ACPI_PROCESSOR
++      depends on ACPI && ACPI_PROCESSOR && X86_ACPI_CPUFREQ
+       help
+         This adds the CPUFreq driver for K8/early Opteron/Athlon64 processors.
+         Support for K10 and newer processors is now in acpi-cpufreq.
index a7558a1d1d11019846037efda11ec65f100e3de7..e4c1da480083c40cd4696c26adf8c79b8bb8a84a 100644 (file)
@@ -35,3 +35,12 @@ drm-i915-implement-wadisablehizplaneswhenmsaaenabled.patch
 module-add-new-state-module_state_unformed.patch
 module-put-modules-in-list-much-earlier.patch
 module-fix-missing-module_mutex-unlock.patch
+powernow-k8-add-a-kconfig-dependency-on-acpi-cpufreq.patch
+cpufreq-add-module-aliases-for-acpi-cpufreq.patch
+acpi-cpuidle-fix-null-pointer-issues-when-cpuidle-is-disabled.patch
+acpi-processor-get-power-info-before-updating-the-c-states.patch
+acpi-check-msr-valid-bit-before-using-p-state-frequencies.patch
+i2c-mxs-fix-type-of-error-code.patch
+intel_idle-don-t-register-cpu-notifier-if-we-are-not-running.patch
+ioat-fix-dma-memory-sync-direction-correct-flag.patch
+dma-tegra-implement-flags-parameters-for-cyclic-transfer.patch