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
757b282e
Commit
757b282e
authored
Dec 19, 2002
by
Anton Blanchard
Browse files
Options
Browse Files
Download
Plain Diff
Merge samba.org:/scratch/anton/linux-2.5
into samba.org:/scratch/anton/for-jose-new
parents
1b8d775e
30d66ad7
Changes
12
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
182 additions
and
46 deletions
+182
-46
arch/i386/Kconfig
arch/i386/Kconfig
+0
-1
arch/i386/kernel/Makefile
arch/i386/kernel/Makefile
+1
-0
arch/i386/kernel/entry.S
arch/i386/kernel/entry.S
+54
-9
arch/i386/kernel/head.S
arch/i386/kernel/head.S
+14
-11
arch/i386/kernel/sysenter.c
arch/i386/kernel/sysenter.c
+74
-0
arch/i386/mm/init.c
arch/i386/mm/init.c
+1
-1
drivers/scsi/eata_pio_proc.c
drivers/scsi/eata_pio_proc.c
+1
-1
include/asm-i386/elf.h
include/asm-i386/elf.h
+11
-0
include/asm-i386/fixmap.h
include/asm-i386/fixmap.h
+4
-3
include/asm-i386/segment.h
include/asm-i386/segment.h
+19
-17
kernel/params.c
kernel/params.c
+1
-1
sound/oss/Kconfig
sound/oss/Kconfig
+2
-2
No files found.
arch/i386/Kconfig
View file @
757b282e
...
...
@@ -1553,7 +1553,6 @@ config DEBUG_HIGHMEM
config KALLSYMS
bool "Load all symbols for debugging/kksymoops"
depends on DEBUG_KERNEL
help
Say Y here to let the kernel print out symbolic crash information and
symbolic stack backtraces. This increases the size of the kernel
...
...
arch/i386/kernel/Makefile
View file @
757b282e
...
...
@@ -29,6 +29,7 @@ obj-$(CONFIG_X86_NUMAQ) += numaq.o
obj-$(CONFIG_PROFILING)
+=
profile.o
obj-$(CONFIG_EDD)
+=
edd.o
obj-$(CONFIG_MODULES)
+=
module.o
obj-y
+=
sysenter.o
EXTRA_AFLAGS
:=
-traditional
...
...
arch/i386/kernel/entry.S
View file @
757b282e
...
...
@@ -94,7 +94,7 @@ VM_MASK = 0x00020000
movl
%
edx
,
%
ds
; \
movl
%
edx
,
%
es
;
#define RESTORE_
ALL
\
#define RESTORE_
REGS
\
popl
%
ebx
; \
popl
%
ecx
; \
popl
%
edx
; \
...
...
@@ -104,14 +104,25 @@ VM_MASK = 0x00020000
popl
%
eax
; \
1
:
popl
%
ds
; \
2
:
popl
%
es
; \
addl
$
4
,
%
esp
; \
3
:
iret
; \
.
section
.
fixup
,"
ax
"
; \
4
:
movl
$
0
,(%
esp
)
; \
3
:
movl
$
0
,(%
esp
)
; \
jmp
1
b
; \
5
:
movl
$
0
,(%
esp
)
; \
4
:
movl
$
0
,(%
esp
)
; \
jmp
2
b
; \
6
:
pushl
%
ss
; \
.
previous
; \
.
section
__ex_table
,"
a
"
;\
.
align
4
; \
.
long
1
b
,
3
b
; \
.
long
2
b
,
4
b
; \
.
previous
#define RESTORE_ALL \
RESTORE_REGS
\
addl
$
4
,
%
esp
; \
1
:
iret
; \
.
section
.
fixup
,"
ax
"
; \
2
:
pushl
%
ss
; \
popl
%
ds
; \
pushl
%
ss
; \
popl
%
es
; \
...
...
@@ -120,11 +131,11 @@ VM_MASK = 0x00020000
.
previous
; \
.
section
__ex_table
,"
a
"
;\
.
align
4
; \
.
long
1
b
,
4
b
; \
.
long
2
b
,
5
b
; \
.
long
3
b
,
6
b
; \
.
long
1
b
,
2
b
; \
.
previous
ENTRY
(
lcall7
)
pushfl
#
We
get
a
different
stack
layout
with
call
#
gates
,
which
has
to
be
cleaned
up
later
..
...
...
@@ -220,6 +231,40 @@ need_resched:
jmp
need_resched
#endif
/*
Points
to
after
the
"sysenter"
instruction
in
the
vsyscall
page
*/
#define SYSENTER_RETURN 0xffffe007
#
sysenter
call
handler
stub
ALIGN
ENTRY
(
sysenter_entry
)
sti
pushl
$
(
__USER_DS
)
pushl
%
ebp
pushfl
pushl
$
(
__USER_CS
)
pushl
$SYSENTER_RETURN
pushl
%
eax
SAVE_ALL
GET_THREAD_INFO
(%
ebx
)
cmpl
$
(
NR_syscalls
),
%
eax
jae
syscall_badsys
testb
$
_TIF_SYSCALL_TRACE
,
TI_FLAGS
(%
ebx
)
jnz
syscall_trace_entry
call
*
sys_call_table
(,%
eax
,
4
)
movl
%
eax
,
EAX
(%
esp
)
cli
movl
TI_FLAGS
(%
ebx
),
%
ecx
testw
$
_TIF_ALLWORK_MASK
,
%
cx
jne
syscall_exit_work
RESTORE_REGS
movl
4
(%
esp
),%
edx
movl
16
(%
esp
),%
ecx
sti
sysexit
#
system
call
handler
stub
ALIGN
ENTRY
(
system_call
)
...
...
arch/i386/kernel/head.S
View file @
757b282e
...
...
@@ -414,8 +414,8 @@ ENTRY(cpu_gdt_table)
.
quad
0x0000000000000000
/*
0x0b
reserved
*/
.
quad
0x0000000000000000
/*
0x13
reserved
*/
.
quad
0x0000000000000000
/*
0x1b
reserved
*/
.
quad
0x00
cffa000000ffff
/*
0x23
user
4
GB
code
at
0x00000000
*/
.
quad
0x00
cff2000000ffff
/*
0x2b
user
4
GB
data
at
0x00000000
*/
.
quad
0x00
00000000000000
/*
0x20
unused
*/
.
quad
0x00
00000000000000
/*
0x28
unused
*/
.
quad
0x0000000000000000
/*
0x33
TLS
entry
1
*/
.
quad
0x0000000000000000
/*
0x3b
TLS
entry
2
*/
.
quad
0x0000000000000000
/*
0x43
TLS
entry
3
*/
...
...
@@ -425,22 +425,25 @@ ENTRY(cpu_gdt_table)
.
quad
0x00cf9a000000ffff
/*
0x60
kernel
4
GB
code
at
0x00000000
*/
.
quad
0x00cf92000000ffff
/*
0x68
kernel
4
GB
data
at
0x00000000
*/
.
quad
0x0000000000000000
/*
0x70
TSS
descriptor
*/
.
quad
0x0000000000000000
/*
0x78
LDT
descriptor
*/
.
quad
0x00cffa000000ffff
/*
0x73
user
4
GB
code
at
0x00000000
*/
.
quad
0x00cff2000000ffff
/*
0x7b
user
4
GB
data
at
0x00000000
*/
.
quad
0x0000000000000000
/*
0x80
TSS
descriptor
*/
.
quad
0x0000000000000000
/*
0x88
LDT
descriptor
*/
/
*
Segments
used
for
calling
PnP
BIOS
*/
.
quad
0x00c09a0000000000
/*
0x80
32
-
bit
code
*/
.
quad
0x00809a0000000000
/*
0x88
16
-
bit
code
*/
.
quad
0x0080920000000000
/*
0x90
16
-
bit
data
*/
.
quad
0x0080920000000000
/*
0x98
16
-
bit
data
*/
.
quad
0x00c09a0000000000
/*
0x90
32
-
bit
code
*/
.
quad
0x00809a0000000000
/*
0x98
16
-
bit
code
*/
.
quad
0x0080920000000000
/*
0xa0
16
-
bit
data
*/
.
quad
0x0080920000000000
/*
0xa8
16
-
bit
data
*/
.
quad
0x0080920000000000
/*
0xb0
16
-
bit
data
*/
/
*
*
The
APM
segments
have
byte
granularity
and
their
bases
*
and
limits
are
set
at
run
time
.
*/
.
quad
0x00409a0000000000
/*
0x
a
8
APM
CS
code
*/
.
quad
0x00009a0000000000
/*
0x
b
0
APM
CS
16
code
(
16
bit
)
*/
.
quad
0x0040920000000000
/*
0x
b
8
APM
DS
data
*/
.
quad
0x00409a0000000000
/*
0x
b
8
APM
CS
code
*/
.
quad
0x00009a0000000000
/*
0x
c
0
APM
CS
16
code
(
16
bit
)
*/
.
quad
0x0040920000000000
/*
0x
c
8
APM
DS
data
*/
#if CONFIG_SMP
.
fill
(
NR_CPUS
-
1
)*
GDT_ENTRIES
,
8
,
0
/*
other
CPU
's GDT */
...
...
arch/i386/kernel/sysenter.c
0 → 100644
View file @
757b282e
/*
* linux/arch/i386/kernel/sysenter.c
*
* (C) Copyright 2002 Linus Torvalds
*
* This file contains the needed initializations to support sysenter.
*/
#include <linux/init.h>
#include <linux/smp.h>
#include <linux/thread_info.h>
#include <linux/gfp.h>
#include <linux/string.h>
#include <asm/cpufeature.h>
#include <asm/msr.h>
#include <asm/pgtable.h>
extern
asmlinkage
void
sysenter_entry
(
void
);
static
void
__init
enable_sep_cpu
(
void
*
info
)
{
unsigned
long
page
=
__get_free_page
(
GFP_ATOMIC
);
int
cpu
=
get_cpu
();
unsigned
long
*
esp0_ptr
=
&
(
init_tss
+
cpu
)
->
esp0
;
unsigned
long
rel32
;
rel32
=
(
unsigned
long
)
sysenter_entry
-
(
page
+
11
);
*
(
short
*
)
(
page
+
0
)
=
0x258b
;
/* movl xxxxx,%esp */
*
(
long
**
)
(
page
+
2
)
=
esp0_ptr
;
*
(
char
*
)
(
page
+
6
)
=
0xe9
;
/* jmp rl32 */
*
(
long
*
)
(
page
+
7
)
=
rel32
;
wrmsr
(
0x174
,
__KERNEL_CS
,
0
);
/* SYSENTER_CS_MSR */
wrmsr
(
0x175
,
page
+
PAGE_SIZE
,
0
);
/* SYSENTER_ESP_MSR */
wrmsr
(
0x176
,
page
,
0
);
/* SYSENTER_EIP_MSR */
printk
(
"Enabling SEP on CPU %d
\n
"
,
cpu
);
put_cpu
();
}
static
int
__init
sysenter_setup
(
void
)
{
static
const
char
int80
[]
=
{
0xcd
,
0x80
,
/* int $0x80 */
0xc3
/* ret */
};
static
const
char
sysent
[]
=
{
0x55
,
/* push %ebp */
0x51
,
/* push %ecx */
0x52
,
/* push %edx */
0x89
,
0xe5
,
/* movl %esp,%ebp */
0x0f
,
0x34
,
/* sysenter */
0x5a
,
/* pop %edx */
0x59
,
/* pop %ecx */
0x5d
,
/* pop %ebp */
0xc3
/* ret */
};
unsigned
long
page
=
get_zeroed_page
(
GFP_ATOMIC
);
__set_fixmap
(
FIX_VSYSCALL
,
__pa
(
page
),
PAGE_READONLY
);
memcpy
((
void
*
)
page
,
int80
,
sizeof
(
int80
));
if
(
!
boot_cpu_has
(
X86_FEATURE_SEP
))
return
0
;
memcpy
((
void
*
)
page
,
sysent
,
sizeof
(
sysent
));
enable_sep_cpu
(
NULL
);
smp_call_function
(
enable_sep_cpu
,
NULL
,
1
,
1
);
return
0
;
}
__initcall
(
sysenter_setup
);
arch/i386/mm/init.c
View file @
757b282e
...
...
@@ -72,7 +72,7 @@ static pmd_t * __init one_md_table_init(pgd_t *pgd)
static
pte_t
*
__init
one_page_table_init
(
pmd_t
*
pmd
)
{
pte_t
*
page_table
=
(
pte_t
*
)
alloc_bootmem_low_pages
(
PAGE_SIZE
);
set_pmd
(
pmd
,
__pmd
(
__pa
(
page_table
)
|
_
KERNPG
_TABLE
));
set_pmd
(
pmd
,
__pmd
(
__pa
(
page_table
)
|
_
PAGE
_TABLE
));
if
(
page_table
!=
pte_offset_kernel
(
pmd
,
0
))
BUG
();
...
...
drivers/scsi/eata_pio_proc.c
View file @
757b282e
...
...
@@ -85,7 +85,7 @@ int eata_pio_proc_info(char *buffer, char **start, off_t offset, int length,
len
+=
size
;
pos
=
begin
+
len
;
list_for_each_entry
(
scd
,
&
HBA_ptr
->
my_devices
;
siblings
)
{
list_for_each_entry
(
scd
,
&
HBA_ptr
->
my_devices
,
siblings
)
{
proc_print_scsidevice
(
scd
,
buffer
,
&
size
,
len
);
len
+=
size
;
pos
=
begin
+
len
;
...
...
include/asm-i386/elf.h
View file @
757b282e
...
...
@@ -100,6 +100,12 @@ typedef struct user_fxsr_struct elf_fpxregset_t;
#define ELF_PLATFORM (system_utsname.machine)
/*
* Architecture-neutral AT_ values in 0-17, leave some room
* for more of them, start the x86-specific ones at 32.
*/
#define AT_SYSINFO 32
#ifdef __KERNEL__
#define SET_PERSONALITY(ex, ibcs2) set_personality((ibcs2)?PER_SVR4:PER_LINUX)
...
...
@@ -116,6 +122,11 @@ extern void dump_smp_unlazy_fpu(void);
#define ELF_CORE_SYNC dump_smp_unlazy_fpu
#endif
#define ARCH_DLINFO \
do { \
NEW_AUX_ENT(AT_SYSINFO, 0xffffe000); \
} while (0)
#endif
#endif
include/asm-i386/fixmap.h
View file @
757b282e
...
...
@@ -42,6 +42,8 @@
* task switches.
*/
enum
fixed_addresses
{
FIX_HOLE
,
FIX_VSYSCALL
,
#ifdef CONFIG_X86_LOCAL_APIC
FIX_APIC_BASE
,
/* local (CPU) APIC) -- required for SMP or not */
#endif
...
...
@@ -96,10 +98,9 @@ extern void __set_fixmap (enum fixed_addresses idx,
* used by vmalloc.c.
*
* Leave one empty page between vmalloc'ed areas and
* the start of the fixmap, and leave one page empty
* at the top of mem..
* the start of the fixmap.
*/
#define FIXADDR_TOP (0xffff
e
000UL)
#define FIXADDR_TOP (0xffff
f
000UL)
#define __FIXADDR_SIZE (__end_of_permanent_fixed_addresses << PAGE_SHIFT)
#define FIXADDR_START (FIXADDR_TOP - __FIXADDR_SIZE)
...
...
include/asm-i386/segment.h
View file @
757b282e
...
...
@@ -9,8 +9,8 @@
* 2 - reserved
* 3 - reserved
*
* 4 -
default user CS
<==== new cacheline
* 5 -
default user DS
* 4 -
unused
<==== new cacheline
* 5 -
unused
*
* ------- start of TLS (Thread-Local Storage) segments:
*
...
...
@@ -25,16 +25,18 @@
*
* 12 - kernel code segment <==== new cacheline
* 13 - kernel data segment
* 14 -
TS
S
* 15 -
LDT
* 16 -
PNPBIOS support (16->32 gate)
* 17 -
PNPBIOS support
* 18 - PNPBIOS support
* 14 -
default user C
S
* 15 -
default user DS
* 16 -
TSS
* 17 -
LDT
* 18 - PNPBIOS support
(16->32 gate)
* 19 - PNPBIOS support
* 20 - PNPBIOS support
* 21 - APM BIOS support
* 22 - APM BIOS support
* 23 - APM BIOS support
* 21 - PNPBIOS support
* 22 - PNPBIOS support
* 23 - APM BIOS support
* 24 - APM BIOS support
* 25 - APM BIOS support
*/
#define GDT_ENTRY_TLS_ENTRIES 3
#define GDT_ENTRY_TLS_MIN 6
...
...
@@ -42,10 +44,10 @@
#define TLS_SIZE (GDT_ENTRY_TLS_ENTRIES * 8)
#define GDT_ENTRY_DEFAULT_USER_CS 4
#define GDT_ENTRY_DEFAULT_USER_CS
1
4
#define __USER_CS (GDT_ENTRY_DEFAULT_USER_CS * 8 + 3)
#define GDT_ENTRY_DEFAULT_USER_DS 5
#define GDT_ENTRY_DEFAULT_USER_DS
1
5
#define __USER_DS (GDT_ENTRY_DEFAULT_USER_DS * 8 + 3)
#define GDT_ENTRY_KERNEL_BASE 12
...
...
@@ -56,14 +58,14 @@
#define GDT_ENTRY_KERNEL_DS (GDT_ENTRY_KERNEL_BASE + 1)
#define __KERNEL_DS (GDT_ENTRY_KERNEL_DS * 8)
#define GDT_ENTRY_TSS (GDT_ENTRY_KERNEL_BASE +
2
)
#define GDT_ENTRY_LDT (GDT_ENTRY_KERNEL_BASE +
3
)
#define GDT_ENTRY_TSS (GDT_ENTRY_KERNEL_BASE +
4
)
#define GDT_ENTRY_LDT (GDT_ENTRY_KERNEL_BASE +
5
)
#define GDT_ENTRY_PNPBIOS_BASE (GDT_ENTRY_KERNEL_BASE +
4
)
#define GDT_ENTRY_APMBIOS_BASE (GDT_ENTRY_KERNEL_BASE +
9
)
#define GDT_ENTRY_PNPBIOS_BASE (GDT_ENTRY_KERNEL_BASE +
6
)
#define GDT_ENTRY_APMBIOS_BASE (GDT_ENTRY_KERNEL_BASE +
11
)
/*
* The GDT has 2
1
entries but we pad it to cacheline boundary:
* The GDT has 2
3
entries but we pad it to cacheline boundary:
*/
#define GDT_ENTRIES 24
...
...
kernel/params.c
View file @
757b282e
...
...
@@ -24,7 +24,7 @@
#if 0
#define DEBUGP printk
#else
#define DEBUGP(fmt
,
...)
#define DEBUGP(fmt
, a
...)
#endif
static
int
parse_one
(
char
*
param
,
...
...
sound/oss/Kconfig
View file @
757b282e
...
...
@@ -293,7 +293,7 @@ comment "Compiled-in MSND Classic support requires firmware during compilation."
depends on SOUND_PRIME && SOUND_MSNDCLAS=y
config MSNDCLAS_HAVE_BOOT
bool
"Have MSNDINIT.BIN firmware file"
bool
depends on SOUND_MSNDCLAS=y
default y
...
...
@@ -355,7 +355,7 @@ comment "Compiled-in MSND Pinnacle support requires firmware during compilation.
depends on SOUND_PRIME && SOUND_MSNDPIN=y
config MSNDPIN_HAVE_BOOT
bool
"Have PNDSPINI.BIN firmware file"
bool
depends on SOUND_MSNDPIN=y
default y
...
...
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