15 Jul, 2013
1 commit
-
The __cpuinit type of throwaway sections might have made sense
some time ago when RAM was more constrained, but now the savings
do not offset the cost and complications. For example, the fix in
commit 5e427ec2d0 ("x86: Fix bit corruption at CPU resume time")
is a good example of the nasty type of bugs that can be created
with improper use of the various __init prefixes.After a discussion on LKML[1] it was decided that cpuinit should go
the way of devinit and be phased out. Once all the users are gone,
we can then finally remove the macros themselves from linux/init.h.Note that some harmless section mismatch warnings may result, since
notify_cpu_starting() and cpu_up() are arch independent (kernel/cpu.c)
are flagged as __cpuinit -- so if we remove the __cpuinit from
arch specific callers, we will also get section mismatch warnings.
As an intermediate step, we intend to turn the linux/init.h cpuinit
content into no-ops as early as possible, since that will get rid
of these warnings. In any case, they are temporary and harmless.This removes all the arch/frv uses of the __cpuinit macros from
all C files. Currently frv does not have any __CPUINIT used in
assembly files.[1] https://lkml.org/lkml/2013/5/20/589
Cc: David Howells
Signed-off-by: Paul Gortmaker
05 Jul, 2013
1 commit
-
Pull trivial tree updates from Jiri Kosina:
"The usual stuff from trivial tree"* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (34 commits)
treewide: relase -> release
Documentation/cgroups/memory.txt: fix stat file documentation
sysctl/net.txt: delete reference to obsolete 2.4.x kernel
spinlock_api_smp.h: fix preprocessor comments
treewide: Fix typo in printk
doc: device tree: clarify stuff in usage-model.txt.
open firmware: "/aliasas" -> "/aliases"
md: bcache: Fixed a typo with the word 'arithmetic'
irq/generic-chip: fix a few kernel-doc entries
frv: Convert use of typedef ctl_table to struct ctl_table
sgi: xpc: Convert use of typedef ctl_table to struct ctl_table
doc: clk: Fix incorrect wording
Documentation/arm/IXP4xx fix a typo
Documentation/networking/ieee802154 fix a typo
Documentation/DocBook/media/v4l fix a typo
Documentation/video4linux/si476x.txt fix a typo
Documentation/virtual/kvm/api.txt fix a typo
Documentation/early-userspace/README fix a typo
Documentation/video4linux/soc-camera.txt fix a typo
lguest: fix CONFIG_PAE -> CONFIG_x86_PAE in comment
...
04 Jul, 2013
4 commits
-
Merge first patch-bomb from Andrew Morton:
- various misc bits
- I'm been patchmonkeying ocfs2 for a while, as Joel and Mark have been
distracted. There has been quite a bit of activity.
- About half the MM queue
- Some backlight bits
- Various lib/ updates
- checkpatch updates
- zillions more little rtc patches
- ptrace
- signals
- exec
- procfs
- rapidio
- nbd
- aoe
- pps
- memstick
- tools/testing/selftests updates* emailed patches from Andrew Morton : (445 commits)
tools/testing/selftests: don't assume the x bit is set on scripts
selftests: add .gitignore for kcmp
selftests: fix clean target in kcmp Makefile
selftests: add .gitignore for vm
selftests: add hugetlbfstest
self-test: fix make clean
selftests: exit 1 on failure
kernel/resource.c: remove the unneeded assignment in function __find_resource
aio: fix wrong comment in aio_complete()
drivers/w1/slaves/w1_ds2408.c: add magic sequence to disable P0 test mode
drivers/memstick/host/r592.c: convert to module_pci_driver
drivers/memstick/host/jmb38x_ms: convert to module_pci_driver
pps-gpio: add device-tree binding and support
drivers/pps/clients/pps-gpio.c: convert to module_platform_driver
drivers/pps/clients/pps-gpio.c: convert to devm_* helpers
drivers/parport/share.c: use kzalloc
Documentation/accounting/getdelays.c: avoid strncpy in accounting tool
aoe: update internal version number to v83
aoe: update copyright date
aoe: perform I/O completions in parallel
... -
'cmdline' is a NUL terminated string, when its length < 4, memcmp()
will cause memory access out of boundary.So use strncmp() instead of memcmp().
Signed-off-by: Chen Gang
Cc: David Howells
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
Since die_if_kernel() is an extern common used function, better always
check the buffer length to avoid memory overflow by a long 'str'.Signed-off-by: Chen Gang
Cc: David Howells
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
Prepare for removing num_physpages and simplify mem_init().
Signed-off-by: Jiang Liu
Cc: David Howells
Cc: Andi Kleen
Cc: Geert Uytterhoeven
Cc: Greg Kroah-Hartman
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
16 Jun, 2013
1 commit
-
The commented-out calls to processor_init() and unit_init() seem to have
been copied from mn10300, when starting the frv port. Remove them.Signed-off-by: Geert Uytterhoeven
14 Jun, 2013
1 commit
-
This typedef is unnecessary and should just be removed.
Signed-off-by: Joe Perches
Acked-by: David Howells
Signed-off-by: Jiri Kosina
01 May, 2013
2 commits
-
show_regs() is inherently arch-dependent but it does make sense to print
generic debug information and some archs already do albeit in slightly
different forms. This patch introduces a generic function to print debug
information from show_regs() so that different archs print out the same
information and it's much easier to modify what's printed.show_regs_print_info() prints out the same debug info as dump_stack()
does plus task and thread_info pointers.* Archs which didn't print debug info now do.
alpha, arc, blackfin, c6x, cris, frv, h8300, hexagon, ia64, m32r,
metag, microblaze, mn10300, openrisc, parisc, score, sh64, sparc,
um, xtensa* Already prints debug info. Replaced with show_regs_print_info().
The printed information is superset of what used to be there.arm, arm64, avr32, mips, powerpc, sh32, tile, unicore32, x86
* s390 is special in that it used to print arch-specific information
along with generic debug info. Heiko and Martin think that the
arch-specific extra isn't worth keeping s390 specfic implementation.
Converted to use the generic version.Note that now all archs print the debug info before actual register
dumps.An example BUG() dump follows.
kernel BUG at /work/os/work/kernel/workqueue.c:4841!
invalid opcode: 0000 [#1] PREEMPT SMP DEBUG_PAGEALLOC
Modules linked in:
CPU: 0 PID: 1 Comm: swapper/0 Not tainted 3.9.0-rc1-work+ #7
Hardware name: empty empty/S3992, BIOS 080011 10/26/2007
task: ffff88007c85e040 ti: ffff88007c860000 task.ti: ffff88007c860000
RIP: 0010:[] [] init_workqueues+0x4/0x6
RSP: 0000:ffff88007c861ec8 EFLAGS: 00010246
RAX: ffff88007c861fd8 RBX: ffffffff824466a8 RCX: 0000000000000001
RDX: 0000000000000046 RSI: 0000000000000001 RDI: ffffffff8234a07a
RBP: ffff88007c861ec8 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000001 R11: 0000000000000000 R12: ffffffff8234a07a
R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000
FS: 0000000000000000(0000) GS:ffff88007dc00000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
CR2: ffff88015f7ff000 CR3: 00000000021f1000 CR4: 00000000000007f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
Stack:
ffff88007c861ef8 ffffffff81000312 ffffffff824466a8 ffff88007c85e650
0000000000000003 0000000000000000 ffff88007c861f38 ffffffff82335e5d
ffff88007c862080 ffffffff8223d8c0 ffff88007c862080 ffffffff81c47760
Call Trace:
[] do_one_initcall+0x122/0x170
[] kernel_init_freeable+0x9b/0x1c8
[] ? rest_init+0x140/0x140
[] kernel_init+0xe/0xf0
[] ret_from_fork+0x7c/0xb0
[] ? rest_init+0x140/0x140
...v2: Typo fix in x86-32.
v3: CPU number dropped from show_regs_print_info() as
dump_stack_print_info() has been updated to print it. s390
specific implementation dropped as requested by s390 maintainers.Signed-off-by: Tejun Heo
Acked-by: David S. Miller
Acked-by: Jesper Nilsson
Cc: Heiko Carstens
Cc: Martin Schwidefsky
Cc: Bjorn Helgaas
Cc: Fengguang Wu
Cc: Mike Frysinger
Cc: Vineet Gupta
Cc: Sam Ravnborg
Acked-by: Chris Metcalf [tile bits]
Acked-by: Richard Kuo [hexagon bits]
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
Both dump_stack() and show_stack() are currently implemented by each
architecture. show_stack(NULL, NULL) dumps the backtrace for the
current task as does dump_stack(). On some archs, dump_stack() prints
extra information - pid, utsname and so on - in addition to the
backtrace while the two are identical on other archs.The usages in arch-independent code of the two functions indicate
show_stack(NULL, NULL) should print out bare backtrace while
dump_stack() is used for debugging purposes when something went wrong,
so it does make sense to print additional information on the task which
triggered dump_stack().There's no reason to require archs to implement two separate but mostly
identical functions. It leads to unnecessary subtle information.This patch expands the dummy fallback dump_stack() implementation in
lib/dump_stack.c such that it prints out debug information (taken from
x86) and invokes show_stack(NULL, NULL) and drops arch-specific
dump_stack() implementations in all archs except blackfin. Blackfin's
dump_stack() does something wonky that I don't understand.Debug information can be printed separately by calling
dump_stack_print_info() so that arch-specific dump_stack()
implementation can still emit the same debug information. This is used
in blackfin.This patch brings the following behavior changes.
* On some archs, an extra level in backtrace for show_stack() could be
printed. This is because the top frame was determined in
dump_stack() on those archs while generic dump_stack() can't do that
reliably. It can be compensated by inlining dump_stack() but not
sure whether that'd be necessary.* Most archs didn't use to print debug info on dump_stack(). They do
now.An example WARN dump follows.
WARNING: at kernel/workqueue.c:4841 init_workqueues+0x35/0x505()
Hardware name: empty
Modules linked in:
CPU: 0 PID: 1 Comm: swapper/0 Not tainted 3.9.0-rc1-work+ #9
0000000000000009 ffff88007c861e08 ffffffff81c614dc ffff88007c861e48
ffffffff8108f50f ffffffff82228240 0000000000000040 ffffffff8234a03c
0000000000000000 0000000000000000 0000000000000000 ffff88007c861e58
Call Trace:
[] dump_stack+0x19/0x1b
[] warn_slowpath_common+0x7f/0xc0
[] warn_slowpath_null+0x1a/0x20
[] init_workqueues+0x35/0x505
...v2: CPU number added to the generic debug info as requested by s390
folks and dropped the s390 specific dump_stack(). This loses %ksp
from the debug message which the maintainers think isn't important
enough to keep the s390-specific dump_stack() implementation.dump_stack_print_info() is moved to kernel/printk.c from
lib/dump_stack.c. Because linkage is per objecct file,
dump_stack_print_info() living in the same lib file as generic
dump_stack() means that archs which implement custom dump_stack()
- at this point, only blackfin - can't use dump_stack_print_info()
as that will bring in the generic version of dump_stack() too. v1
The v1 patch broke build on blackfin due to this issue. The build
breakage was reported by Fengguang Wu.Signed-off-by: Tejun Heo
Acked-by: David S. Miller
Acked-by: Vineet Gupta
Acked-by: Jesper Nilsson
Acked-by: Vineet Gupta
Acked-by: Martin Schwidefsky [s390 bits]
Cc: Heiko Carstens
Cc: Mike Frysinger
Cc: Fengguang Wu
Cc: Bjorn Helgaas
Cc: Sam Ravnborg
Acked-by: Richard Kuo [hexagon bits]
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
08 Apr, 2013
1 commit
-
Signed-off-by: Thomas Gleixner
Cc: Linus Torvalds
Cc: Rusty Russell
Cc: Paul McKenney
Cc: Peter Zijlstra
Reviewed-by: Cc: Srivatsa S. Bhat
Cc: Magnus Damm
Cc: David Howells
Link: http://lkml.kernel.org/r/20130321215234.217235264@linutronix.de
Signed-off-by: Thomas Gleixner
04 Feb, 2013
3 commits
-
Signed-off-by: Al Viro
-
Signed-off-by: Al Viro
-
Signed-off-by: Al Viro
04 Jan, 2013
1 commit
-
This fixes up all of the smaller arches that had __dev* markings for
their platform-specific drivers.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,
__devinitconst, 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
Cc: Peter Zijlstra
Cc: Paul Mackerras
Cc: Ingo Molnar
Cc: Arnaldo Carvalho de Melo
Cc: Catalin Marinas
Cc: Will Deacon
Cc: Haavard Skinnemoen
Cc: Hans-Christian Egtvedt
Cc: Mike Frysinger
Cc: Mikael Starvik
Cc: Jesper Nilsson
Cc: David Howells
Cc: Hirokazu Takata
Cc: Geert Uytterhoeven
Cc: Michal Simek
Cc: Koichi Yasutake
Cc: Jonas Bonn
Cc: "James E.J. Bottomley"
Cc: Helge Deller
Cc: Martin Schwidefsky
Cc: Heiko Carstens
Cc: Chen Liqin
Cc: Lennox Wu
Cc: Paul Mundt
Cc: Chris Metcalf
Cc: Guan Xuetao
Cc: Bob Liu
Cc: Srinivas Kandagatla
Cc: Bjorn Helgaas
Cc: Myron Stowe
Cc: Thomas Gleixner
Cc: Andrew Morton
Cc: Andi Kleen
Cc: Jesse Barnes
Cc: Sebastian Andrzej Siewior
Cc: Yinghai Lu
Cc: Thierry Reding
Cc: Greg Ungerer
Cc: Grant Likely
Cc: "Srivatsa S. Bhat"
Cc: Mark Salter
Cc: Yong Zhang
Cc: Michael Holzheu
Cc: Cornelia Huck
Cc: Jan Glauber
Cc: Wei Yongjun
Cc: Nobuhiro Iwamatsu
Signed-off-by: Greg Kroah-Hartman
18 Dec, 2012
2 commits
-
- Remove the superfluous address-of ('&') operators,
- Remove the unneeded casts, use %p to format pointers instead.Signed-off-by: Geert Uytterhoeven
Cc: David Howells
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
Nowadays it should probably use __bss_start and __bss_stop
Signed-off-by: Geert Uytterhoeven
Cc: David Howells
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
29 Nov, 2012
2 commits
-
Signed-off-by: Al Viro
-
Signed-off-by: Al Viro
03 Nov, 2012
2 commits
-
Just get %icc2 into the state we would have after local_irq_disable()
and physical IRQ having happened since then. Then we can simply
use preempt_schedule_irq() and be done with the whole mess.Acked-by: David Howells
Signed-off-by: Al Viro -
Signed-off-by: Al Viro
02 Nov, 2012
2 commits
-
The kernel_thread() changes for FRV don't work, and FRV fails to boot,
starting with:commit 02ce496f152df87be081a64796498942c433a2fd
Author: Al Viro
Date: Tue Sep 18 22:18:51 2012 -0400
Subject: frv: split ret_from_fork, simplify kernel_thread() a lotThe problem is that the userspace registers are completely cleared when a
kernel thread is created and all subsequent user threads are then copied from
that. Unfortunately, however, the TBR and PSR registers are restored from the
pt_regs and the values they should be set to are clobbered by the memset.Instead, copy across the old user registers as normal, and then merely alter
GR8 and GR9 in it if we're going to execute a kernel thread.Signed-off-by: David Howells
-
Fix the preemption handling in FRV code where the PREEMPT_ACTIVE value is
incorrectly loaded into the threadinfo flags rather than the threadinfo
preemption count.Unfortunately, the code cannot be simply converted to use
preempt_schedule_irq() as is because FRV uses virtual interrupt disablement to
cut down on the cost of actually disabling interrupts and thus
local_irq_enable() doesn't actually enable interrupts.Reported-by: Al Viro
Signed-off-by: David Howells
cc: Al Viro
17 Oct, 2012
3 commits
-
Add __pminitconst to fix the build, otherwise the following error can occur:
arch/frv/kernel/setup.c:187:47: error: expected '=', ',', ';', 'asm' or '__attribute__' before '*' token
arch/frv/kernel/setup.c:386:2: error: 'clock_cmodes' undeclared (first use in this function)
arch/frv/kernel/setup.c:571:6: error: 'clock_cmodes' undeclared (first use in this function)
make[2]: *** [arch/frv/kernel/setup.o] Error 1http://kisskb.ellerman.id.au/kisskb/buildresult/7344691/
Reported-by: Geert Uytterhoeven
Signed-off-by: Andi Kleen
Signed-off-by: David Howells
cc: Geert Uytterhoeven
Signed-off-by: Linus Torvalds -
Fix an incorrect symbol in copy_thread():
arch/frv/kernel/process.c: In function 'copy_thread':
arch/frv/kernel/process.c:197: error: 'chilregs' undeclared (first use in this function)
arch/frv/kernel/process.c:197: error: (Each undeclared identifier is reported only once
arch/frv/kernel/process.c:197: error: for each function it appears in.)Reported-by: Geert Uytterhoeven
Signed-off-by: David Howells
Acked-by: Al Viro
cc: Geert Uytterhoeven
Signed-off-by: Linus Torvalds -
Fix VLIW packing constraint violation in entry.S:
arch/frv/kernel/entry.S: Assembler messages:
arch/frv/kernel/entry.S:871: Error: VLIW packing constraint violationWhen packing CALLL with OR, CALLL must go in the first slot. The
instructions are executed simultaneously, so it doesn't matter which way
round they're packed from that point of view.Signed-off-by: David Howells
Acked-by: Al Viro
Signed-off-by: Linus Torvalds
12 Oct, 2012
1 commit
-
Pull pile 2 of execve and kernel_thread unification work from Al Viro:
"Stuff in there: kernel_thread/kernel_execve/sys_execve conversions for
several more architectures plus assorted signal fixes and cleanups.There'll be more (in particular, real fixes for the alpha
do_notify_resume() irq mess)..."* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal: (43 commits)
alpha: don't open-code trace_report_syscall_{enter,exit}
Uninclude linux/freezer.h
m32r: trim masks
avr32: trim masks
tile: don't bother with SIGTRAP in setup_frame
microblaze: don't bother with SIGTRAP in setup_rt_frame()
mn10300: don't bother with SIGTRAP in setup_frame()
frv: no need to raise SIGTRAP in setup_frame()
x86: get rid of duplicate code in case of CONFIG_VM86
unicore32: remove pointless test
h8300: trim _TIF_WORK_MASK
parisc: decide whether to go to slow path (tracesys) based on thread flags
parisc: don't bother looping in do_signal()
parisc: fix double restarts
bury the rest of TIF_IRET
sanitize tsk_is_polling()
bury _TIF_RESTORE_SIGMASK
unicore32: unobfuscate _TIF_WORK_MASK
mips: NOTIFY_RESUME is not needed in TIF masks
mips: merge the identical "return from syscall" per-ABI code
...Conflicts:
arch/arm/include/asm/thread_info.h
06 Oct, 2012
2 commits
-
Commit 6afe1a1fe8ff ("PM: Remove legacy PM") removed the initialization
of retval, causing:arch/frv/kernel/pm.c: In function 'sysctl_pm_do_suspend':
arch/frv/kernel/pm.c:165:5: warning: 'retval' may be used uninitialized in this function [-Wuninitialized]Remove the variable completely to fix this, and convert to a proper
switch (...) { ... } construct to improve readability.Signed-off-by: Geert Uytterhoeven
Cc: David Howells
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
Signed-off-by: Andi Kleen
Cc: David Howells
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
01 Oct, 2012
6 commits
-
This include is no longer needed.
(seems to be a leftover from try_to_freeze())Signed-off-by: Richard Weinberger
Signed-off-by: Al Viro -
signal_delivered() will do it in the same case...
Signed-off-by: Al Viro
-
Acked-by: David Howells
Signed-off-by: Al Viro -
current_pt_regs() here is simply __frame
Acked-by: David Howells
Signed-off-by: Al Viro -
Acked-by: David Howells
Signed-off-by: Al Viro
23 Sep, 2012
1 commit
-
In the old times, the whole idle task was considered
as an RCU quiescent state. But as RCU became more and
more successful overtime, some RCU read side critical
section have been added even in the code of some
architectures idle tasks, for tracing for example.So nowadays, rcu_idle_enter() and rcu_idle_exit() must
be called by the architecture to tell RCU about the part
in the idle loop that doesn't make use of rcu read side
critical sections, typically the part that puts the CPU
in low power mode.This is necessary for RCU to find the quiescent states in
idle in order to complete grace periods.Add this missing pair of calls in the Frv's idle loop.
Reported-by: Paul E. McKenney
Signed-off-by: Frederic Weisbecker
Cc: David Howells
Cc: # 3.3+
Acked-by: David Howells
Reviewed-by: Josh Triplett
31 Jul, 2012
1 commit
-
Add #include so that the #define KERN_ macros
don't have to be duplicated.Signed-off-by: Joe Perches
Cc: Kay Sievers
Cc: Russell King
Cc: Kay Sievers
Acked-by: David Howells
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
02 Jun, 2012
3 commits
-
Introduced by commit 6fd84c0831ec78d98736b76dc5e9b849f1dbfc9e
("TIF_RESTORE_SIGMASK can be set only when TIF_SIGPENDING is set")Signed-off-by: Geert Uytterhoeven
Signed-off-by: Al Viro -
Optimise the system call exit path in entry.S by packing some instructions.
Suggested-by: Al Viro
Signed-off-by: David Howells
Signed-off-by: Al Viro -
Shrink TIF_WORK_MASK so that it will fit in the 12-bit signed immediate
operand field of an ANDI instruction.Suggested-by: Al Viro
Signed-off-by: David Howells
Signed-off-by: Al Viro