From: Greg Kroah-Hartman Date: Thu, 24 Jan 2013 20:59:04 +0000 (-0800) Subject: 3.7-stable patches X-Git-Tag: v3.0.61~4 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=4710023018f0e0c06baec778ddb3bed953407cc9;p=thirdparty%2Fkernel%2Fstable-queue.git 3.7-stable patches 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 --- 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 index 00000000000..7e77129b111 --- /dev/null +++ b/queue-3.7/acpi-check-msr-valid-bit-before-using-p-state-frequencies.patch @@ -0,0 +1,54 @@ +From 9855d8ce41a7801548a05d844db2f46c3e810166 Mon Sep 17 00:00:00 2001 +From: Stefan Bader +Date: Tue, 22 Jan 2013 13:37:21 +0100 +Subject: ACPI: Check MSR valid bit before using P-state frequencies + +From: Stefan Bader + +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 +Acked-by: Borislav Petkov +Signed-off-by: Rafael J. Wysocki +Signed-off-by: Greg Kroah-Hartman + +--- + 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 index 00000000000..82d0006a5bb --- /dev/null +++ b/queue-3.7/acpi-cpuidle-fix-null-pointer-issues-when-cpuidle-is-disabled.patch @@ -0,0 +1,81 @@ +From b88a634a903d9670aa5f2f785aa890628ce0dece Mon Sep 17 00:00:00 2001 +From: Konrad Rzeszutek Wilk +Date: Wed, 16 Jan 2013 23:40:07 +0100 +Subject: ACPI / cpuidle: Fix NULL pointer issues when cpuidle is disabled + +From: Konrad Rzeszutek Wilk + +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: [] 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:[] [] 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: + [] acpi_processor_hotplug+0x7c/0x9f + [] ? schedule_delayed_work_on+0x16/0x20 + [] acpi_cpu_soft_notify+0x90/0xca + [] notifier_call_chain+0x4d/0x70 + [] __raw_notifier_call_chain+0x9/0x10 + [] __cpu_notify+0x1b/0x30 + [] _cpu_up+0x103/0x14b + [] cpu_up+0xd9/0xec + [] store_online+0x94/0xd0 + [] dev_attr_store+0x1b/0x20 + [] sysfs_write_file+0xf4/0x170 + +This patch fixes it. + +Signed-off-by: Konrad Rzeszutek Wilk +Signed-off-by: Rafael J. Wysocki +Signed-off-by: Greg Kroah-Hartman + +--- + 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 index 00000000000..f9990e4f88d --- /dev/null +++ b/queue-3.7/acpi-processor-get-power-info-before-updating-the-c-states.patch @@ -0,0 +1,32 @@ +From f427e5f1cf75bba84cccdac1d8a90552d9ae1065 Mon Sep 17 00:00:00 2001 +From: Thomas Schlichter +Date: Sat, 19 Jan 2013 00:28:22 +0100 +Subject: ACPI / processor: Get power info before updating the C-states + +From: Thomas Schlichter + +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 +Signed-off-by: Rafael J. Wysocki +Signed-off-by: Greg Kroah-Hartman + +--- + 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 index 00000000000..7f4ef047b66 --- /dev/null +++ b/queue-3.7/cpufreq-add-module-aliases-for-acpi-cpufreq.patch @@ -0,0 +1,40 @@ +From efa17194581bdfca0986dabc178908bd7c21ba00 Mon Sep 17 00:00:00 2001 +From: Matthew Garrett +Date: Tue, 22 Jan 2013 22:33:46 +0100 +Subject: cpufreq: Add module aliases for acpi-cpufreq + +From: Matthew Garrett + +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 +Tested-by: Leonid Isaev +Acked-by: Borislav Petkov +Signed-off-by: Rafael J. Wysocki +Signed-off-by: Greg Kroah-Hartman + +--- + 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 index 00000000000..3181f48bba6 --- /dev/null +++ b/queue-3.7/dma-tegra-implement-flags-parameters-for-cyclic-transfer.patch @@ -0,0 +1,54 @@ +From b9bb37f5486ba05d2b557dbf1aeb754fef618985 Mon Sep 17 00:00:00 2001 +From: Laxman Dewangan +Date: Wed, 9 Jan 2013 15:26:22 +0530 +Subject: dma: tegra: implement flags parameters for cyclic transfer + +From: Laxman Dewangan + +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 +Signed-off-by: Vinod Koul +Signed-off-by: Greg Kroah-Hartman + +--- + 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 index 00000000000..ff587187ffc --- /dev/null +++ b/queue-3.7/i2c-mxs-fix-type-of-error-code.patch @@ -0,0 +1,36 @@ +From 0f40cbc4f85e13b1a42ae2f41231645a14965872 Mon Sep 17 00:00:00 2001 +From: Fabio Estevam +Date: Mon, 7 Jan 2013 22:32:06 -0200 +Subject: i2c: mxs: Fix type of error code + +From: Fabio Estevam + +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 +Acked-by: Marek Vasut +Signed-off-by: Wolfram Sang +Signed-off-by: Greg Kroah-Hartman + +--- + 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 index 00000000000..d48b997d7f1 --- /dev/null +++ b/queue-3.7/intel_idle-don-t-register-cpu-notifier-if-we-are-not-running.patch @@ -0,0 +1,100 @@ +From 6f8c2e7933679f54b6478945dc72e59ef9a3d5e0 Mon Sep 17 00:00:00 2001 +From: Konrad Rzeszutek Wilk +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 + +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:[] [] __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: + [] ? collect_cpu_info_local+0x30/0x30 + [] ? __might_sleep+0xe7/0x100 + [] cpuidle_register_device+0x32/0x70 + [] intel_idle_cpu_init+0xad/0x110 + [] cpu_hotplug_notify+0x68/0x80 + [] notifier_call_chain+0x4d/0x70 + [] __raw_notifier_call_chain+0x9/0x10 + [] __cpu_notify+0x1b/0x30 + [] _cpu_up+0x103/0x14b + [] cpu_up+0xd9/0xec + [] store_online+0x94/0xd0 + [] dev_attr_store+0x1b/0x20 + [] sysfs_write_file+0xf4/0x170 + [] vfs_write+0xb4/0x130 + [] sys_write+0x5a/0xa0 + [] 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 [] __cpuidle_register_device+0x1c/0x120 + RSP + +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 +Reviewed-by: Srivatsa S. Bhat +Signed-off-by: Rafael J. Wysocki +Signed-off-by: Greg Kroah-Hartman + +--- + 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 index 00000000000..5e1b6c723f6 --- /dev/null +++ b/queue-3.7/ioat-fix-dma-memory-sync-direction-correct-flag.patch @@ -0,0 +1,66 @@ +From ac4989874af56435c308bdde9ad9c837a26f8b23 Mon Sep 17 00:00:00 2001 +From: Shuah Khan +Date: Thu, 25 Oct 2012 10:22:32 -0600 +Subject: ioat: Fix DMA memory sync direction correct flag + +From: Shuah Khan + +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] [] warn_slowpath_common+0x7f/0xc0 +[ 226.288977] [] warn_slowpath_fmt+0x46/0x50 +[ 226.288980] [] check_sync+0x132/0x550 +[ 226.288983] [] debug_dma_sync_single_for_device+0x3f/0x50 +[ 226.288988] [] ? wait_for_common+0x72/0x180 +[ 226.288995] [] ioat_xor_val_self_test+0x3e5/0x832 [ioatdma] +[ 226.288999] [] ? kfree+0x259/0x270 +[ 226.289004] [] ioat3_dma_self_test+0x1b/0x20 [ioatdma] +[ 226.289008] [] ioat_probe+0x2f8/0x348 [ioatdma] +[ 226.289011] [] ioat3_dma_probe+0x1d5/0x2aa [ioatdma] +[ 226.289016] [] ioat_pci_probe+0x139/0x17c [ioatdma] +[ 226.289020] [] local_pci_probe+0x5c/0xd0 +[ 226.289023] [] ? destroy_work_on_stack+0x20/0x20 +[ 226.289025] [] do_work_for_cpu+0x18/0x30 +[ 226.289029] [] kthread+0xb7/0xc0 +[ 226.289033] [] kernel_thread_helper+0x4/0x10 +[ 226.289036] [] ? _raw_spin_unlock_irq+0x30/0x50 +[ 226.289038] [] ? retint_restore_args+0x13/0x13 +[ 226.289041] [] ? kthread_worker_fn+0x1a0/0x1a0 +[ 226.289044] [] ? gs_change+0x13/0x13 +[ 226.289045] ---[ end trace e1618afc7a606089 ]--- +[ 226.289047] Mapped at: +[ 226.289048] [] debug_dma_map_page+0x87/0x150 +[ 226.289050] [] dma_map_page.constprop.18+0x70/0xb34 [ioatdma] +[ 226.289054] [] ioat_xor_val_self_test+0x1d8/0x832 [ioatdma] +[ 226.289058] [] ioat3_dma_self_test+0x1b/0x20 [ioatdma] +[ 226.289061] [] ioat_probe+0x2f8/0x348 [ioatdma] + +Signed-off-by: Shuah Khan +Signed-off-by: Vinod Koul +Signed-off-by: Greg Kroah-Hartman + +--- + 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 index 00000000000..7a1bee656f3 --- /dev/null +++ b/queue-3.7/powernow-k8-add-a-kconfig-dependency-on-acpi-cpufreq.patch @@ -0,0 +1,38 @@ +From 631e8ac18fd59722e7ceb15fceeef3f368c250f9 Mon Sep 17 00:00:00 2001 +From: Borislav Petkov +Date: Fri, 18 Jan 2013 00:19:37 +0100 +Subject: powernow-k8: Add a kconfig dependency on acpi-cpufreq + +From: Borislav Petkov + +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 +Signed-off-by: Borislav Petkov +Signed-off-by: Rafael J. Wysocki +Signed-off-by: Greg Kroah-Hartman + +--- + 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. diff --git a/queue-3.7/series b/queue-3.7/series index a7558a1d1d1..e4c1da48008 100644 --- a/queue-3.7/series +++ b/queue-3.7/series @@ -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