aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2011-03-17amd64_edac: Fix DCT argument typeBorislav Petkov1-5/+4
Fix amd64_debug_display_dimm_sizes() arguments order per convention (pvt is always first). Also, the now second arg denotes the DCT so adjust its type. Signed-off-by: Borislav Petkov <[email protected]>
2011-03-17amd64_edac: Fix ranges signednessBorislav Petkov1-4/+5
The dram ranges make sense only as an unsigned type. Signed-off-by: Borislav Petkov <[email protected]>
2011-03-17amd64_edac: Drop local variableBorislav Petkov1-3/+2
Use the macro directly instead Signed-off-by: Borislav Petkov <[email protected]>
2011-03-17amd64_edac: Fix PCI config addressing typesBorislav Petkov1-5/+5
Adjust argument types to the PCI config API's types. Signed-off-by: Borislav Petkov <[email protected]>
2011-03-17amd64_edac: Fix DRAM base macrosBorislav Petkov2-6/+5
Return unsigned u8 values only. Signed-off-by: Borislav Petkov <[email protected]>
2011-03-17amd64_edac: Fix node id signednessBorislav Petkov2-9/+11
A node id can never be negative since we use it as an index into the DRAM ranges array. This also makes one of the BUG_ON conditions redundant. Signed-off-by: Borislav Petkov <[email protected]>
2011-03-17amd64_edac: Drop redundant declarationsBorislav Petkov1-8/+0
Those were moved to the mce_amd.h header. Signed-off-by: Borislav Petkov <[email protected]>
2011-03-17amd64_edac: Enable driver on F15hBorislav Petkov3-15/+29
Add the PCI device ids required for driver registration. Remove pvt->ctl_name and use the family descriptor directly, instead. Then, bump driver version and fixup its format. Finally, enable DRAM ECC decoding on F15h. Signed-off-by: Borislav Petkov <[email protected]>
2011-03-17amd64_edac: Adjust ECC symbol size to F15hBorislav Petkov2-18/+16
F15h has the same ECC symbol size options as F10h revD and later so adjust checks to that. Simplify code a bit. Signed-off-by: Borislav Petkov <[email protected]>
2011-03-17amd64_edac: Simplify scrubrate settingBorislav Petkov2-13/+5
Drop per-instance variable and compute min scrubrate dynamically. Signed-off-by: Borislav Petkov <[email protected]>
2011-03-17PCI: Rename CPU PCI id defineBorislav Petkov2-2/+2
With increasing number of PCI function ids, add the PCI function id in the define name instead of its symbolic name in the BKDG for more clarity. Acked-by: Ingo Molnar <[email protected]> Acked-by: Jesse Barnes <[email protected]> Signed-off-by: Borislav Petkov <[email protected]>
2011-03-17amd64_edac: Improve DRAM address mappingBorislav Petkov2-70/+83
Drop static tables which map the bits in F2x80 to a chip select size in favor of functions doing the mapping with some bit fiddling. Also, add F15 support. Signed-off-by: Borislav Petkov <[email protected]>
2011-03-17amd64_edac: Sanitize ->read_dram_ctl_registerBorislav Petkov2-9/+7
This function is relevant for F10h and higher, and it has only one callsite so drop its function pointer from the low_ops struct. Signed-off-by: Borislav Petkov <[email protected]>
2011-03-17amd64_edac: Adjust sys_addr to chip select conversion routine to F15hBorislav Petkov1-14/+15
F15h sys_addr to chip select mapping is almost identical to F10h's so reuse that. Rename functions on that path accordingly. Signed-off-by: Borislav Petkov <[email protected]>
2011-03-17amd64_edac: Beef up early exit reportingBorislav Petkov1-1/+12
Add paranoid checks for the sys address before going off and decoding it. Signed-off-by: Borislav Petkov <[email protected]>
2011-03-17amd64_edac: Revamp online spare handlingBorislav Petkov2-21/+15
Replace per-DCT macros with smarter ones, drop hack and look for the spare rank on all chip selects on a channel. Signed-off-by: Borislav Petkov <[email protected]>
2011-03-17amd64_edac: Fix channel interleave removalBorislav Petkov1-9/+17
Remove the channel interleave select bit properly. See F2x110[DctSelIntLvAddr] for details. Signed-off-by: Borislav Petkov <[email protected]>
2011-03-17amd64_edac: Correct node interleaving removalBorislav Petkov1-4/+4
When node interleaving is enabled, a subset of the addr[14:12] bits has to be removed in order to get the normalized DCT address of the DRAM channel. The actual number of bits to remove is determined by F1x[1, 0][7C:40][IntlvEn]. Do this correctly. Signed-off-by: Borislav Petkov <[email protected]>
2011-03-17amd64_edac: Add support for interleaved region swappingBorislav Petkov2-0/+40
On revC3 and revE Fam10h machines and later, non-interleaved graphics framebuffer memory under the 16G mark can be swapped with a region located at the bottom of memory so that the GPU can use the interleaved region and thus two channels. Add support for that. Signed-off-by: Borislav Petkov <[email protected]>
2011-03-17amd64_edac: Unify get_error_addressBorislav Petkov2-15/+13
The address bits from MC4_STATUS differ only between K8 and the rest so no need for a per-family method. No functional change. Signed-off-by: Borislav Petkov <[email protected]>
2011-03-17amd64_edac: Simplify decoding pathBorislav Petkov3-65/+35
Use the struct mce directly instead of copying from it into a custom struct err_regs. No functionality change. Signed-off-by: Borislav Petkov <[email protected]>
2011-03-17amd64_edac: Adjust channel counting to F15hBorislav Petkov1-7/+6
The only difference is that F10h used to sport ganged DCTs and F15h doesn't so adjust the F10h routine and reuse it. Signed-off-by: Borislav Petkov <[email protected]>
2011-03-17amd64_edac: Cleanup old defines cruftBorislav Petkov2-76/+22
Remove unused defines, drop family names from define names. Signed-off-by: Borislav Petkov <[email protected]>
2011-03-17amd64_edac: Cleanup NBSH cruftBorislav Petkov3-27/+8
Remove reporting of errors with UC bit set - this is done by the MCE decoding code anyway and this driver deals with DRAM ECC errors only. UC (NB uncorrectable error) doesn't necessarily mean it is a DRAM error. Remove unused macros while at it. Signed-off-by: Borislav Petkov <[email protected]>
2011-03-17amd64_edac: Cleanup NBCFG handlingBorislav Petkov2-30/+24
The fact whether we are chipkill capable or not does not have any bearing when computing the channel index on a ganged DCT configuration so remove that. Also, simplify debug statements. Finally, remove old error injection leftovers, while at it. Signed-off-by: Borislav Petkov <[email protected]>
2011-03-17amd64_edac: Cleanup NBCTL codeBorislav Petkov2-14/+8
Remove family names from macro names, drop single bit defines and comment their meaning instead. No functional change. Signed-off-by: Borislav Petkov <[email protected]>
2011-03-17amd64_edac: Cleanup DCT Select Low/High codeBorislav Petkov2-22/+22
Shorten macro names, remove family name from macros, fix macro arguments, shorten debug strings. No functionality change. Signed-off-by: Borislav Petkov <[email protected]>
2011-03-17amd64_edac: Cleanup Dram Configuration registers handlingBorislav Petkov2-37/+24
* Restrict DCT ganged mode check since only Fam10h supports it * Adjust DRAM type detection for BD since it only supports DDR3 * Remove second and thus unneeded DCLR read in k8_early_channel_count() - we do that in read_mc_regs() * Cleanup comments and remove family names from register macros * Remove unused defines There should be no functional change resulting from this patch. Signed-off-by: Borislav Petkov <[email protected]>
2011-03-17amd64_edac: Cleanup DBAM handlingBorislav Petkov1-19/+8
Do not read DBAM regs twice and simplify code around them. There should be no functional change resulting from this patch. Signed-off-by: Borislav Petkov <[email protected]>
2011-03-17amd64_edac: Replace huge bitmasks with a macroBorislav Petkov1-10/+9
Replace hard to read hex constants with a continuous masks macro. Signed-off-by: Borislav Petkov <[email protected]>
2011-03-17amd64_edac: Sanitize f10_get_base_addr_offsetBorislav Petkov2-48/+50
This function maps the system address to the normalized DCT address. Document what the code does for more clarity and wrap insane bitmasks in a more understandable macro which generates them. Also, reduce number of arguments passed to the function. Finally, rename this function to what it actually does. No functional change. Signed-off-by: Borislav Petkov <[email protected]>
2011-03-17amd64_edac: Sanitize channel extractionBorislav Petkov1-50/+34
Cleanup and simplify f10_determine_channel(); make it more readable. Also drop f10_map_intlv_en_to_shift() in favor of simply counting the bits in F1x124[DramIntlvEn] which is equivalent. There should be no functionality change resulting from this patch. Signed-off-by: Borislav Petkov <[email protected]>
2011-03-17amd64_edac: Cleanup chipselect handlingBorislav Petkov2-238/+136
Add a struct representing the DRAM chip select base/limit register pairs. Concentrate all CS handling in a single function. Also, add CS looping macros for cleaner, more readable code. While at it, adjust code to F15h. Finally, do smaller macro names cleanups (remove family names from register macros) and debug messages clarification. No functional change. Signed-off-by: Borislav Petkov <[email protected]>
2011-03-17amd64_edac: Cleanup DHAR handlingBorislav Petkov2-24/+23
Adjust to F15h, simplify code, fixup macros. Signed-off-by: Borislav Petkov <[email protected]>
2011-03-17amd64_edac: Remove DRAM base/limit subfields cachingBorislav Petkov2-188/+115
Add a struct representing the DRAM base/limit range pairs and remove all cached subfields. Replace them with accessor functions, which actually saves us some space: text data bss dec hex filename 14712 1577 336 16625 40f1 drivers/edac/amd64_edac_mod.o.after 14831 1609 336 16776 4188 drivers/edac/amd64_edac_mod.o.before Also, it simplifies the code a lot allowing to merge the K8 and F10h routines. No functional change. Signed-off-by: Borislav Petkov <[email protected]>
2011-03-17amd64_edac: Add support for F15h DCT PCI config accessesBorislav Petkov3-75/+146
F15h "multiplexes" between the configuration space of the two DRAM controllers by toggling D18F1x10C[DctCfgSel] while F10h has a different set of registers for DCT0, and DCT1 in extended PCI config space. Add DCT configuration space accessors per family thus wrapping all the different access prerequisites. Clean up code while at it, shorten names. Signed-off-by: Borislav Petkov <[email protected]>
2011-03-17EDAC: Shut up sysfs registration debug codeBorislav Petkov1-13/+13
Raise the debug level of these routines so that their output get issued out only when the highest debug level is selected. Otherwise, don't pollute driver debug output. Signed-off-by: Borislav Petkov <[email protected]>
2011-03-14Linux 2.6.38Linus Torvalds1-1/+1
2011-03-14Merge branch 'fixes' of ↵Linus Torvalds3-5/+6
git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-2.6-mn10300 * 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-2.6-mn10300: MN10300: atomic_read() should ensure it emits a load MN10300: The SMP_ICACHE_INV_FLUSH_RANGE IPI command does not exist MN10300: Proper use of macros get_user() in the case of incremented pointers
2011-03-14Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/upstream-linusLinus Torvalds22-305/+331
* 'upstream' of git://git.linux-mips.org/pub/scm/upstream-linus: (26 commits) MIPS: Alchemy: Fix reset for MTX-1 and XXS1500 MIPS: MTX-1: Make au1000_eth probe all PHY addresses MIPS: Jz4740: Add HAVE_CLK MIPS: Move idle task creation to work queue MIPS, Perf-events: Use unsigned delta for right shift in event update MIPS, Perf-events: Work with the new callchain interface MIPS, Perf-events: Fix event check in validate_event() MIPS, Perf-events: Work with the new PMU interface MIPS, Perf-events: Work with irq_work MIPS: Fix always CONFIG_LOONGSON_UART_BASE=y MIPS: Loongson: Fix potentially wrong string handling MIPS: Fix GCC-4.6 'set but not used' warning in arch/mips/mm/init.c MIPS: Fix GCC-4.6 'set but not used' warning in ieee754int.h MIPS: Remove unused code from arch/mips/kernel/syscall.c MIPS: Fix GCC-4.6 'set but not used' warning in signal*.c MIPS: MSP: Fix MSP71xx bpci interrupt handler return value MIPS: Select R4K timer lib for all MSP platforms MIPS: Loongson: Remove ad-hoc cmdline default MIPS: Clear the correct flag in sysmips(MIPS_FIXADE, ...). MIPS: Add an unreachable return statement to satisfy buggy GCCs. ...
2011-03-14Merge branch 'x86-fixes-for-linus' of ↵Linus Torvalds9-37/+45
git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: x86: ce4100: Set pci ops via callback instead of module init x86/mm: Fix pgd_lock deadlock x86/mm: Handle mm_fault_error() in kernel space x86: Don't check for BIOS corruption in first 64K when there's no need to
2011-03-14Revert "oom: oom_kill_process: fix the child_points logic"Linus Torvalds1-8/+3
This reverts the parent commit. I hate doing that, but it's generating some discussion ("half of it is right"), and since I am planning on doing the 2.6.38 release later today we can punt it to stable if required. Let's not rock the boat right now. Signed-off-by: Linus Torvalds <[email protected]>
2011-03-14oom: oom_kill_process: fix the child_points logicOleg Nesterov1-3/+8
oom_kill_process() starts with victim_points == 0. This means that (most likely) any child has more points and can be killed erroneously. Also, "children has a different mm" doesn't match the reality, we should check child->mm != t->mm. This check is not exactly correct if t->mm == NULL but this doesn't really matter, oom_kill_task() will kill them anyway. Note: "Kill all processes sharing p->mm" in oom_kill_task() is wrong too. Signed-off-by: Oleg Nesterov <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2011-03-14MIPS: Alchemy: Fix reset for MTX-1 and XXS1500Florian Fainelli2-4/+4
Since commit 32fd6901 (MIPS: Alchemy: get rid of common/reset.c) Alchemy-based boards use their own reset function. For MTX-1 and XXS1500, the reset function pokes at the BCSR.SYSTEM_RESET register, but this does not work. According to Bruno Randolf, this was not tested when written. Previously, the generic au1000_restart() routine called the board specific reset function, which for MTX-1 and XXS1500 did not work, but finally made a jump to the reset vector, which really triggers a system restart. Fix reboot for both targets by jumping to the reset vector. Signed-off-by: Florian Fainelli <[email protected]> To: [email protected] Patchwork: https://patchwork.linux-mips.org/patch/2093/ Acked-by: Bruno Randolf <[email protected]> Signed-off-by: Ralf Baechle <[email protected]>
2011-03-14MIPS: MTX-1: Make au1000_eth probe all PHY addressesFlorian Fainelli1-0/+9
When au1000_eth probes the MII bus for PHY address, if we do not set au1000_eth platform data's phy_search_highest_address, the MII probing logic will exit early and will assume a valid PHY is found at address 0. For MTX-1, the PHY is at address 31, and without this patch, the link detection/speed/duplex would not work correctly. CC: [email protected] Signed-off-by: Florian Fainelli <[email protected]> To: [email protected] Patchwork: https://patchwork.linux-mips.org/patch/2111/ Signed-off-by: Ralf Baechle <[email protected]>
2011-03-14MIPS: Jz4740: Add HAVE_CLKMaurus Cuelenaere1-0/+1
Jz4740 supports the clock framework but doesn't have HAVE_CLK defined, so define it! Signed-off-by: Maurus Cuelenaere <[email protected]> To: [email protected] To: [email protected] Patchwork: https://patchwork.linux-mips.org/patch/2112/ Acked-by: Lars-Peter Clausen <[email protected]> Signed-off-by: Ralf Baechle <[email protected]>
2011-03-14MIPS: Move idle task creation to work queueMaksim Rayskiy1-2/+29
To avoid forking usermode thread when creating an idle task, move fork_idle to a work queue. If kernel starts with maxcpus= option which does not bring all available cpus online at boot time, idle tasks for offline cpus are not created. If later offline cpus are hotplugged through sysfs, __cpu_up is called in the context of the user task, and fork_idle copies its non-zero mm pointer. This causes BUG() in per_cpu_trap_init. This also avoids issues with resource limits of the CPU writing to sysfs, containers, maybe others. Signed-off-by: Maksim Rayskiy <[email protected]> To: [email protected] Patchwork: https://patchwork.linux-mips.org/patch/2070/ Signed-off-by: Ralf Baechle <[email protected]>
2011-03-14MIPS, Perf-events: Use unsigned delta for right shift in event updateDeng-Cheng Zhu1-1/+1
Leverage the commit for ARM by Will Deacon: - 446a5a8b1eb91a6990e5c8fe29f14e7a95b69132 ARM: 6205/1: perf: ensure counter delta is treated as unsigned Hardware performance counters on ARM are 32-bits wide but atomic64_t variables are used to represent counter data in the hw_perf_event structure. The armpmu_event_update function right-shifts a signed 64-bit delta variable and adds the result to the event count. This can lead to shifting in sign-bits if the MSB of the 32-bit counter value is set. This results in perf output such as: Performance counter stats for 'sleep 20': 18446744073460670464 cycles <-- 0xFFFFFFFFF12A6000 7783773 instructions # 0.000 IPC 465 context-switches 161 page-faults 1172393 branches 20.154242147 seconds time elapsed This patch ensures that the delta value is treated as unsigned so that the right shift sets the upper bits to zero. Acked-by: Will Deacon <[email protected]> Acked-by: David Daney <[email protected]> Signed-off-by: Deng-Cheng Zhu <[email protected]> To: [email protected] To: [email protected] To: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] Patchwork: http://patchwork.linux-mips.org/patch/2015/ Signed-off-by: Ralf Baechle <[email protected]>
2011-03-14MIPS, Perf-events: Work with the new callchain interfaceDeng-Cheng Zhu1-57/+6
This is the MIPS part of the following commits by Frederic Weisbecker: - f72c1a931e311bb7780fee19e41a89ac42cab50e perf: Factorize callchain context handling Store the kernel and user contexts from the generic layer instead of archs, this gathers some repetitive code. - 56962b4449af34070bb1994621ef4f0265eed4d8 perf: Generalize some arch callchain code - Most archs use one callchain buffer per cpu, except x86 that needs to deal with NMIs. Provide a default perf_callchain_buffer() implementation that x86 overrides. - Centralize all the kernel/user regs handling and invoke new arch handlers from there: perf_callchain_user() / perf_callchain_kernel() That avoid all the user_mode(), current->mm checks and so... - Invert some parameters in perf_callchain_*() helpers: entry to the left, regs to the right, following the traditional (dst, src). - 70791ce9ba68a5921c9905ef05d23f62a90bc10c perf: Generalize callchain_store() callchain_store() is the same on every archs, inline it in perf_event.h and rename it to perf_callchain_store() to avoid any collision. This removes repetitive code. - c1a65932fd7216fdc9a0db8bbffe1d47842f862c perf: Drop unappropriate tests on arch callchains Drop the TASK_RUNNING test on user tasks for callchains as this check doesn't seem to make any sense. Also remove the tests for !current that is not supposed to happen and current->pid as this should be handled at the generic level, with exclude_idle attribute. Reported-by: Wu Zhangjin <[email protected]> Acked-by: Frederic Weisbecker <[email protected]> Acked-by: David Daney <[email protected]> Signed-off-by: Deng-Cheng Zhu <[email protected]> To: [email protected] To: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] Patchwork: http://patchwork.linux-mips.org/patch/2014/ Signed-off-by: Ralf Baechle <[email protected]>
2011-03-14MIPS, Perf-events: Fix event check in validate_event()Deng-Cheng Zhu1-2/+3
Ignore events that are in off/error state or belong to a different PMU. This patch originates from the following commit for ARM by Will Deacon: - 65b4711ff513767341aa1915c822de6ec0de65cb ARM: 6352/1: perf: fix event validation The validate_event function in the ARM perf events backend has the following problems: 1.) Events that are disabled count towards the cost. 2.) Events associated with other PMUs [for example, software events or breakpoints] do not count towards the cost, but do fail validation, causing the group to fail. This patch changes validate_event so that it ignores events in the PERF_EVENT_STATE_OFF state or that are scheduled for other PMUs. Acked-by: Will Deacon <[email protected]> Acked-by: David Daney <[email protected]> Signed-off-by: Deng-Cheng Zhu <[email protected]> To: [email protected] To: [email protected] To: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] Patchwork: http://patchwork.linux-mips.org/patch/2013/ Signed-off-by: Ralf Baechle <[email protected]>