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
4a5b5d80
Commit
4a5b5d80
authored
Nov 23, 2007
by
Linus Torvalds
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Import 2.4.0-test4pre2
parent
fe063029
Changes
12
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
62 additions
and
86 deletions
+62
-86
arch/alpha/kernel/sys_nautilus.c
arch/alpha/kernel/sys_nautilus.c
+5
-0
arch/i386/Makefile
arch/i386/Makefile
+2
-0
arch/s390/config.in
arch/s390/config.in
+0
-3
drivers/sound/Makefile
drivers/sound/Makefile
+1
-1
fs/buffer.c
fs/buffer.c
+0
-3
fs/select.c
fs/select.c
+40
-71
include/asm-i386/pgtable.h
include/asm-i386/pgtable.h
+1
-1
include/linux/mm.h
include/linux/mm.h
+0
-3
include/linux/poll.h
include/linux/poll.h
+8
-3
include/linux/types.h
include/linux/types.h
+3
-0
include/linux/wait.h
include/linux/wait.h
+1
-1
mm/vmscan.c
mm/vmscan.c
+1
-0
No files found.
arch/alpha/kernel/sys_nautilus.c
View file @
4a5b5d80
...
...
@@ -53,6 +53,11 @@
static
void
__init
nautilus_init_irq
(
void
)
{
if
(
alpha_using_srm
)
{
alpha_mv
.
device_interrupt
=
srm_device_interrupt
;
alpha_mv
.
kill_arch
=
NULL
;
}
init_i8259a_irqs
();
common_init_isa_dma
();
}
...
...
arch/i386/Makefile
View file @
4a5b5d80
...
...
@@ -114,6 +114,8 @@ compressed: zImage
zlilo
:
vmlinux
@
$(MAKEBOOT)
BOOTIMAGE
=
zImage zlilo
tmp
:
@
$(MAKEBOOT)
BOOTIMAGE
=
bzImage zlilo
bzlilo
:
vmlinux
@
$(MAKEBOOT)
BOOTIMAGE
=
bzImage zlilo
...
...
arch/s390/config.in
View file @
4a5b5d80
...
...
@@ -57,9 +57,6 @@ fi
source fs/Config.in
# Not sure about this one. dwmw2
# source drivers/mtd/Config.in
# source drivers/char/Config.in
mainmenu_option next_comment
...
...
drivers/sound/Makefile
View file @
4a5b5d80
...
...
@@ -47,7 +47,7 @@ obj-$(CONFIG_SOUND_SOFTOSS) += softoss2.o
obj-$(CONFIG_SOUND_SSCAPE)
+=
sscape.o ad1848.o mpu401.o
obj-$(CONFIG_SOUND_MAD16)
+=
mad16.o ad1848.o sb_lib.o uart401.o
obj-$(CONFIG_SOUND_CS4232)
+=
cs4232.o uart401.o
obj-$(CONFIG_SOUND_OPL3SA2)
+=
opl3sa2.o ad1848.o
uart401.o
mpu401.o
obj-$(CONFIG_SOUND_OPL3SA2)
+=
opl3sa2.o ad1848.o mpu401.o
obj-$(CONFIG_SOUND_MSS)
+=
ad1848.o
obj-$(CONFIG_SOUND_PAS)
+=
pas2.o sb_lib.o uart401.o
obj-$(CONFIG_SOUND_SB)
+=
sb.o sb_lib.o uart401.o
...
...
fs/buffer.c
View file @
4a5b5d80
...
...
@@ -1759,9 +1759,6 @@ static int do_kio(int rw, int nr, struct buffer_head *bh[], int size)
int
i
;
struct
buffer_head
*
tmp
;
struct
task_struct
*
tsk
=
current
;
DECLARE_WAITQUEUE
(
wait
,
tsk
);
if
(
rw
==
WRITE
)
rw
=
WRITERAW
;
ll_rw_block
(
rw
,
nr
,
bh
);
...
...
fs/select.c
View file @
4a5b5d80
...
...
@@ -37,51 +37,12 @@
* poll table.
*/
/*
* I rewrote this again to make the poll_table size variable, take some
* more shortcuts, improve responsiveness, and remove another race that
* Linus noticed. -- jrs
*/
static
poll_table
*
alloc_wait
(
int
nfds
)
static
void
free_wait
(
struct
poll_table_page
*
p
)
{
poll_table
*
out
;
poll_table
*
walk
;
out
=
(
poll_table
*
)
__get_free_page
(
GFP_KERNEL
);
if
(
out
==
NULL
)
return
NULL
;
out
->
nr
=
0
;
out
->
entry
=
(
struct
poll_table_entry
*
)(
out
+
1
);
out
->
next
=
NULL
;
nfds
-=
__MAX_POLL_TABLE_ENTRIES
;
walk
=
out
;
while
(
nfds
>
0
)
{
poll_table
*
tmp
=
(
poll_table
*
)
__get_free_page
(
GFP_KERNEL
);
if
(
!
tmp
)
{
while
(
out
!=
NULL
)
{
tmp
=
out
->
next
;
free_page
((
unsigned
long
)
out
);
out
=
tmp
;
}
return
NULL
;
}
tmp
->
nr
=
0
;
tmp
->
entry
=
(
struct
poll_table_entry
*
)(
tmp
+
1
);
tmp
->
next
=
NULL
;
walk
->
next
=
tmp
;
walk
=
tmp
;
nfds
-=
__MAX_POLL_TABLE_ENTRIES
;
}
return
out
;
}
static
void
free_wait
(
poll_table
*
p
)
{
struct
poll_table_entry
*
entry
;
poll_table
*
old
;
while
(
p
)
{
struct
poll_table_entry
*
entry
;
struct
poll_table_page
*
old
;
entry
=
p
->
entry
+
p
->
nr
;
while
(
p
->
nr
>
0
)
{
p
->
nr
--
;
...
...
@@ -97,19 +58,33 @@ static void free_wait(poll_table * p)
void
__pollwait
(
struct
file
*
filp
,
wait_queue_head_t
*
wait_address
,
poll_table
*
p
)
{
for
(;;)
{
if
(
p
->
nr
<
__MAX_POLL_TABLE_ENTRIES
)
{
struct
poll_table_entry
*
entry
;
entry
=
p
->
entry
+
p
->
nr
;
get_file
(
filp
);
entry
->
filp
=
filp
;
entry
->
wait_address
=
wait_address
;
init_waitqueue_entry
(
&
entry
->
wait
,
current
);
add_wait_queue
(
wait_address
,
&
entry
->
wait
);
p
->
nr
++
;
struct
poll_table_page
*
table
=
p
->
table
;
if
(
!
table
||
table
->
nr
>=
__MAX_POLL_TABLE_ENTRIES
)
{
struct
poll_table_page
*
new_table
;
new_table
=
(
struct
poll_table_page
*
)
__get_free_page
(
GFP_KERNEL
);
if
(
!
new_table
)
{
p
->
error
=
-
ENOMEM
;
return
;
}
p
=
p
->
next
;
new_table
->
nr
=
0
;
new_table
->
entry
=
(
struct
poll_table_entry
*
)(
new_table
+
1
);
new_table
->
next
=
table
;
p
->
table
=
new_table
;
table
=
new_table
;
}
/* Add a new entry */
{
struct
poll_table_entry
*
entry
;
entry
=
table
->
entry
+
table
->
nr
;
table
->
nr
++
;
get_file
(
filp
);
entry
->
filp
=
filp
;
entry
->
wait_address
=
wait_address
;
init_waitqueue_entry
(
&
entry
->
wait
,
current
);
add_wait_queue
(
wait_address
,
&
entry
->
wait
);
}
}
...
...
@@ -173,12 +148,10 @@ static int max_select_fd(unsigned long n, fd_set_bits *fds)
int
do_select
(
int
n
,
fd_set_bits
*
fds
,
long
*
timeout
)
{
poll_table
*
wait
,
*
orig_
wait
;
poll_table
table
,
*
wait
;
int
retval
,
i
,
off
;
long
__timeout
=
*
timeout
;
orig_wait
=
wait
=
NULL
;
read_lock
(
&
current
->
files
->
file_lock
);
retval
=
max_select_fd
(
n
,
fds
);
read_unlock
(
&
current
->
files
->
file_lock
);
...
...
@@ -186,11 +159,10 @@ int do_select(int n, fd_set_bits *fds, long *timeout)
if
(
retval
<
0
)
return
retval
;
n
=
retval
;
if
(
__timeout
)
{
orig_wait
=
wait
=
alloc_wait
(
n
);
if
(
!
wait
)
return
-
ENOMEM
;
}
table
.
error
=
0
;
table
.
table
=
NULL
;
wait
=
&
table
;
retval
=
0
;
for
(;;)
{
set_current_state
(
TASK_INTERRUPTIBLE
);
...
...
@@ -233,7 +205,7 @@ int do_select(int n, fd_set_bits *fds, long *timeout)
}
current
->
state
=
TASK_RUNNING
;
free_wait
(
orig_wait
);
free_wait
(
table
.
table
);
/*
* Up-to-date the caller timeout.
...
...
@@ -404,7 +376,7 @@ asmlinkage long sys_poll(struct pollfd * ufds, unsigned int nfds, long timeout)
{
int
i
,
j
,
fdcount
,
err
;
struct
pollfd
**
fds
;
poll_table
*
wait
=
NULL
;
poll_table
table
;
int
nchunks
,
nleft
;
/* Do a sanity check on nfds ... */
...
...
@@ -419,11 +391,8 @@ asmlinkage long sys_poll(struct pollfd * ufds, unsigned int nfds, long timeout)
timeout
=
MAX_SCHEDULE_TIMEOUT
;
}
if
(
timeout
)
{
wait
=
alloc_wait
(
nfds
);
if
(
!
wait
)
return
-
ENOMEM
;
}
table
.
error
=
0
;
table
.
table
=
NULL
;
err
=
-
ENOMEM
;
fds
=
NULL
;
...
...
@@ -460,7 +429,7 @@ asmlinkage long sys_poll(struct pollfd * ufds, unsigned int nfds, long timeout)
goto
out_fds1
;
}
fdcount
=
do_poll
(
nfds
,
nchunks
,
nleft
,
fds
,
wait
,
timeout
);
fdcount
=
do_poll
(
nfds
,
nchunks
,
nleft
,
fds
,
&
table
,
timeout
);
/* OK, now copy the revents fields back to user space. */
for
(
i
=
0
;
i
<
nchunks
;
i
++
)
...
...
@@ -483,6 +452,6 @@ asmlinkage long sys_poll(struct pollfd * ufds, unsigned int nfds, long timeout)
if
(
nfds
!=
0
)
kfree
(
fds
);
out:
free_wait
(
wait
);
free_wait
(
table
.
table
);
return
err
;
}
include/asm-i386/pgtable.h
View file @
4a5b5d80
...
...
@@ -244,7 +244,7 @@ extern void __handle_bad_pmd_kernel(pmd_t * pmd);
* Permanent address of a page. Obviously must never be
* called on a highmem page.
*/
#define page_address(page) (
{ if (!(page)->virtual) BUG(); (page)->virtual; }
)
#define page_address(page) (
(page)->virtual
)
#define pages_to_mb(x) ((x) >> (20-PAGE_SHIFT))
#define pte_page(x) (mem_map+pte_pagenr(x))
...
...
include/linux/mm.h
View file @
4a5b5d80
...
...
@@ -316,9 +316,6 @@ extern struct page * alloc_pages_node(int nid, int gfp_mask, unsigned long order
#ifndef CONFIG_DISCONTIGMEM
static
inline
struct
page
*
alloc_pages
(
int
gfp_mask
,
unsigned
long
order
)
{
/* temporary check. */
if
(
contig_page_data
.
node_zonelists
[
gfp_mask
].
gfp_mask
!=
(
gfp_mask
))
BUG
();
/*
* Gets optimized away by the compiler.
*/
...
...
include/linux/poll.h
View file @
4a5b5d80
...
...
@@ -17,13 +17,18 @@ struct poll_table_entry {
wait_queue_head_t
*
wait_address
;
};
typedef
struct
poll_table_struct
{
struct
poll_table_
struct
*
next
;
struct
poll_table_page
{
struct
poll_table_
page
*
next
;
unsigned
int
nr
;
struct
poll_table_entry
*
entry
;
};
typedef
struct
poll_table_struct
{
int
error
;
struct
poll_table_page
*
table
;
}
poll_table
;
#define __MAX_POLL_TABLE_ENTRIES ((PAGE_SIZE - sizeof (
poll_tabl
e)) / sizeof (struct poll_table_entry))
#define __MAX_POLL_TABLE_ENTRIES ((PAGE_SIZE - sizeof (
struct poll_table_pag
e)) / sizeof (struct poll_table_entry))
extern
void
__pollwait
(
struct
file
*
filp
,
wait_queue_head_t
*
wait_address
,
poll_table
*
p
);
...
...
include/linux/types.h
View file @
4a5b5d80
#ifndef _LINUX_TYPES_H
#define _LINUX_TYPES_H
#ifdef __KERNEL__
#include <linux/config.h>
#endif
#include <linux/posix_types.h>
#include <asm/types.h>
...
...
include/linux/wait.h
View file @
4a5b5d80
...
...
@@ -21,7 +21,7 @@
* Temporary debugging help until all code is converted to the new
* waitqueue usage.
*/
#define WAITQUEUE_DEBUG
1
#define WAITQUEUE_DEBUG
0
#if WAITQUEUE_DEBUG
extern
int
printk
(
const
char
*
fmt
,
...);
...
...
mm/vmscan.c
View file @
4a5b5d80
...
...
@@ -626,6 +626,7 @@ int try_to_free_pages(unsigned int gfp_mask)
int
retval
=
1
;
if
(
gfp_mask
&
__GFP_WAIT
)
{
current
->
state
=
TASK_RUNNING
;
current
->
flags
|=
PF_MEMALLOC
;
retval
=
do_try_to_free_pages
(
gfp_mask
);
current
->
flags
&=
~
PF_MEMALLOC
;
...
...
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