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
Kirill Smelkov
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