Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
linux
Commits
3a8fb256
Commit
3a8fb256
authored
Sep 29, 2002
by
Russell King
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[ARM] 2.5.34 update
Update for changes in mainline 2.5.3[01234].
parent
82e48db0
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
63 additions
and
22 deletions
+63
-22
arch/arm/kernel/armksyms.c
arch/arm/kernel/armksyms.c
+0
-4
arch/arm/kernel/init_task.c
arch/arm/kernel/init_task.c
+1
-1
arch/arm/kernel/setup.c
arch/arm/kernel/setup.c
+0
-4
arch/arm/kernel/signal.c
arch/arm/kernel/signal.c
+21
-10
arch/arm/kernel/sys_arm.c
arch/arm/kernel/sys_arm.c
+12
-3
arch/arm/mach-rpc/riscpc.c
arch/arm/mach-rpc/riscpc.c
+6
-0
include/asm-arm/cache.h
include/asm-arm/cache.h
+2
-0
include/asm-arm/ide.h
include/asm-arm/ide.h
+14
-0
include/asm-arm/system.h
include/asm-arm/system.h
+7
-0
No files found.
arch/arm/kernel/armksyms.c
View file @
3a8fb256
...
...
@@ -275,7 +275,3 @@ EXPORT_SYMBOL_NOVERS(__down_trylock_failed);
EXPORT_SYMBOL_NOVERS
(
__up_wakeup
);
EXPORT_SYMBOL
(
get_wchan
);
#ifdef CONFIG_PREEMPT
EXPORT_SYMBOL
(
kernel_flag
);
#endif
arch/arm/kernel/init_task.c
View file @
3a8fb256
...
...
@@ -12,7 +12,7 @@
static
struct
fs_struct
init_fs
=
INIT_FS
;
static
struct
files_struct
init_files
=
INIT_FILES
;
static
struct
signal_struct
init_signals
=
INIT_SIGNALS
;
static
struct
signal_struct
init_signals
=
INIT_SIGNALS
(
init_signals
)
;
struct
mm_struct
init_mm
=
INIT_MM
(
init_mm
);
/*
...
...
arch/arm/kernel/setup.c
View file @
3a8fb256
...
...
@@ -36,10 +36,6 @@
#define MEM_SIZE (16*1024*1024)
#endif
#ifdef CONFIG_PREEMPT
spinlock_t
kernel_flag
__cacheline_aligned_in_smp
=
SPIN_LOCK_UNLOCKED
;
#endif
#if defined(CONFIG_FPE_NWFPE) || defined(CONFIG_FPE_FASTFPE)
char
fpe_type
[
8
];
...
...
arch/arm/kernel/signal.c
View file @
3a8fb256
...
...
@@ -373,7 +373,7 @@ setup_return(struct pt_regs *regs, struct k_sigaction *ka,
regs
->
ARM_r0
=
usig
;
regs
->
ARM_sp
=
(
unsigned
long
)
frame
;
regs
->
ARM_lr
=
retcode
;
regs
->
ARM_pc
=
handler
&
(
thumb
?
~
1
:
~
3
)
;
regs
->
ARM_pc
=
handler
;
#ifdef CONFIG_CPU_32
regs
->
ARM_cpsr
=
cpsr
;
...
...
@@ -503,7 +503,6 @@ handle_signal(unsigned long sig, struct k_sigaction *ka,
*/
static
int
do_signal
(
sigset_t
*
oldset
,
struct
pt_regs
*
regs
,
int
syscall
)
{
struct
k_sigaction
*
ka
;
siginfo_t
info
;
int
single_stepping
;
...
...
@@ -519,11 +518,22 @@ static int do_signal(sigset_t *oldset, struct pt_regs *regs, int syscall)
single_stepping
=
ptrace_cancel_bpt
(
current
);
for
(;;)
{
unsigned
long
signr
;
spin_lock_irq
(
&
current
->
sigmask_lock
);
signr
=
dequeue_signal
(
&
current
->
blocked
,
&
info
);
spin_unlock_irq
(
&
current
->
sigmask_lock
);
unsigned
long
signr
=
0
;
struct
k_sigaction
*
ka
;
sigset_t
*
mask
=
&
current
->
blocked
;
local_irq_disable
();
if
(
current
->
sig
->
shared_pending
.
head
)
{
spin_lock
(
&
current
->
sig
->
siglock
);
signr
=
dequeue_signal
(
&
current
->
sig
->
shared_pending
,
mask
,
&
info
);
spin_unlock
(
&
current
->
sig
->
siglock
);
}
if
(
!
signr
)
{
spin_lock
(
&
current
->
sigmask_lock
);
signr
=
dequeue_signal
(
&
current
->
pending
,
mask
,
&
info
);
spin_unlock
(
&
current
->
sigmask_lock
);
}
local_irq_enable
();
if
(
!
signr
)
break
;
...
...
@@ -531,13 +541,14 @@ static int do_signal(sigset_t *oldset, struct pt_regs *regs, int syscall)
if
((
current
->
ptrace
&
PT_PTRACED
)
&&
signr
!=
SIGKILL
)
{
/* Let the debugger run. */
current
->
exit_code
=
signr
;
current
->
state
=
TASK_STOPPED
;
set_current_state
(
TASK_STOPPED
)
;
notify_parent
(
current
,
SIGCHLD
);
schedule
();
single_stepping
|=
ptrace_cancel_bpt
(
current
);
/* We're back. Did the debugger cancel the sig? */
if
(
!
(
signr
=
current
->
exit_code
))
signr
=
current
->
exit_code
;
if
(
signr
==
0
)
continue
;
current
->
exit_code
=
0
;
...
...
@@ -589,7 +600,7 @@ static int do_signal(sigset_t *oldset, struct pt_regs *regs, int syscall)
case
SIGSTOP
:
{
struct
signal_struct
*
sig
;
current
->
state
=
TASK_STOPPED
;
set_current_state
(
TASK_STOPPED
)
;
current
->
exit_code
=
signr
;
sig
=
current
->
parent
->
sig
;
if
(
sig
&&
!
(
sig
->
action
[
SIGCHLD
-
1
].
sa
.
sa_flags
&
SA_NOCLDSTOP
))
...
...
arch/arm/kernel/sys_arm.c
View file @
3a8fb256
...
...
@@ -239,7 +239,7 @@ asmlinkage int sys_ipc (uint call, int first, int second, int third, void *ptr,
asmlinkage
int
sys_fork
(
struct
pt_regs
*
regs
)
{
struct
task_struct
*
p
;
p
=
do_fork
(
SIGCHLD
,
regs
->
ARM_sp
,
regs
,
0
);
p
=
do_fork
(
SIGCHLD
,
regs
->
ARM_sp
,
regs
,
0
,
NULL
);
return
IS_ERR
(
p
)
?
PTR_ERR
(
p
)
:
p
->
pid
;
}
...
...
@@ -249,16 +249,25 @@ asmlinkage int sys_fork(struct pt_regs *regs)
asmlinkage
int
sys_clone
(
unsigned
long
clone_flags
,
unsigned
long
newsp
,
struct
pt_regs
*
regs
)
{
struct
task_struct
*
p
;
/*
* We don't support SETTID / CLEARTID
*/
if
(
clone_flags
&
(
CLONE_SETTID
|
CLONE_CLEARTID
))
return
-
EINVAL
;
if
(
!
newsp
)
newsp
=
regs
->
ARM_sp
;
p
=
do_fork
(
clone_flags
&
~
CLONE_IDLETASK
,
newsp
,
regs
,
0
);
p
=
do_fork
(
clone_flags
&
~
CLONE_IDLETASK
,
newsp
,
regs
,
0
,
NULL
);
return
IS_ERR
(
p
)
?
PTR_ERR
(
p
)
:
p
->
pid
;
}
asmlinkage
int
sys_vfork
(
struct
pt_regs
*
regs
)
{
struct
task_struct
*
p
;
p
=
do_fork
(
CLONE_VFORK
|
CLONE_VM
|
SIGCHLD
,
regs
->
ARM_sp
,
regs
,
0
);
p
=
do_fork
(
CLONE_VFORK
|
CLONE_VM
|
SIGCHLD
,
regs
->
ARM_sp
,
regs
,
0
,
NULL
);
return
IS_ERR
(
p
)
?
PTR_ERR
(
p
)
:
p
->
pid
;
}
...
...
arch/arm/mach-rpc/riscpc.c
View file @
3a8fb256
...
...
@@ -16,6 +16,7 @@
#include <linux/init.h>
#include <asm/elf.h>
#include <asm/io.h>
#include <asm/setup.h>
#include <asm/mach-types.h>
#include <asm/hardware.h>
...
...
@@ -71,6 +72,11 @@ void __init rpc_map_io(void)
{
iotable_init
(
rpc_io_desc
,
ARRAY_SIZE
(
rpc_io_desc
));
/*
* Turn off floppy.
*/
outb
(
0xc
,
0x3f2
);
/*
* RiscPC can't handle half-word loads and stores
*/
...
...
include/asm-arm/cache.h
View file @
3a8fb256
...
...
@@ -16,4 +16,6 @@
__section__(".data.cacheline_aligned")))
#endif
#define L1_CACHE_SHIFT_MAX 5
/* largest L1 which this arch supports */
#endif
include/asm-arm/ide.h
View file @
3a8fb256
...
...
@@ -26,6 +26,20 @@
#define ide_default_io_base(i) ((ide_ioreg_t)0)
#define ide_default_irq(b) (0)
#define ide_request_irq(irq,hand,flg,dev,id) request_irq((irq),(hand),(flg),(dev),(id))
#define ide_free_irq(irq,dev_id) free_irq((irq), (dev_id))
#define ide_check_region(from,extent) check_region((from), (extent))
#define ide_request_region(from,extent,name) request_region((from), (extent), (name))
#define ide_release_region(from,extent) release_region((from), (extent))
/*
* The following are not needed for the non-m68k ports
*/
#define ide_ack_intr(hwif) (1)
#define ide_fix_driveid(id) do {} while (0)
#define ide_release_lock(lock) do {} while (0)
#define ide_get_lock(lock, hdlr, data) do {} while (0)
#endif
/* __KERNEL__ */
#endif
/* __ASMARM_IDE_H */
include/asm-arm/system.h
View file @
3a8fb256
...
...
@@ -86,6 +86,13 @@ extern struct task_struct *__switch_to(struct thread_info *, struct thread_info
#define clf() __clf()
#define stf() __stf()
#define irqs_disabled() \
({ \
unsigned long flags; \
local_save_flags(flags); \
flags & PSR_I_BIT; \
})
#endif
/* CONFIG_SMP */
#endif
/* __KERNEL__ */
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment