Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
Kernel
提交
62351cc3
K
Kernel
项目概览
openeuler
/
Kernel
1 年多 前同步成功
通知
8
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
Kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
62351cc3
编写于
6月 30, 2005
作者:
L
Linus Torvalds
浏览文件
操作
浏览文件
下载
差异文件
Merge master.kernel.org:/home/rmk/linux-2.6-arm
上级
d471cd47
747aead3
变更
8
隐藏空白更改
内联
并排
Showing
8 changed file
with
53 addition
and
72 deletion
+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
未找到文件。
arch/arm/Makefile
浏览文件 @
62351cc3
...
...
@@ -56,7 +56,7 @@ tune-$(CONFIG_CPU_XSCALE) :=$(call cc-option,-mtune=xscale,-mtune=strongarm110)
tune-$(CONFIG_CPU_V6)
:=
-mtune
=
strongarm
# 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
AFLAGS
+=
$(CFLAGS_ABI)
$
(
arch-y
)
$
(
tune-y
)
-msoft-float
...
...
arch/arm/kernel/traps.c
浏览文件 @
62351cc3
...
...
@@ -230,16 +230,8 @@ NORET_TYPE void die(const char *str, struct pt_regs *regs, int err)
do_exit
(
SIGSEGV
);
}
void
die_if_kernel
(
const
char
*
str
,
struct
pt_regs
*
regs
,
int
err
)
{
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
)
void
notify_die
(
const
char
*
str
,
struct
pt_regs
*
regs
,
struct
siginfo
*
info
,
unsigned
long
err
,
unsigned
long
trap
)
{
if
(
user_mode
(
regs
))
{
current
->
thread
.
error_code
=
err
;
...
...
arch/arm/mm/fault.c
浏览文件 @
62351cc3
...
...
@@ -372,49 +372,50 @@ do_bad(unsigned long addr, unsigned int fsr, struct pt_regs *regs)
static
struct
fsr_info
{
int
(
*
fn
)(
unsigned
long
addr
,
unsigned
int
fsr
,
struct
pt_regs
*
regs
);
int
sig
;
int
code
;
const
char
*
name
;
}
fsr_info
[]
=
{
/*
* The following are the standard ARMv3 and ARMv4 aborts. ARMv5
* defines these to be "precise" aborts.
*/
{
do_bad
,
SIGSEGV
,
"vector exception"
},
{
do_bad
,
SIGILL
,
"alignment exception"
},
{
do_bad
,
SIGKILL
,
"terminal exception"
},
{
do_bad
,
SIGILL
,
"alignment exception"
},
{
do_bad
,
SIGBUS
,
"external abort on linefetch"
},
{
do_translation_fault
,
SIGSEGV
,
"section translation fault"
},
{
do_bad
,
SIGBUS
,
"external abort on linefetch"
},
{
do_page_fault
,
SIGSEGV
,
"page translation fault"
},
{
do_bad
,
SIGBUS
,
"external abort on non-linefetch"
},
{
do_bad
,
SIGSEGV
,
"section domain fault"
},
{
do_bad
,
SIGBUS
,
"external abort on non-linefetch"
},
{
do_bad
,
SIGSEGV
,
"page domain fault"
},
{
do_bad
,
SIGBUS
,
"external abort on translation"
},
{
do_sect_fault
,
SIGSEGV
,
"section permission fault"
},
{
do_bad
,
SIGBUS
,
"external abort on translation"
},
{
do_page_fault
,
SIGSEGV
,
"page permission fault"
},
{
do_bad
,
SIGSEGV
,
0
,
"vector exception"
},
{
do_bad
,
SIGILL
,
BUS_ADRALN
,
"alignment exception"
},
{
do_bad
,
SIGKILL
,
0
,
"terminal exception"
},
{
do_bad
,
SIGILL
,
BUS_ADRALN
,
"alignment exception"
},
{
do_bad
,
SIGBUS
,
0
,
"external abort on linefetch"
},
{
do_translation_fault
,
SIGSEGV
,
SEGV_MAPERR
,
"section translation fault"
},
{
do_bad
,
SIGBUS
,
0
,
"external abort on linefetch"
},
{
do_page_fault
,
SIGSEGV
,
SEGV_MAPERR
,
"page translation fault"
},
{
do_bad
,
SIGBUS
,
0
,
"external abort on non-linefetch"
},
{
do_bad
,
SIGSEGV
,
SEGV_ACCERR
,
"section domain fault"
},
{
do_bad
,
SIGBUS
,
0
,
"external abort on non-linefetch"
},
{
do_bad
,
SIGSEGV
,
SEGV_ACCERR
,
"page domain fault"
},
{
do_bad
,
SIGBUS
,
0
,
"external abort on translation"
},
{
do_sect_fault
,
SIGSEGV
,
SEGV_ACCERR
,
"section permission fault"
},
{
do_bad
,
SIGBUS
,
0
,
"external abort on translation"
},
{
do_page_fault
,
SIGSEGV
,
SEGV_ACCERR
,
"page permission fault"
},
/*
* The following are "imprecise" aborts, which are signalled by bit
* 10 of the FSR, and may not be recoverable. These are only
* supported if the CPU abort handler supports bit 10.
*/
{
do_bad
,
SIGBUS
,
"unknown 16"
},
{
do_bad
,
SIGBUS
,
"unknown 17"
},
{
do_bad
,
SIGBUS
,
"unknown 18"
},
{
do_bad
,
SIGBUS
,
"unknown 19"
},
{
do_bad
,
SIGBUS
,
"lock abort"
},
/* xscale */
{
do_bad
,
SIGBUS
,
"unknown 21"
},
{
do_bad
,
SIGBUS
,
"imprecise external abort"
},
/* xscale */
{
do_bad
,
SIGBUS
,
"unknown 23"
},
{
do_bad
,
SIGBUS
,
"dcache parity error"
},
/* xscale */
{
do_bad
,
SIGBUS
,
"unknown 25"
},
{
do_bad
,
SIGBUS
,
"unknown 26"
},
{
do_bad
,
SIGBUS
,
"unknown 27"
},
{
do_bad
,
SIGBUS
,
"unknown 28"
},
{
do_bad
,
SIGBUS
,
"unknown 29"
},
{
do_bad
,
SIGBUS
,
"unknown 30"
},
{
do_bad
,
SIGBUS
,
"unknown 31"
}
{
do_bad
,
SIGBUS
,
0
,
"unknown 16"
},
{
do_bad
,
SIGBUS
,
0
,
"unknown 17"
},
{
do_bad
,
SIGBUS
,
0
,
"unknown 18"
},
{
do_bad
,
SIGBUS
,
0
,
"unknown 19"
},
{
do_bad
,
SIGBUS
,
0
,
"lock abort"
},
/* xscale */
{
do_bad
,
SIGBUS
,
0
,
"unknown 21"
},
{
do_bad
,
SIGBUS
,
BUS_OBJERR
,
"imprecise external abort"
},
/* xscale */
{
do_bad
,
SIGBUS
,
0
,
"unknown 23"
},
{
do_bad
,
SIGBUS
,
0
,
"dcache parity error"
},
/* xscale */
{
do_bad
,
SIGBUS
,
0
,
"unknown 25"
},
{
do_bad
,
SIGBUS
,
0
,
"unknown 26"
},
{
do_bad
,
SIGBUS
,
0
,
"unknown 27"
},
{
do_bad
,
SIGBUS
,
0
,
"unknown 28"
},
{
do_bad
,
SIGBUS
,
0
,
"unknown 29"
},
{
do_bad
,
SIGBUS
,
0
,
"unknown 30"
},
{
do_bad
,
SIGBUS
,
0
,
"unknown 31"
}
};
void
__init
...
...
@@ -435,15 +436,19 @@ asmlinkage void
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
);
struct
siginfo
info
;
if
(
!
inf
->
fn
(
addr
,
fsr
,
regs
))
return
;
printk
(
KERN_ALERT
"Unhandled fault: %s (0x%03x) at 0x%08lx
\n
"
,
inf
->
name
,
fsr
,
addr
);
force_sig
(
inf
->
sig
,
current
);
show_pte
(
current
->
mm
,
addr
);
die_if_kernel
(
"Oops"
,
regs
,
0
);
info
.
si_signo
=
inf
->
sig
;
info
.
si_errno
=
0
;
info
.
si_code
=
inf
->
code
;
info
.
si_addr
=
(
void
__user
*
)
addr
;
notify_die
(
""
,
regs
,
&
info
,
fsr
,
0
);
}
asmlinkage
void
...
...
arch/arm/mm/proc-arm1020.S
浏览文件 @
62351cc3
...
...
@@ -445,14 +445,14 @@ __arm1020_setup:
/
*
*
R
*
.
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_set
,
#
object
arm1020_cr1_clear
:
.
word
0x593f
arm1020_cr1_set
:
.
word
0x
1
935
.
word
0x
3
935
__INITDATA
...
...
arch/arm/mm/proc-arm1020e.S
浏览文件 @
62351cc3
...
...
@@ -427,14 +427,14 @@ __arm1020e_setup:
/
*
*
R
*
.
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_set
,
#
object
arm1020e_cr1_clear
:
.
word
0x5f3f
arm1020e_cr1_set
:
.
word
0x
1
935
.
word
0x
3
935
__INITDATA
...
...
drivers/mtd/afs.c
浏览文件 @
62351cc3
...
...
@@ -219,7 +219,7 @@ static int parse_afs_partitions(struct mtd_info *mtd,
*/
for
(
idx
=
off
=
0
;
off
<
mtd
->
size
;
off
+=
mtd
->
erasesize
)
{
struct
image_info_struct
iis
;
u_int
iis_ptr
,
img_ptr
,
size
;
u_int
iis_ptr
,
img_ptr
;
/* Read the footer. */
ret
=
afs_read_footer
(
mtd
,
&
img_ptr
,
&
iis_ptr
,
off
,
mask
);
...
...
@@ -236,21 +236,9 @@ static int parse_afs_partitions(struct mtd_info *mtd,
continue
;
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
].
size
=
size
;
parts
[
idx
].
size
=
(
iis
.
length
+
mtd
->
erasesize
-
1
)
&
~
(
mtd
->
erasesize
-
1
)
;
parts
[
idx
].
offset
=
img_ptr
;
parts
[
idx
].
mask_flags
=
0
;
...
...
drivers/video/console/fbcon.c
浏览文件 @
62351cc3
...
...
@@ -142,7 +142,6 @@ static int fbcon_set_origin(struct vc_data *);
#define CURSOR_DRAW_DELAY (1)
/* # VBL ints between cursor state changes */
#define ARM_CURSOR_BLINK_RATE (10)
#define ATARI_CURSOR_BLINK_RATE (42)
#define MAC_CURSOR_BLINK_RATE (32)
#define DEFAULT_CURSOR_BLINK_RATE (20)
...
...
@@ -288,7 +287,7 @@ static void fb_flashcursor(void *private)
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
irqreturn_t
fb_vbl_handler
(
int
irq
,
void
*
dev_id
,
struct
pt_regs
*
fp
)
{
...
...
@@ -878,11 +877,6 @@ static const char *fbcon_startup(void)
}
#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
* own work queue this means it will use something besides
* default timer to flash the cursor. */
...
...
include/asm-arm/system.h
浏览文件 @
62351cc3
...
...
@@ -85,7 +85,9 @@ struct pt_regs;
void
die
(
const
char
*
msg
,
struct
pt_regs
*
regs
,
int
err
)
__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
,
struct
pt_regs
*
),
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录