aboutsummaryrefslogtreecommitdiff
path: root/arch/mips/kernel
AgeCommit message (Collapse)AuthorFilesLines
2013-02-17MIPS: Add new GIC clocksource.Steven J. Hill2-0/+50
Add new clocksource that uses the counter present on the MIPS Global Interrupt Controller. Signed-off-by: Steven J. Hill <[email protected]> Patchwork: http://patchwork.linux-mips.org/patch/4681/ Signed-off-by: John Crispin <[email protected]>
2013-02-17MIPS: dsp: Add assembler support for DSP ASEs.Steven J. Hill1-0/+31
Newer toolchains support the DSP and DSP Rev2 instructions. This patch performs a check for that support and adds compiler and assembler flags for only the files that need use those instructions. Signed-off-by: Steven J. Hill <[email protected]> Acked-by: Florian Fainelli <[email protected]> Patchwork: http://patchwork.linux-mips.org/patch/4752/ Signed-off-by: John Crispin <[email protected]>
2013-02-17MIPS: Add support for the M14KEc core.Steven J. Hill2-0/+8
Signed-off-by: Steven J. Hill <[email protected]> Patchwork: http://patchwork.linux-mips.org/patch/4682/ Signed-off-by: John Crispin <[email protected]>
2013-02-17MIPS: show correct cpu name for 24KEcJohn Crispin1-1/+4
Make sure 24KEc is properly identified inside /proc/cpuinfo Signed-off-by: John Crispin <[email protected]>
2013-02-15MIPS: Add printing of ISA version in cpuinfo.Steven J. Hill2-30/+80
Display the MIPS ISA version release in the /proc/cpuinfo file. [[email protected]: Add support for MIPS I ... IV legacy architecture revisions. Also differenciate between MIPS32 and MIPS64 versions instead of lumping them together as just r1 and r2. Note to application programmers: this indicates the CPU's ISA level It does not imply the current execution environment does support it. For example an O32 application seeing "mips64r2" would still be restricted by by the execution environment to 32-bit - but the kernel could run mips64r2 code. The same for a 32-bit kernel running on a 64-bit processor. This field doesn't include ASEs or optional architecture modules nor other detailed flags such as the availability of an FPU.] Signed-off-by: Steven J. Hill <[email protected]> Cc: [email protected] Patchwork: http://patchwork.linux-mips.org/patch/4714/ Signed-off-by: Ralf Baechle <[email protected]>
2013-02-15MIPS: Loongson2: Use clk API instead of direct dereferencesJulia Lawall1-3/+12
A struct clk value is intended to be an abstract pointer, so it should be manipulated using the various API functions. clk_put is additionally added on the failure paths. The semantic match that finds the first problem is as follows: (http://coccinelle.lip6.fr/) // <smpl> @@ expression e,e1; identifier i; @@ *e = clk_get(...) ... when != e = e1 when any *e->i // </smpl> Signed-off-by: Julia Lawall <[email protected]> Cc: [email protected] Cc: [email protected], Cc: [email protected] Patchwork: https://patchwork.linux-mips.org/patch/4751/ Signed-off-by: Ralf Baechle <[email protected]>
2013-02-03mips: switch to generic sys_fork() and sys_clone()Al Viro6-61/+8
we still need the wrappers to store callee-saved registers in pt_regs, but once that done we can jump to kernel/fork.c variants. Signed-off-by: Al Viro <[email protected]>
2013-02-03mips: take the "zero newsp means inherit the parent's one" to copy_thread()Al Viro3-6/+3
Signed-off-by: Al Viro <[email protected]>
2013-02-03mips: no magic arguments for sysm_pipe()Al Viro1-12/+6
current_pt_regs() works just fine Signed-off-by: Al Viro <[email protected]>
2013-02-03mips: don't bother with compat_sys_futex() wrappersAl Viro3-9/+2
... it's COMPAT_SYSCALL_DEFINE now Signed-off-by: Al Viro <[email protected]>
2013-02-03mips: switch to generic compat rt_sigaction()Al Viro3-54/+4
Signed-off-by: Al Viro <[email protected]>
2013-02-03mips: switch to generic compat sched_rr_get_interval()Al Viro3-18/+2
Signed-off-by: Al Viro <[email protected]>
2013-02-03mips: sigsuspend() is essentially the same as rt_sigsuspend() hereAl Viro2-16/+4
Signed-off-by: Al Viro <[email protected]>
2013-02-03mips: switch to generic compat rt_sigqueueinfo()Al Viro3-18/+2
Signed-off-by: Al Viro <[email protected]>
2013-02-03mips: switch to generic compat rt_sigpending()Al Viro3-19/+2
Signed-off-by: Al Viro <[email protected]>
2013-02-03mips: switch to generic compat rt_sigprocmask()Al Viro3-24/+2
Signed-off-by: Al Viro <[email protected]>
2013-02-03switch mips to generic rt_sigsuspend(), make it unconditionalAl Viro5-53/+2
mips was the last architecture not using the generic variant. Both native and compat variants switched to generic, which is made unconditional now. Signed-off-by: Al Viro <[email protected]>
2013-02-03mips: switch to compat_sys_waitid()Al Viro2-27/+1
Signed-off-by: Al Viro <[email protected]>
2013-02-03mips: switch to generic sigaltstackAl Viro5-127/+11
Signed-off-by: Al Viro <[email protected]>
2013-02-03Merge commit '12890d0f61fc' into arch-mipsAl Viro1-13/+6
2013-02-03mips: use sane prototype for sys_rt_sigsuspend()Al Viro1-5/+1
we want to do that before branchpoint for arch-* to be able to consolidate sys_rt_sigsuspend() declarations. Signed-off-by: Al Viro <[email protected]>
2013-02-01MIPS: Whitespace cleanup.Ralf Baechle68-450/+450
Having received another series of whitespace patches I decided to do this once and for all rather than dealing with this kind of patches trickling in forever. Signed-off-by: Ralf Baechle <[email protected]>
2013-02-01MIPS: Whitespace cleanups and reformatting.Steven J. Hill1-2/+2
Signed-off-by: Steven J. Hill <[email protected]> Cc: [email protected] Cc: Steven J. Hill <[email protected]> Cc: Kevin Cernekee <[email protected]> Patchwork: https://patchwork.linux-mips.org/patch/4781/ Signed-off-by: Ralf Baechle <[email protected]>
2013-02-01MIPS: sysmips: Rewrite to use SYSCALL_DEFINE3().Ralf Baechle1-12/+5
Thanks to current_pt_regs() there is no need to use the dark MIPS magic. Signed-off-by: Ralf Baechle <[email protected]>
2013-02-01MIPS: sysmips: Use unreachable().Ralf Baechle1-1/+1
Signed-off-by: Ralf Baechle <[email protected]>
2013-01-31MIPS: Function tracer: Fix broken function tracingAl Cooper2-4/+39
Function tracing is currently broken for all 32 bit MIPS platforms. When tracing is enabled, the kernel immediately hangs on boot. This is a result of commit b732d439cb43336cd6d7e804ecb2c81193ef63b0 that changes the kernel/trace/Kconfig file so that is no longer forces FRAME_POINTER when FUNCTION_TRACING is enabled. MIPS frame pointers are generally considered to be useless because they cannot be used to unwind the stack. Unfortunately the MIPS function tracing code has bugs that are masked by the use of frame pointers. This commit fixes the bugs so that MIPS frame pointers don't need to be enabled. The bugs are a result of the odd calling sequence used to call the trace routine. This calling sequence is inserted into every traceable function when the tracing CONFIG option is enabled. This sequence is generated for 32bit MIPS platforms by the compiler via the "-pg" flag. Part of the sequence is "addiu sp,sp,-8" in the delay slot after every call to the trace routine "_mcount" (some legacy thing where 2 arguments used to be pushed on the stack). The _mcount routine is expected to adjust the sp by +8 before returning. So when not disabled, the original jalr and addiu will be there, so _mcount has to adjust sp. The problem is that when tracing is disabled for a function, the "jalr _mcount" instruction is replaced with a nop, but the "addiu sp,sp,-8" is still executed and the stack pointer is left trashed. When frame pointers are enabled the problem is masked because any access to the stack is done through the frame pointer and the stack pointer is restored from the frame pointer when the function returns. This patch writes two nops starting at the address of the "jalr _mcount" instruction whenever tracing is disabled. This means that the "addiu sp,sp.-8" will be converted to a nop along with the "jalr". When disabled, there will be two nops. This is SMP safe because the first time this happens is during ftrace_init() which is before any other processor has been started. Subsequent calls to enable/disable tracing when other CPUs ARE running will still be safe because the enable will only change the first nop to a "jalr" and the disable, while writing 2 nops, will only be changing the "jalr". This patch also stops using stop_machine() to call the tracer enable/disable routines and calls them directly because the routines are SMP safe. When the kernel first boots we have to be able to handle the gcc generated jalr, addui sequence until ftrace_init gets a chance to run and change the sequence. At this point mcount just adjusts the stack and returns. When ftrace_init runs, we convert the jalr/addui to nops. Then whenever tracing is enabled we convert the first nop to a "jalr mcount+8". The mcount+8 entry point skips the stack adjust. [[email protected]: Folded in Steven Rostedt's build fix.] Signed-off-by: Al Cooper <[email protected]> Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] Patchwork: https://patchwork.linux-mips.org/patch/4806/ Patchwork: https://patchwork.linux-mips.org/patch/4841/ Signed-off-by: Ralf Baechle <[email protected]>
2013-01-21taint: add explicit flag to show whether lock dep is still OK.Rusty Russell1-1/+1
Fix up all callers as they were before, with make one change: an unsigned module taints the kernel, but doesn't turn off lockdep. Signed-off-by: Rusty Russell <[email protected]>
2013-01-16MIPS: vpe.c: Fix null pointer dereference in print arguments.Cong Ding1-1/+1
In the printk, the variable t euqals to NULL, so there is no t->index. Use v->tc->index instead. [[email protected]: Use opportunity of changing this line anyway to make this line whitespacely correct.] Signed-off-by: Cong Ding <[email protected]> Cc: [email protected] Cc: [email protected] Patchwork: https://patchwork.linux-mips.org/patch/4792/ Signed-off-by: Ralf Baechle <[email protected]>
2013-01-07Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linusLinus Torvalds13-48/+12
Pull MIPS fixes from Ralf Baechle: "Various fixes across the tree. The modpost error due to virt_addr_valid() not being usable from modules required a number of preparatory cleanups so a clean fix was possible." * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus: MIPS: 64-bit: Fix build if !CONFIG_MODULES MIPS: Wire up finit_module syscall. MIPS: Fix modpost error in modules attepting to use virt_addr_valid(). MIPS: page.h: Remove now unnecessary #ifndef __ASSEMBLY__ wrapper. MIPS: Switch remaining assembler PAGE_SIZE users to <asm/asm-offsets.h>. MIPS: Include PAGE_S{IZE,HIFT} in <asm/offset.h>. MIPS: Don't include <asm/page.h> unnecessarily. MIPS: Fix comment. Revert "MIPS: Optimise TLB handlers for MIPS32/64 R2 cores." MIPS: perf: Fix build failure in XLP perf support. MIPS: Alchemy: Make 32kHz and r4k timer coexist peacefully
2013-01-03MIPS: drivers: remove __dev* attributes.Greg Kroah-Hartman1-1/+1
CONFIG_HOTPLUG is going away as an option. As a result, the __dev* markings need to be removed. This change removes the use of __devinit, __devexit_p, __devinitdata, and __devexit from these drivers. Based on patches originally written by Bill Pemberton, but redone by me in order to handle some of the coding style issues better, by hand. Cc: Bill Pemberton <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2012-12-28MIPS: Wire up finit_module syscall.Ralf Baechle4-0/+4
Signed-off-by: Ralf Baechle <[email protected]>
2012-12-28MIPS: Switch remaining assembler PAGE_SIZE users to <asm/asm-offsets.h>.Ralf Baechle3-6/+5
Signed-off-by: Ralf Baechle <[email protected]>
2012-12-28MIPS: Include PAGE_S{IZE,HIFT} in <asm/offset.h>.Ralf Baechle1-0/+3
Signed-off-by: Ralf Baechle <[email protected]>
2012-12-28MIPS: Don't include <asm/page.h> unnecessarily.Ralf Baechle4-4/+0
So far we're jumping through hoops to keep the file usable from assembler source but it's getting just too painful. Turns out that many uses of <asm/page.h> are unnecessary anyway, so just remove those. Signed-off-by: Ralf Baechle <[email protected]>
2012-12-27MIPS: perf: Fix build failure in XLP perf support.Manuel Lauss1-38/+0
Commit 4be3d2f3966b9f010bb997dcab25e7af489a841e ("MIPS: perf: Add XLP support for hardware perf.") added UNSUPPORTED_PERF_EVENT_ID which was removed a while back. Cc: Zi Shen Lim <[email protected]> Cc: Jayachandran C <[email protected]> Cc: Linux-MIPS <[email protected]> Cc: John Crispin <[email protected]> Cc: Zi Shen Lim <[email protected]> Signed-off-by: Manuel Lauss <[email protected]> Acked-by: Jayachandran C <[email protected]> Patchwork: https://patchwork.linux-mips.org/patch/4730/ Signed-off-by: Ralf Baechle <[email protected]>
2012-12-27MIPS: sysmips: Rewrite to use SYSCALL_DEFINE3().Ralf Baechle1-12/+5
Thanks to current_pt_regs() there is no need to use the dark MIPS magic. Signed-off-by: Ralf Baechle <[email protected]>
2012-12-27MIPS: sysmips: Use unreachable().Ralf Baechle1-1/+1
Signed-off-by: Ralf Baechle <[email protected]>
2012-12-14Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linusLinus Torvalds16-139/+516
Pull MIPS updates from Ralf Baechle: "The MIPS bits for 3.8. This also includes a bunch fixes that were sitting in the linux-mips.org git tree for a long time. This pull request contains updates to several OCTEON drivers and the board support code for BCM47XX, BCM63XX, XLP, XLR, XLS, lantiq, Loongson1B, updates to the SSB bus support, MIPS kexec code and adds support for kdump. When pulling this, there are two expected merge conflicts in include/linux/bcma/bcma_driver_chipcommon.h which are trivial to resolve, just remove the conflict markers and keep both alternatives." * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus: (90 commits) MIPS: PMC-Sierra Yosemite: Remove support. VIDEO: Newport Fix console crashes MIPS: wrppmc: Fix build of PCI code. MIPS: IP22/IP28: Fix build of EISA code. MIPS: RB532: Fix build of prom code. MIPS: PowerTV: Fix build. MIPS: IP27: Correct fucked grammar in ops-bridge.c MIPS: Highmem: Fix build error if CONFIG_DEBUG_HIGHMEM is disabled MIPS: Fix potencial corruption MIPS: Fix for warning from FPU emulation code MIPS: Handle COP3 Unusable exception as COP1X for FP emulation MIPS: Fix poweroff failure when HOTPLUG_CPU configured. MIPS: MT: Fix build with CONFIG_UIDGID_STRICT_TYPE_CHECKS=y MIPS: Remove unused smvp.h MIPS/EDAC: Improve OCTEON EDAC support. MIPS: OCTEON: Add definitions for OCTEON memory contoller registers. MIPS: OCTEON: Add OCTEON family definitions to octeon-model.h ata: pata_octeon_cf: Use correct byte order for DMA in when built little-endian. MIPS/OCTEON/ata: Convert pata_octeon_cf.c to use device tree. MIPS: Remove usage of CEVT_R4K_LIB config option. ...
2012-12-13Merge branch 'mips-next' of http://dev.phrozen.org/githttp/mips-next into ↵Ralf Baechle1-0/+124
mips-for-linux-next
2012-12-13MIPS: PMC-Sierra Yosemite: Remove support.Ralf Baechle2-107/+0
Nobody seems to be interested anymore and upstream also never had an ethernet driver. Signed-off-by: Ralf Baechle <[email protected]>
2012-12-13MIPS: Handle COP3 Unusable exception as COP1X for FP emulationMaciej W. Rozycki1-3/+18
Our FP emulator is hardcoded for the MIPS IV FP instruction set and does not match the FP ISA with the general ISA. However for the few MIPS IV FP instructions that use the COP1X major opcode it relies on the Coprocessor Unusable exception to be delivered as a COP1 rather than COP3 exception. This includes indexed transfer (LDXC1, etc.) and FP multiply-accumulate (MADD.D, etc.) instructions. All the MIPS I, II, III and IV processors and some newer chips that do not implement the FPU use the COP3 exception however. Therefore I believe the kernel should follow and redirect any COP3 Unusable traps to the emulator unless an actual FPU part or core is present. This is a change that implements it. Any minor opcode encodings that are not recognised as valid FP instructions are rejected by the emulator and will result in a SIGILL signal being delivered as they currently do. We do not support vendor-specific coprocessor 3 implementations supported with MIPS I and MIPS II ISA processors; we never set CP0.Status.CU3. [Ralf: On MIPS IV processors the kernel always enables the XX bit which replaces the CU3 bit off earlier architecture revisions.] If matching between the CPU and the FPU ISA is considered required one day, this can still be done in the emulator itself. I think the CpU exception dispatcher is not the right place to do this anyway, as there are further differences between MIPS I, MIPS II, MIPS III, MIPS IV and MIPS32 FP ISAs. Corresponding explanation of this implementation is included within the change itself. Signed-off-by: Maciej W. Rozycki <[email protected]> Cc: [email protected] Patchwork: https://patchwork.linux-mips.org/project/linux-mips/list/ Signed-off-by: Ralf Baechle <[email protected]>
2012-12-13MIPS: Fix poweroff failure when HOTPLUG_CPU configured.Huacai Chen1-3/+1
When poweroff machine, kernel_power_off() call disable_nonboot_cpus(). And if we have HOTPLUG_CPU configured, disable_nonboot_cpus() is not an empty function but attempt to actually disable the nonboot cpus. Since system state is SYSTEM_POWER_OFF, play_dead() won't be called and thus disable_nonboot_cpus() hangs. Therefore, we make this patch to avoid poweroff failure. Signed-off-by: Huacai Chen <[email protected]> Signed-off-by: Hongliang Tao <[email protected]> Signed-off-by: Hua Yan <[email protected]> Cc: Yong Zhang <[email protected]> Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: Fuxin Zhang <[email protected]> Cc: Zhangjin Wu <[email protected]> Patchwork: https://patchwork.linux-mips.org/patch/4211/ Signed-off-by: Ralf Baechle <[email protected]>
2012-12-13MIPS: MT: Fix build with CONFIG_UIDGID_STRICT_TYPE_CHECKS=yFlorian Fainelli1-2/+2
When CONFIG_UIDGID_STRICT_TYPE_CHECKS is enabled, plain integer checking between different uids/gids is explicitely turned into a build failure by making the k{uid,gid}_t types a structure containing a value: arch/mips/kernel/mips-mt-fpaff.c: In function 'check_same_owner': arch/mips/kernel/mips-mt-fpaff.c:53:22: error: invalid operands to binary == (have 'kuid_t' and 'kuid_t') arch/mips/kernel/mips-mt-fpaff.c:54:15: error: invalid operands to binary == (have 'kuid_t' and 'kuid_t') In order to ensure proper comparison between uids, using the helper function uid_eq() which performs the right thing whenever this config option is turned on or off. Signed-off-by: Florian Fainelli <[email protected]> Patchwork: https://patchwork.linux-mips.org/patch/4717/ Signed-off-by: Ralf Baechle <[email protected]>
2012-12-13MIPS: Remove usage of CEVT_R4K_LIB config option.Ralf Baechle1-1/+1
Manuel Lauss <[email protected]> writes: I introduced it as a fallback because early revisions of Alchemy hardware we shipped had a non-functional 32kHz timer and had to rely on the r4k timer instead. Previously the r4k timer was initialized regardless, but it's useless with the "wait" instruction. So long story short: I need either the on-chip 32kHz timer OR the r4k timer if the 32kHz one is unusable, but not both, and r4k timer is useless when au1k_idle is in use. The current in-kernel Alchemy boards all work with the 32kHz timer, so I'm not against removing R4K_LIB symbols. Signed-off-by: Ralf Baechle <[email protected]>
2012-12-13MIPS: Remove usage of CSRC_R4K_LIB config option.Steven J. Hill1-1/+1
Manuel Lauss <[email protected]> writes: I introduced it as a fallback because early revisions of Alchemy hardware we shipped had a non-functional 32kHz timer and had to rely on the r4k timer instead. Previously the r4k timer was initialized regardless, but it's useless with the "wait" instruction. So long story short: I need either the on-chip 32kHz timer OR the r4k timer if the 32kHz one is unusable, but not both, and r4k timer is useless when au1k_idle is in use. The current in-kernel Alchemy boards all work with the 32kHz timer, so I'm not against removing R4K_LIB symbols. Signed-off-by: Steven J. Hill <[email protected]> Signed-off-by: Ralf Baechle <[email protected]>
2012-12-13MIPS: Octeon: Add kexec and kdump supportRalf Baechle2-2/+19
[[email protected]: Original patch by Maxim Uvarov <[email protected]> with plenty of further shining, polishing, debugging and testing by me.] Signed-off-by: Maxim Uvarov <[email protected]> Cc: [email protected] Cc: [email protected] Cc: [email protected] Patchwork: https://patchwork.linux-mips.org/patch/1026/ Signed-off-by: Ralf Baechle <[email protected]>
2012-12-13MIPS: kdump: Add supportRalf Baechle8-6/+343
[[email protected]: Original patch by Maxim Uvarov <[email protected]> with plenty of further shining, polishing, debugging and testing by me.] Signed-off-by: Maxim Uvarov <[email protected]> Cc: [email protected] Cc: [email protected] Cc: [email protected] Patchwork: https://patchwork.linux-mips.org/patch/1025/ Signed-off-by: Ralf Baechle <[email protected]>
2012-12-12Merge branch 'for-linus' of ↵Linus Torvalds7-122/+34
git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal Pull big execve/kernel_thread/fork unification series from Al Viro: "All architectures are converted to new model. Quite a bit of that stuff is actually shared with architecture trees; in such cases it's literally shared branch pulled by both, not a cherry-pick. A lot of ugliness and black magic is gone (-3KLoC total in this one): - kernel_thread()/kernel_execve()/sys_execve() redesign. We don't do syscalls from kernel anymore for either kernel_thread() or kernel_execve(): kernel_thread() is essentially clone(2) with callback run before we return to userland, the callbacks either never return or do successful do_execve() before returning. kernel_execve() is a wrapper for do_execve() - it doesn't need to do transition to user mode anymore. As a result kernel_thread() and kernel_execve() are arch-independent now - they live in kernel/fork.c and fs/exec.c resp. sys_execve() is also in fs/exec.c and it's completely architecture-independent. - daemonize() is gone, along with its parts in fs/*.c - struct pt_regs * is no longer passed to do_fork/copy_process/ copy_thread/do_execve/search_binary_handler/->load_binary/do_coredump. - sys_fork()/sys_vfork()/sys_clone() unified; some architectures still need wrappers (ones with callee-saved registers not saved in pt_regs on syscall entry), but the main part of those suckers is in kernel/fork.c now." * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal: (113 commits) do_coredump(): get rid of pt_regs argument print_fatal_signal(): get rid of pt_regs argument ptrace_signal(): get rid of unused arguments get rid of ptrace_signal_deliver() arguments new helper: signal_pt_regs() unify default ptrace_signal_deliver flagday: kill pt_regs argument of do_fork() death to idle_regs() don't pass regs to copy_process() flagday: don't pass regs to copy_thread() bfin: switch to generic vfork, get rid of pointless wrappers xtensa: switch to generic clone() openrisc: switch to use of generic fork and clone unicore32: switch to generic clone(2) score: switch to generic fork/vfork/clone c6x: sanitize copy_thread(), get rid of clone(2) wrapper, switch to generic clone() take sys_fork/sys_vfork/sys_clone prototypes to linux/syscalls.h mn10300: switch to generic fork/vfork/clone h8300: switch to generic fork/vfork/clone tile: switch to generic clone() ... Conflicts: arch/microblaze/include/asm/Kbuild
2012-12-12MIPS: Fix harmlessly missing else statement.Ralf Baechle1-5/+8
The actual bug is a missing else statement - but really this should be expressed using a switch() statement. Found by Al Viro who writes "the funny thing is, it *does* work only because r2 is syscall number and syscall number around 512 => return value being ENOSYS and not one of ERESTART... so we really can't hit the first if and emerge from it with ERESTART_RESTARTBLOCK. still wrong to write it that way..." Signed-off-by: Ralf Baechle <[email protected]>
2012-12-12MIPS: Remove leftovers from the IRIX binary compat code.Ralf Baechle1-4/+0
2957c9e61ee9c37e7ebf2c8acab03e073fe942fd (kernel.org) rsp. b934da913f236bca00c41d9e386e980586000461 (lmo) [[MIPS] IRIX: Goodbye and thanks for all the fish] left two fields in struct thread_struct which were only being used for the IRIX compat code. Remove them. Signed-off-by: Ralf Baechle <[email protected]>