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
62351cc3
Commit
62351cc3
authored
Jun 30, 2005
by
Linus Torvalds
Browse files
Options
Browse Files
Download
Plain Diff
Merge master.kernel.org:/home/rmk/linux-2.6-arm
parents
d471cd47
747aead3
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
53 additions
and
72 deletions
+53
-72
arch/arm/Makefile
arch/arm/Makefile
+1
-1
arch/arm/kernel/traps.c
arch/arm/kernel/traps.c
+2
-10
arch/arm/mm/fault.c
arch/arm/mm/fault.c
+40
-35
arch/arm/mm/proc-arm1020.S
arch/arm/mm/proc-arm1020.S
+2
-2
arch/arm/mm/proc-arm1020e.S
arch/arm/mm/proc-arm1020e.S
+2
-2
drivers/mtd/afs.c
drivers/mtd/afs.c
+2
-14
drivers/video/console/fbcon.c
drivers/video/console/fbcon.c
+1
-7
include/asm-arm/system.h
include/asm-arm/system.h
+3
-1
No files found.
arch/arm/Makefile
View file @
62351cc3
...
@@ -56,7 +56,7 @@ tune-$(CONFIG_CPU_XSCALE) :=$(call cc-option,-mtune=xscale,-mtune=strongarm110)
...
@@ -56,7 +56,7 @@ tune-$(CONFIG_CPU_XSCALE) :=$(call cc-option,-mtune=xscale,-mtune=strongarm110)
tune-$(CONFIG_CPU_V6)
:=
-mtune
=
strongarm
tune-$(CONFIG_CPU_V6)
:=
-mtune
=
strongarm
# Need -Uarm for gcc < 3.x
# Need -Uarm for gcc < 3.x
CFLAGS_ABI
:=
$(
call
cc-option,-mapcs-32,-mabi
=
apcs-gnu
)
CFLAGS_ABI
:=
$(
call
cc-option,-mapcs-32,-mabi
=
apcs-gnu
)
$(
call
cc-option,-mno-thumb-interwork,
)
CFLAGS
+=
$(CFLAGS_ABI)
$
(
arch-y
)
$
(
tune-y
)
$(
call
cc-option,-mshort-load-bytes,
$(
call
cc-option,-malignment-traps,
))
-msoft-float
-Uarm
CFLAGS
+=
$(CFLAGS_ABI)
$
(
arch-y
)
$
(
tune-y
)
$(
call
cc-option,-mshort-load-bytes,
$(
call
cc-option,-malignment-traps,
))
-msoft-float
-Uarm
AFLAGS
+=
$(CFLAGS_ABI)
$
(
arch-y
)
$
(
tune-y
)
-msoft-float
AFLAGS
+=
$(CFLAGS_ABI)
$
(
arch-y
)
$
(
tune-y
)
-msoft-float
...
...
arch/arm/kernel/traps.c
View file @
62351cc3
...
@@ -230,16 +230,8 @@ NORET_TYPE void die(const char *str, struct pt_regs *regs, int err)
...
@@ -230,16 +230,8 @@ NORET_TYPE void die(const char *str, struct pt_regs *regs, int err)
do_exit
(
SIGSEGV
);
do_exit
(
SIGSEGV
);
}
}
void
die_if_kernel
(
const
char
*
str
,
struct
pt_regs
*
regs
,
int
err
)
void
notify_die
(
const
char
*
str
,
struct
pt_regs
*
regs
,
struct
siginfo
*
info
,
{
unsigned
long
err
,
unsigned
long
trap
)
if
(
user_mode
(
regs
))
return
;
die
(
str
,
regs
,
err
);
}
static
void
notify_die
(
const
char
*
str
,
struct
pt_regs
*
regs
,
siginfo_t
*
info
,
unsigned
long
err
,
unsigned
long
trap
)
{
{
if
(
user_mode
(
regs
))
{
if
(
user_mode
(
regs
))
{
current
->
thread
.
error_code
=
err
;
current
->
thread
.
error_code
=
err
;
...
...
arch/arm/mm/fault.c
View file @
62351cc3
...
@@ -372,49 +372,50 @@ do_bad(unsigned long addr, unsigned int fsr, struct pt_regs *regs)
...
@@ -372,49 +372,50 @@ do_bad(unsigned long addr, unsigned int fsr, struct pt_regs *regs)
static
struct
fsr_info
{
static
struct
fsr_info
{
int
(
*
fn
)(
unsigned
long
addr
,
unsigned
int
fsr
,
struct
pt_regs
*
regs
);
int
(
*
fn
)(
unsigned
long
addr
,
unsigned
int
fsr
,
struct
pt_regs
*
regs
);
int
sig
;
int
sig
;
int
code
;
const
char
*
name
;
const
char
*
name
;
}
fsr_info
[]
=
{
}
fsr_info
[]
=
{
/*
/*
* The following are the standard ARMv3 and ARMv4 aborts. ARMv5
* The following are the standard ARMv3 and ARMv4 aborts. ARMv5
* defines these to be "precise" aborts.
* defines these to be "precise" aborts.
*/
*/
{
do_bad
,
SIGSEGV
,
"vector exception"
},
{
do_bad
,
SIGSEGV
,
0
,
"vector exception"
},
{
do_bad
,
SIGILL
,
"alignment exception"
},
{
do_bad
,
SIGILL
,
BUS_ADRALN
,
"alignment exception"
},
{
do_bad
,
SIGKILL
,
"terminal exception"
},
{
do_bad
,
SIGKILL
,
0
,
"terminal exception"
},
{
do_bad
,
SIGILL
,
"alignment exception"
},
{
do_bad
,
SIGILL
,
BUS_ADRALN
,
"alignment exception"
},
{
do_bad
,
SIGBUS
,
"external abort on linefetch"
},
{
do_bad
,
SIGBUS
,
0
,
"external abort on linefetch"
},
{
do_translation_fault
,
SIGSEGV
,
"section translation fault"
},
{
do_translation_fault
,
SIGSEGV
,
SEGV_MAPERR
,
"section translation fault"
},
{
do_bad
,
SIGBUS
,
"external abort on linefetch"
},
{
do_bad
,
SIGBUS
,
0
,
"external abort on linefetch"
},
{
do_page_fault
,
SIGSEGV
,
"page translation fault"
},
{
do_page_fault
,
SIGSEGV
,
SEGV_MAPERR
,
"page translation fault"
},
{
do_bad
,
SIGBUS
,
"external abort on non-linefetch"
},
{
do_bad
,
SIGBUS
,
0
,
"external abort on non-linefetch"
},
{
do_bad
,
SIGSEGV
,
"section domain fault"
},
{
do_bad
,
SIGSEGV
,
SEGV_ACCERR
,
"section domain fault"
},
{
do_bad
,
SIGBUS
,
"external abort on non-linefetch"
},
{
do_bad
,
SIGBUS
,
0
,
"external abort on non-linefetch"
},
{
do_bad
,
SIGSEGV
,
"page domain fault"
},
{
do_bad
,
SIGSEGV
,
SEGV_ACCERR
,
"page domain fault"
},
{
do_bad
,
SIGBUS
,
"external abort on translation"
},
{
do_bad
,
SIGBUS
,
0
,
"external abort on translation"
},
{
do_sect_fault
,
SIGSEGV
,
"section permission fault"
},
{
do_sect_fault
,
SIGSEGV
,
SEGV_ACCERR
,
"section permission fault"
},
{
do_bad
,
SIGBUS
,
"external abort on translation"
},
{
do_bad
,
SIGBUS
,
0
,
"external abort on translation"
},
{
do_page_fault
,
SIGSEGV
,
"page permission fault"
},
{
do_page_fault
,
SIGSEGV
,
SEGV_ACCERR
,
"page permission fault"
},
/*
/*
* The following are "imprecise" aborts, which are signalled by bit
* The following are "imprecise" aborts, which are signalled by bit
* 10 of the FSR, and may not be recoverable. These are only
* 10 of the FSR, and may not be recoverable. These are only
* supported if the CPU abort handler supports bit 10.
* supported if the CPU abort handler supports bit 10.
*/
*/
{
do_bad
,
SIGBUS
,
"unknown 16"
},
{
do_bad
,
SIGBUS
,
0
,
"unknown 16"
},
{
do_bad
,
SIGBUS
,
"unknown 17"
},
{
do_bad
,
SIGBUS
,
0
,
"unknown 17"
},
{
do_bad
,
SIGBUS
,
"unknown 18"
},
{
do_bad
,
SIGBUS
,
0
,
"unknown 18"
},
{
do_bad
,
SIGBUS
,
"unknown 19"
},
{
do_bad
,
SIGBUS
,
0
,
"unknown 19"
},
{
do_bad
,
SIGBUS
,
"lock abort"
},
/* xscale */
{
do_bad
,
SIGBUS
,
0
,
"lock abort"
},
/* xscale */
{
do_bad
,
SIGBUS
,
"unknown 21"
},
{
do_bad
,
SIGBUS
,
0
,
"unknown 21"
},
{
do_bad
,
SIGBUS
,
"imprecise external abort"
},
/* xscale */
{
do_bad
,
SIGBUS
,
BUS_OBJERR
,
"imprecise external abort"
},
/* xscale */
{
do_bad
,
SIGBUS
,
"unknown 23"
},
{
do_bad
,
SIGBUS
,
0
,
"unknown 23"
},
{
do_bad
,
SIGBUS
,
"dcache parity error"
},
/* xscale */
{
do_bad
,
SIGBUS
,
0
,
"dcache parity error"
},
/* xscale */
{
do_bad
,
SIGBUS
,
"unknown 25"
},
{
do_bad
,
SIGBUS
,
0
,
"unknown 25"
},
{
do_bad
,
SIGBUS
,
"unknown 26"
},
{
do_bad
,
SIGBUS
,
0
,
"unknown 26"
},
{
do_bad
,
SIGBUS
,
"unknown 27"
},
{
do_bad
,
SIGBUS
,
0
,
"unknown 27"
},
{
do_bad
,
SIGBUS
,
"unknown 28"
},
{
do_bad
,
SIGBUS
,
0
,
"unknown 28"
},
{
do_bad
,
SIGBUS
,
"unknown 29"
},
{
do_bad
,
SIGBUS
,
0
,
"unknown 29"
},
{
do_bad
,
SIGBUS
,
"unknown 30"
},
{
do_bad
,
SIGBUS
,
0
,
"unknown 30"
},
{
do_bad
,
SIGBUS
,
"unknown 31"
}
{
do_bad
,
SIGBUS
,
0
,
"unknown 31"
}
};
};
void
__init
void
__init
...
@@ -435,15 +436,19 @@ asmlinkage void
...
@@ -435,15 +436,19 @@ asmlinkage void
do_DataAbort
(
unsigned
long
addr
,
unsigned
int
fsr
,
struct
pt_regs
*
regs
)
do_DataAbort
(
unsigned
long
addr
,
unsigned
int
fsr
,
struct
pt_regs
*
regs
)
{
{
const
struct
fsr_info
*
inf
=
fsr_info
+
(
fsr
&
15
)
+
((
fsr
&
(
1
<<
10
))
>>
6
);
const
struct
fsr_info
*
inf
=
fsr_info
+
(
fsr
&
15
)
+
((
fsr
&
(
1
<<
10
))
>>
6
);
struct
siginfo
info
;
if
(
!
inf
->
fn
(
addr
,
fsr
,
regs
))
if
(
!
inf
->
fn
(
addr
,
fsr
,
regs
))
return
;
return
;
printk
(
KERN_ALERT
"Unhandled fault: %s (0x%03x) at 0x%08lx
\n
"
,
printk
(
KERN_ALERT
"Unhandled fault: %s (0x%03x) at 0x%08lx
\n
"
,
inf
->
name
,
fsr
,
addr
);
inf
->
name
,
fsr
,
addr
);
force_sig
(
inf
->
sig
,
current
);
show_pte
(
current
->
mm
,
addr
);
info
.
si_signo
=
inf
->
sig
;
die_if_kernel
(
"Oops"
,
regs
,
0
);
info
.
si_errno
=
0
;
info
.
si_code
=
inf
->
code
;
info
.
si_addr
=
(
void
__user
*
)
addr
;
notify_die
(
""
,
regs
,
&
info
,
fsr
,
0
);
}
}
asmlinkage
void
asmlinkage
void
...
...
arch/arm/mm/proc-arm1020.S
View file @
62351cc3
...
@@ -445,14 +445,14 @@ __arm1020_setup:
...
@@ -445,14 +445,14 @@ __arm1020_setup:
/
*
/
*
*
R
*
R
*
.
RVI
ZFRS
BLDP
WCAM
*
.
RVI
ZFRS
BLDP
WCAM
*
.0
.1
1001
..11
0101
/*
FIXME
:
why
no
V
bit
?
*/
*
.0
11
1001
..11
0101
*/
*/
.
type
arm1020_cr1_clear
,
#
object
.
type
arm1020_cr1_clear
,
#
object
.
type
arm1020_cr1_set
,
#
object
.
type
arm1020_cr1_set
,
#
object
arm1020_cr1_clear
:
arm1020_cr1_clear
:
.
word
0x593f
.
word
0x593f
arm1020_cr1_set
:
arm1020_cr1_set
:
.
word
0x
1
935
.
word
0x
3
935
__INITDATA
__INITDATA
...
...
arch/arm/mm/proc-arm1020e.S
View file @
62351cc3
...
@@ -427,14 +427,14 @@ __arm1020e_setup:
...
@@ -427,14 +427,14 @@ __arm1020e_setup:
/
*
/
*
*
R
*
R
*
.
RVI
ZFRS
BLDP
WCAM
*
.
RVI
ZFRS
BLDP
WCAM
*
.0
.1
1001
..11
0101
/*
FIXME
:
why
no
V
bit
?
*/
*
.0
11
1001
..11
0101
*/
*/
.
type
arm1020e_cr1_clear
,
#
object
.
type
arm1020e_cr1_clear
,
#
object
.
type
arm1020e_cr1_set
,
#
object
.
type
arm1020e_cr1_set
,
#
object
arm1020e_cr1_clear
:
arm1020e_cr1_clear
:
.
word
0x5f3f
.
word
0x5f3f
arm1020e_cr1_set
:
arm1020e_cr1_set
:
.
word
0x
1
935
.
word
0x
3
935
__INITDATA
__INITDATA
...
...
drivers/mtd/afs.c
View file @
62351cc3
...
@@ -219,7 +219,7 @@ static int parse_afs_partitions(struct mtd_info *mtd,
...
@@ -219,7 +219,7 @@ static int parse_afs_partitions(struct mtd_info *mtd,
*/
*/
for
(
idx
=
off
=
0
;
off
<
mtd
->
size
;
off
+=
mtd
->
erasesize
)
{
for
(
idx
=
off
=
0
;
off
<
mtd
->
size
;
off
+=
mtd
->
erasesize
)
{
struct
image_info_struct
iis
;
struct
image_info_struct
iis
;
u_int
iis_ptr
,
img_ptr
,
size
;
u_int
iis_ptr
,
img_ptr
;
/* Read the footer. */
/* Read the footer. */
ret
=
afs_read_footer
(
mtd
,
&
img_ptr
,
&
iis_ptr
,
off
,
mask
);
ret
=
afs_read_footer
(
mtd
,
&
img_ptr
,
&
iis_ptr
,
off
,
mask
);
...
@@ -236,21 +236,9 @@ static int parse_afs_partitions(struct mtd_info *mtd,
...
@@ -236,21 +236,9 @@ static int parse_afs_partitions(struct mtd_info *mtd,
continue
;
continue
;
strcpy
(
str
,
iis
.
name
);
strcpy
(
str
,
iis
.
name
);
size
=
mtd
->
erasesize
+
off
-
img_ptr
;
/*
* In order to support JFFS2 partitions on this layout,
* we must lie to MTD about the real size of JFFS2
* partitions; this ensures that the AFS flash footer
* won't be erased by JFFS2. Please ensure that your
* JFFS2 partitions are given image numbers between
* 1000 and 2000 inclusive.
*/
if
(
iis
.
imageNumber
>=
1000
&&
iis
.
imageNumber
<
2000
)
size
-=
mtd
->
erasesize
;
parts
[
idx
].
name
=
str
;
parts
[
idx
].
name
=
str
;
parts
[
idx
].
size
=
size
;
parts
[
idx
].
size
=
(
iis
.
length
+
mtd
->
erasesize
-
1
)
&
~
(
mtd
->
erasesize
-
1
)
;
parts
[
idx
].
offset
=
img_ptr
;
parts
[
idx
].
offset
=
img_ptr
;
parts
[
idx
].
mask_flags
=
0
;
parts
[
idx
].
mask_flags
=
0
;
...
...
drivers/video/console/fbcon.c
View file @
62351cc3
...
@@ -142,7 +142,6 @@ static int fbcon_set_origin(struct vc_data *);
...
@@ -142,7 +142,6 @@ static int fbcon_set_origin(struct vc_data *);
#define CURSOR_DRAW_DELAY (1)
#define CURSOR_DRAW_DELAY (1)
/* # VBL ints between cursor state changes */
/* # VBL ints between cursor state changes */
#define ARM_CURSOR_BLINK_RATE (10)
#define ATARI_CURSOR_BLINK_RATE (42)
#define ATARI_CURSOR_BLINK_RATE (42)
#define MAC_CURSOR_BLINK_RATE (32)
#define MAC_CURSOR_BLINK_RATE (32)
#define DEFAULT_CURSOR_BLINK_RATE (20)
#define DEFAULT_CURSOR_BLINK_RATE (20)
...
@@ -288,7 +287,7 @@ static void fb_flashcursor(void *private)
...
@@ -288,7 +287,7 @@ static void fb_flashcursor(void *private)
release_console_sem
();
release_console_sem
();
}
}
#if
(defined(__arm__) && defined(IRQ_VSYNCPULSE)) ||
defined(CONFIG_ATARI) || defined(CONFIG_MAC)
#if defined(CONFIG_ATARI) || defined(CONFIG_MAC)
static
int
cursor_blink_rate
;
static
int
cursor_blink_rate
;
static
irqreturn_t
fb_vbl_handler
(
int
irq
,
void
*
dev_id
,
struct
pt_regs
*
fp
)
static
irqreturn_t
fb_vbl_handler
(
int
irq
,
void
*
dev_id
,
struct
pt_regs
*
fp
)
{
{
...
@@ -878,11 +877,6 @@ static const char *fbcon_startup(void)
...
@@ -878,11 +877,6 @@ static const char *fbcon_startup(void)
}
}
#endif
/* CONFIG_MAC */
#endif
/* CONFIG_MAC */
#if defined(__arm__) && defined(IRQ_VSYNCPULSE)
cursor_blink_rate
=
ARM_CURSOR_BLINK_RATE
;
irqres
=
request_irq
(
IRQ_VSYNCPULSE
,
fb_vbl_handler
,
SA_SHIRQ
,
"framebuffer vbl"
,
info
);
#endif
/* Initialize the work queue. If the driver provides its
/* Initialize the work queue. If the driver provides its
* own work queue this means it will use something besides
* own work queue this means it will use something besides
* default timer to flash the cursor. */
* default timer to flash the cursor. */
...
...
include/asm-arm/system.h
View file @
62351cc3
...
@@ -85,7 +85,9 @@ struct pt_regs;
...
@@ -85,7 +85,9 @@ struct pt_regs;
void
die
(
const
char
*
msg
,
struct
pt_regs
*
regs
,
int
err
)
void
die
(
const
char
*
msg
,
struct
pt_regs
*
regs
,
int
err
)
__attribute__
((
noreturn
));
__attribute__
((
noreturn
));
void
die_if_kernel
(
const
char
*
str
,
struct
pt_regs
*
regs
,
int
err
);
struct
siginfo
;
void
notify_die
(
const
char
*
str
,
struct
pt_regs
*
regs
,
struct
siginfo
*
info
,
unsigned
long
err
,
unsigned
long
trap
);
void
hook_fault_code
(
int
nr
,
int
(
*
fn
)(
unsigned
long
,
unsigned
int
,
void
hook_fault_code
(
int
nr
,
int
(
*
fn
)(
unsigned
long
,
unsigned
int
,
struct
pt_regs
*
),
struct
pt_regs
*
),
...
...
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