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
eb2b0b9a
Commit
eb2b0b9a
authored
Nov 15, 2002
by
Linus Torvalds
Browse files
Options
Browse Files
Download
Plain Diff
Merge penguin:v2.5/linux
into home.transmeta.com:/home/torvalds/v2.5/linux
parents
40fa9470
2b2cb8a0
Changes
16
Hide whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
186 additions
and
190 deletions
+186
-190
arch/i386/kernel/vm86.c
arch/i386/kernel/vm86.c
+1
-0
drivers/input/serio/i8042.c
drivers/input/serio/i8042.c
+3
-3
drivers/pcmcia/cs.c
drivers/pcmcia/cs.c
+1
-1
drivers/pcmcia/rsrc_mgr.c
drivers/pcmcia/rsrc_mgr.c
+1
-1
drivers/pnp/resource.c
drivers/pnp/resource.c
+1
-0
drivers/scsi/aic7xxx/aic7xxx_osm.h
drivers/scsi/aic7xxx/aic7xxx_osm.h
+1
-0
drivers/scsi/hosts.c
drivers/scsi/hosts.c
+1
-0
drivers/scsi/qla1280.c
drivers/scsi/qla1280.c
+1
-1
fs/dcache.c
fs/dcache.c
+22
-3
include/linux/dcache.h
include/linux/dcache.h
+1
-2
include/linux/file.h
include/linux/file.h
+7
-0
include/linux/interrupt.h
include/linux/interrupt.h
+6
-8
include/linux/sched.h
include/linux/sched.h
+0
-163
include/linux/wait.h
include/linux/wait.h
+138
-6
kernel/ksyms.c
kernel/ksyms.c
+1
-1
sound/drivers/mpu401/mpu401_uart.c
sound/drivers/mpu401/mpu401_uart.c
+1
-1
No files found.
arch/i386/kernel/vm86.c
View file @
eb2b0b9a
...
@@ -31,6 +31,7 @@
...
@@ -31,6 +31,7 @@
*/
*/
#include <linux/errno.h>
#include <linux/errno.h>
#include <linux/interrupt.h>
#include <linux/sched.h>
#include <linux/sched.h>
#include <linux/kernel.h>
#include <linux/kernel.h>
#include <linux/signal.h>
#include <linux/signal.h>
...
...
drivers/input/serio/i8042.c
View file @
eb2b0b9a
...
@@ -10,16 +10,16 @@
...
@@ -10,16 +10,16 @@
* the Free Software Foundation.
* the Free Software Foundation.
*/
*/
#include <asm/io.h>
#include <linux/delay.h>
#include <linux/delay.h>
#include <linux/module.h>
#include <linux/module.h>
#include <linux/interrupt.h>
#include <linux/ioport.h>
#include <linux/ioport.h>
#include <linux/config.h>
#include <linux/config.h>
#include <linux/reboot.h>
#include <linux/reboot.h>
#include <linux/init.h>
#include <linux/init.h>
#include <linux/serio.h>
#include <linux/serio.h>
#include <linux/sched.h>
#include <asm/io.h>
MODULE_AUTHOR
(
"Vojtech Pavlik <vojtech@suse.cz>"
);
MODULE_AUTHOR
(
"Vojtech Pavlik <vojtech@suse.cz>"
);
MODULE_DESCRIPTION
(
"i8042 keyboard and mouse controller driver"
);
MODULE_DESCRIPTION
(
"i8042 keyboard and mouse controller driver"
);
...
...
drivers/pcmcia/cs.c
View file @
eb2b0b9a
...
@@ -40,7 +40,7 @@
...
@@ -40,7 +40,7 @@
#include <linux/errno.h>
#include <linux/errno.h>
#include <linux/slab.h>
#include <linux/slab.h>
#include <linux/mm.h>
#include <linux/mm.h>
#include <linux/
sched
.h>
#include <linux/
interrupt
.h>
#include <linux/timer.h>
#include <linux/timer.h>
#include <linux/ioport.h>
#include <linux/ioport.h>
#include <linux/delay.h>
#include <linux/delay.h>
...
...
drivers/pcmcia/rsrc_mgr.c
View file @
eb2b0b9a
...
@@ -36,7 +36,7 @@
...
@@ -36,7 +36,7 @@
#include <linux/config.h>
#include <linux/config.h>
#include <linux/module.h>
#include <linux/module.h>
#include <linux/init.h>
#include <linux/init.h>
#include <linux/
sched
.h>
#include <linux/
interrupt
.h>
#include <linux/kernel.h>
#include <linux/kernel.h>
#include <linux/errno.h>
#include <linux/errno.h>
#include <linux/types.h>
#include <linux/types.h>
...
...
drivers/pnp/resource.c
View file @
eb2b0b9a
...
@@ -9,6 +9,7 @@
...
@@ -9,6 +9,7 @@
#include <linux/config.h>
#include <linux/config.h>
#include <linux/module.h>
#include <linux/module.h>
#include <linux/errno.h>
#include <linux/errno.h>
#include <linux/interrupt.h>
#include <linux/pci.h>
#include <linux/pci.h>
#include <linux/kernel.h>
#include <linux/kernel.h>
#include <asm/io.h>
#include <asm/io.h>
...
...
drivers/scsi/aic7xxx/aic7xxx_osm.h
View file @
eb2b0b9a
...
@@ -65,6 +65,7 @@
...
@@ -65,6 +65,7 @@
#include <linux/blk.h>
#include <linux/blk.h>
#include <linux/blkdev.h>
#include <linux/blkdev.h>
#include <linux/delay.h>
#include <linux/delay.h>
#include <linux/interrupt.h>
#include <linux/ioport.h>
#include <linux/ioport.h>
#include <linux/slab.h>
#include <linux/slab.h>
#include <linux/pci.h>
#include <linux/pci.h>
...
...
drivers/scsi/hosts.c
View file @
eb2b0b9a
...
@@ -34,6 +34,7 @@
...
@@ -34,6 +34,7 @@
#include <linux/mm.h>
#include <linux/mm.h>
#include <linux/proc_fs.h>
#include <linux/proc_fs.h>
#include <linux/init.h>
#include <linux/init.h>
#include <linux/interrupt.h>
#include <linux/list.h>
#include <linux/list.h>
#include <linux/smp_lock.h>
#include <linux/smp_lock.h>
...
...
drivers/scsi/qla1280.c
View file @
eb2b0b9a
...
@@ -246,10 +246,10 @@
...
@@ -246,10 +246,10 @@
#include <linux/string.h>
#include <linux/string.h>
#include <linux/errno.h>
#include <linux/errno.h>
#include <linux/kernel.h>
#include <linux/kernel.h>
#include <linux/interrupt.h>
#include <linux/ioport.h>
#include <linux/ioport.h>
#include <linux/delay.h>
#include <linux/delay.h>
#include <linux/timer.h>
#include <linux/timer.h>
#include <linux/sched.h>
#include <linux/pci.h>
#include <linux/pci.h>
#include <linux/proc_fs.h>
#include <linux/proc_fs.h>
#include <linux/blk.h>
#include <linux/blk.h>
...
...
fs/dcache.c
View file @
eb2b0b9a
...
@@ -1085,9 +1085,9 @@ void d_move(struct dentry * dentry, struct dentry * target)
...
@@ -1085,9 +1085,9 @@ void d_move(struct dentry * dentry, struct dentry * target)
*
*
* "buflen" should be %PAGE_SIZE or more. Caller holds the dcache_lock.
* "buflen" should be %PAGE_SIZE or more. Caller holds the dcache_lock.
*/
*/
char
*
__d_path
(
struct
dentry
*
dentry
,
struct
vfsmount
*
vfsmnt
,
static
char
*
__d_path
(
struct
dentry
*
dentry
,
struct
vfsmount
*
vfsmnt
,
struct
dentry
*
root
,
struct
vfsmount
*
rootmnt
,
struct
dentry
*
root
,
struct
vfsmount
*
rootmnt
,
char
*
buffer
,
int
buflen
)
char
*
buffer
,
int
buflen
)
{
{
char
*
end
=
buffer
+
buflen
;
char
*
end
=
buffer
+
buflen
;
char
*
retval
;
char
*
retval
;
...
@@ -1140,6 +1140,25 @@ char * __d_path(struct dentry *dentry, struct vfsmount *vfsmnt,
...
@@ -1140,6 +1140,25 @@ char * __d_path(struct dentry *dentry, struct vfsmount *vfsmnt,
return
retval
;
return
retval
;
}
}
/* write full pathname into buffer and return start of pathname */
char
*
d_path
(
struct
dentry
*
dentry
,
struct
vfsmount
*
vfsmnt
,
char
*
buf
,
int
buflen
)
{
char
*
res
;
struct
vfsmount
*
rootmnt
;
struct
dentry
*
root
;
read_lock
(
&
current
->
fs
->
lock
);
rootmnt
=
mntget
(
current
->
fs
->
rootmnt
);
root
=
dget
(
current
->
fs
->
root
);
read_unlock
(
&
current
->
fs
->
lock
);
spin_lock
(
&
dcache_lock
);
res
=
__d_path
(
dentry
,
vfsmnt
,
root
,
rootmnt
,
buf
,
buflen
);
spin_unlock
(
&
dcache_lock
);
dput
(
root
);
mntput
(
rootmnt
);
return
res
;
}
/*
/*
* NOTE! The user-level library version returns a
* NOTE! The user-level library version returns a
* character pointer. The kernel system call just
* character pointer. The kernel system call just
...
...
include/linux/dcache.h
View file @
eb2b0b9a
...
@@ -228,8 +228,7 @@ extern struct dentry * __d_lookup(struct dentry *, struct qstr *);
...
@@ -228,8 +228,7 @@ extern struct dentry * __d_lookup(struct dentry *, struct qstr *);
/* validate "insecure" dentry pointer */
/* validate "insecure" dentry pointer */
extern
int
d_validate
(
struct
dentry
*
,
struct
dentry
*
);
extern
int
d_validate
(
struct
dentry
*
,
struct
dentry
*
);
extern
char
*
__d_path
(
struct
dentry
*
,
struct
vfsmount
*
,
struct
dentry
*
,
extern
char
*
d_path
(
struct
dentry
*
,
struct
vfsmount
*
,
char
*
,
int
);
struct
vfsmount
*
,
char
*
,
int
);
/* Allocation counts.. */
/* Allocation counts.. */
...
...
include/linux/file.h
View file @
eb2b0b9a
...
@@ -41,6 +41,13 @@ extern void put_filp(struct file *);
...
@@ -41,6 +41,13 @@ extern void put_filp(struct file *);
extern
int
get_unused_fd
(
void
);
extern
int
get_unused_fd
(
void
);
extern
void
FASTCALL
(
put_unused_fd
(
unsigned
int
fd
));
extern
void
FASTCALL
(
put_unused_fd
(
unsigned
int
fd
));
extern
struct
file
**
alloc_fd_array
(
int
);
extern
int
expand_fd_array
(
struct
files_struct
*
,
int
nr
);
extern
void
free_fd_array
(
struct
file
**
,
int
);
extern
fd_set
*
alloc_fdset
(
int
);
extern
int
expand_fdset
(
struct
files_struct
*
,
int
nr
);
extern
void
free_fdset
(
fd_set
*
,
int
);
static
inline
struct
file
*
fcheck_files
(
struct
files_struct
*
files
,
unsigned
int
fd
)
static
inline
struct
file
*
fcheck_files
(
struct
files_struct
*
files
,
unsigned
int
fd
)
{
{
...
...
include/linux/interrupt.h
View file @
eb2b0b9a
...
@@ -3,15 +3,11 @@
...
@@ -3,15 +3,11 @@
#define _LINUX_INTERRUPT_H
#define _LINUX_INTERRUPT_H
#include <linux/config.h>
#include <linux/config.h>
#include <linux/sched.h>
#include <linux/kernel.h>
#include <linux/smp.h>
#include <linux/cache.h>
#include <linux/bitops.h>
#include <linux/bitops.h>
#include <asm/atomic.h>
#include <asm/atomic.h>
#include <asm/
system
.h>
#include <asm/
hardirq
.h>
#include <asm/ptrace.h>
#include <asm/ptrace.h>
#include <asm/softirq.h>
struct
irqaction
{
struct
irqaction
{
void
(
*
handler
)(
int
,
void
*
,
struct
pt_regs
*
);
void
(
*
handler
)(
int
,
void
*
,
struct
pt_regs
*
);
...
@@ -22,8 +18,10 @@ struct irqaction {
...
@@ -22,8 +18,10 @@ struct irqaction {
struct
irqaction
*
next
;
struct
irqaction
*
next
;
};
};
#include <asm/hardirq.h>
extern
int
request_irq
(
unsigned
int
,
#include <asm/softirq.h>
void
(
*
handler
)(
int
,
void
*
,
struct
pt_regs
*
),
unsigned
long
,
const
char
*
,
void
*
);
extern
void
free_irq
(
unsigned
int
,
void
*
);
/*
/*
* Temporary defines for UP kernels, until all code gets fixed.
* Temporary defines for UP kernels, until all code gets fixed.
...
...
include/linux/sched.h
View file @
eb2b0b9a
...
@@ -488,31 +488,10 @@ extern unsigned long itimer_ticks;
...
@@ -488,31 +488,10 @@ extern unsigned long itimer_ticks;
extern
unsigned
long
itimer_next
;
extern
unsigned
long
itimer_next
;
extern
void
do_timer
(
struct
pt_regs
*
);
extern
void
do_timer
(
struct
pt_regs
*
);
extern
void
FASTCALL
(
__wake_up
(
wait_queue_head_t
*
q
,
unsigned
int
mode
,
int
nr
));
extern
void
FASTCALL
(
__wake_up_locked
(
wait_queue_head_t
*
q
,
unsigned
int
mode
));
extern
void
FASTCALL
(
__wake_up_sync
(
wait_queue_head_t
*
q
,
unsigned
int
mode
,
int
nr
));
extern
void
FASTCALL
(
sleep_on
(
wait_queue_head_t
*
q
));
extern
long
FASTCALL
(
sleep_on_timeout
(
wait_queue_head_t
*
q
,
signed
long
timeout
));
extern
void
FASTCALL
(
interruptible_sleep_on
(
wait_queue_head_t
*
q
));
extern
long
FASTCALL
(
interruptible_sleep_on_timeout
(
wait_queue_head_t
*
q
,
signed
long
timeout
));
extern
int
FASTCALL
(
wake_up_process
(
struct
task_struct
*
tsk
));
extern
int
FASTCALL
(
wake_up_process
(
struct
task_struct
*
tsk
));
extern
void
FASTCALL
(
wake_up_forked_process
(
struct
task_struct
*
tsk
));
extern
void
FASTCALL
(
wake_up_forked_process
(
struct
task_struct
*
tsk
));
extern
void
FASTCALL
(
sched_exit
(
task_t
*
p
));
extern
void
FASTCALL
(
sched_exit
(
task_t
*
p
));
#define wake_up(x) __wake_up((x),TASK_UNINTERRUPTIBLE | TASK_INTERRUPTIBLE, 1)
#define wake_up_nr(x, nr) __wake_up((x),TASK_UNINTERRUPTIBLE | TASK_INTERRUPTIBLE, nr)
#define wake_up_all(x) __wake_up((x),TASK_UNINTERRUPTIBLE | TASK_INTERRUPTIBLE, 0)
#define wake_up_interruptible(x) __wake_up((x),TASK_INTERRUPTIBLE, 1)
#define wake_up_interruptible_nr(x, nr) __wake_up((x),TASK_INTERRUPTIBLE, nr)
#define wake_up_interruptible_all(x) __wake_up((x),TASK_INTERRUPTIBLE, 0)
#define wake_up_locked(x) __wake_up_locked((x), TASK_UNINTERRUPTIBLE | TASK_INTERRUPTIBLE)
#ifdef CONFIG_SMP
#define wake_up_interruptible_sync(x) __wake_up_sync((x),TASK_INTERRUPTIBLE, 1)
#else
#define wake_up_interruptible_sync(x) __wake_up((x),TASK_INTERRUPTIBLE, 1)
#endif
asmlinkage
long
sys_wait4
(
pid_t
pid
,
unsigned
int
*
stat_addr
,
int
options
,
struct
rusage
*
ru
);
asmlinkage
long
sys_wait4
(
pid_t
pid
,
unsigned
int
*
stat_addr
,
int
options
,
struct
rusage
*
ru
);
extern
int
in_group_p
(
gid_t
);
extern
int
in_group_p
(
gid_t
);
...
@@ -588,11 +567,6 @@ static inline int sas_ss_flags(unsigned long sp)
...
@@ -588,11 +567,6 @@ static inline int sas_ss_flags(unsigned long sp)
:
on_sig_stack
(
sp
)
?
SS_ONSTACK
:
0
);
:
on_sig_stack
(
sp
)
?
SS_ONSTACK
:
0
);
}
}
extern
int
request_irq
(
unsigned
int
,
void
(
*
handler
)(
int
,
void
*
,
struct
pt_regs
*
),
unsigned
long
,
const
char
*
,
void
*
);
extern
void
free_irq
(
unsigned
int
,
void
*
);
/* capable prototype and code moved to security.[hc] */
/* capable prototype and code moved to security.[hc] */
#include <linux/security.h>
#include <linux/security.h>
#if 0
#if 0
...
@@ -627,17 +601,6 @@ extern void mmput(struct mm_struct *);
...
@@ -627,17 +601,6 @@ extern void mmput(struct mm_struct *);
/* Remove the current tasks stale references to the old mm_struct */
/* Remove the current tasks stale references to the old mm_struct */
extern
void
mm_release
(
void
);
extern
void
mm_release
(
void
);
/*
* Routines for handling the fd arrays
*/
extern
struct
file
**
alloc_fd_array
(
int
);
extern
int
expand_fd_array
(
struct
files_struct
*
,
int
nr
);
extern
void
free_fd_array
(
struct
file
**
,
int
);
extern
fd_set
*
alloc_fdset
(
int
);
extern
int
expand_fdset
(
struct
files_struct
*
,
int
nr
);
extern
void
free_fdset
(
fd_set
*
,
int
);
extern
int
copy_thread
(
int
,
unsigned
long
,
unsigned
long
,
unsigned
long
,
struct
task_struct
*
,
struct
pt_regs
*
);
extern
int
copy_thread
(
int
,
unsigned
long
,
unsigned
long
,
unsigned
long
,
struct
task_struct
*
,
struct
pt_regs
*
);
extern
void
flush_thread
(
void
);
extern
void
flush_thread
(
void
);
extern
void
exit_thread
(
void
);
extern
void
exit_thread
(
void
);
...
@@ -654,10 +617,6 @@ extern task_t *child_reaper;
...
@@ -654,10 +617,6 @@ extern task_t *child_reaper;
extern
int
do_execve
(
char
*
,
char
**
,
char
**
,
struct
pt_regs
*
);
extern
int
do_execve
(
char
*
,
char
**
,
char
**
,
struct
pt_regs
*
);
extern
struct
task_struct
*
do_fork
(
unsigned
long
,
unsigned
long
,
struct
pt_regs
*
,
unsigned
long
,
int
*
);
extern
struct
task_struct
*
do_fork
(
unsigned
long
,
unsigned
long
,
struct
pt_regs
*
,
unsigned
long
,
int
*
);
extern
void
FASTCALL
(
add_wait_queue
(
wait_queue_head_t
*
q
,
wait_queue_t
*
wait
));
extern
void
FASTCALL
(
add_wait_queue_exclusive
(
wait_queue_head_t
*
q
,
wait_queue_t
*
wait
));
extern
void
FASTCALL
(
remove_wait_queue
(
wait_queue_head_t
*
q
,
wait_queue_t
*
wait
));
#ifdef CONFIG_SMP
#ifdef CONFIG_SMP
extern
void
wait_task_inactive
(
task_t
*
p
);
extern
void
wait_task_inactive
(
task_t
*
p
);
#else
#else
...
@@ -665,108 +624,6 @@ extern void wait_task_inactive(task_t * p);
...
@@ -665,108 +624,6 @@ extern void wait_task_inactive(task_t * p);
#endif
#endif
extern
void
kick_if_running
(
task_t
*
p
);
extern
void
kick_if_running
(
task_t
*
p
);
#define __wait_event(wq, condition) \
do { \
wait_queue_t __wait; \
init_waitqueue_entry(&__wait, current); \
\
add_wait_queue(&wq, &__wait); \
for (;;) { \
set_current_state(TASK_UNINTERRUPTIBLE); \
if (condition) \
break; \
schedule(); \
} \
current->state = TASK_RUNNING; \
remove_wait_queue(&wq, &__wait); \
} while (0)
#define wait_event(wq, condition) \
do { \
if (condition) \
break; \
__wait_event(wq, condition); \
} while (0)
#define __wait_event_interruptible(wq, condition, ret) \
do { \
wait_queue_t __wait; \
init_waitqueue_entry(&__wait, current); \
\
add_wait_queue(&wq, &__wait); \
for (;;) { \
set_current_state(TASK_INTERRUPTIBLE); \
if (condition) \
break; \
if (!signal_pending(current)) { \
schedule(); \
continue; \
} \
ret = -ERESTARTSYS; \
break; \
} \
current->state = TASK_RUNNING; \
remove_wait_queue(&wq, &__wait); \
} while (0)
#define wait_event_interruptible(wq, condition) \
({ \
int __ret = 0; \
if (!(condition)) \
__wait_event_interruptible(wq, condition, __ret); \
__ret; \
})
#define __wait_event_interruptible_timeout(wq, condition, ret) \
do { \
wait_queue_t __wait; \
init_waitqueue_entry(&__wait, current); \
\
add_wait_queue(&wq, &__wait); \
for (;;) { \
set_current_state(TASK_INTERRUPTIBLE); \
if (condition) \
break; \
if (!signal_pending(current)) { \
ret = schedule_timeout(ret); \
if (!ret) \
break; \
continue; \
} \
ret = -ERESTARTSYS; \
break; \
} \
current->state = TASK_RUNNING; \
remove_wait_queue(&wq, &__wait); \
} while (0)
#define wait_event_interruptible_timeout(wq, condition, timeout) \
({ \
long __ret = timeout; \
if (!(condition)) \
__wait_event_interruptible_timeout(wq, condition, __ret); \
__ret; \
})
/*
* Must be called with the spinlock in the wait_queue_head_t held.
*/
static
inline
void
add_wait_queue_exclusive_locked
(
wait_queue_head_t
*
q
,
wait_queue_t
*
wait
)
{
wait
->
flags
|=
WQ_FLAG_EXCLUSIVE
;
__add_wait_queue_tail
(
q
,
wait
);
}
/*
* Must be called with the spinlock in the wait_queue_head_t held.
*/
static
inline
void
remove_wait_queue_locked
(
wait_queue_head_t
*
q
,
wait_queue_t
*
wait
)
{
__remove_wait_queue
(
q
,
wait
);
}
#define remove_parent(p) list_del_init(&(p)->sibling)
#define remove_parent(p) list_del_init(&(p)->sibling)
#define add_parent(p, parent) list_add_tail(&(p)->sibling,&(parent)->children)
#define add_parent(p, parent) list_add_tail(&(p)->sibling,&(parent)->children)
...
@@ -848,26 +705,6 @@ static inline void task_unlock(struct task_struct *p)
...
@@ -848,26 +705,6 @@ static inline void task_unlock(struct task_struct *p)
{
{
spin_unlock
(
&
p
->
alloc_lock
);
spin_unlock
(
&
p
->
alloc_lock
);
}
}
/* write full pathname into buffer and return start of pathname */
static
inline
char
*
d_path
(
struct
dentry
*
dentry
,
struct
vfsmount
*
vfsmnt
,
char
*
buf
,
int
buflen
)
{
char
*
res
;
struct
vfsmount
*
rootmnt
;
struct
dentry
*
root
;
read_lock
(
&
current
->
fs
->
lock
);
rootmnt
=
mntget
(
current
->
fs
->
rootmnt
);
root
=
dget
(
current
->
fs
->
root
);
read_unlock
(
&
current
->
fs
->
lock
);
spin_lock
(
&
dcache_lock
);
res
=
__d_path
(
dentry
,
vfsmnt
,
root
,
rootmnt
,
buf
,
buflen
);
spin_unlock
(
&
dcache_lock
);
dput
(
root
);
mntput
(
rootmnt
);
return
res
;
}
/**
/**
* get_task_mm - acquire a reference to the task's mm
* get_task_mm - acquire a reference to the task's mm
...
...
include/linux/wait.h
View file @
eb2b0b9a
...
@@ -10,14 +10,11 @@
...
@@ -10,14 +10,11 @@
#ifdef __KERNEL__
#ifdef __KERNEL__
#include <linux/
kernel
.h>
#include <linux/
config
.h>
#include <linux/list.h>
#include <linux/list.h>
#include <linux/stddef.h>
#include <linux/stddef.h>
#include <linux/spinlock.h>
#include <linux/spinlock.h>
#include <linux/config.h>
#include <asm/system.h>
#include <asm/page.h>
#include <asm/processor.h>
typedef
struct
__wait_queue
wait_queue_t
;
typedef
struct
__wait_queue
wait_queue_t
;
typedef
int
(
*
wait_queue_func_t
)(
wait_queue_t
*
wait
,
unsigned
mode
,
int
sync
);
typedef
int
(
*
wait_queue_func_t
)(
wait_queue_t
*
wait
,
unsigned
mode
,
int
sync
);
...
@@ -83,6 +80,10 @@ static inline int waitqueue_active(wait_queue_head_t *q)
...
@@ -83,6 +80,10 @@ static inline int waitqueue_active(wait_queue_head_t *q)
return
!
list_empty
(
&
q
->
task_list
);
return
!
list_empty
(
&
q
->
task_list
);
}
}
extern
void
FASTCALL
(
add_wait_queue
(
wait_queue_head_t
*
q
,
wait_queue_t
*
wait
));
extern
void
FASTCALL
(
add_wait_queue_exclusive
(
wait_queue_head_t
*
q
,
wait_queue_t
*
wait
));
extern
void
FASTCALL
(
remove_wait_queue
(
wait_queue_head_t
*
q
,
wait_queue_t
*
wait
));
static
inline
void
__add_wait_queue
(
wait_queue_head_t
*
head
,
wait_queue_t
*
new
)
static
inline
void
__add_wait_queue
(
wait_queue_head_t
*
head
,
wait_queue_t
*
new
)
{
{
list_add
(
&
new
->
task_list
,
&
head
->
task_list
);
list_add
(
&
new
->
task_list
,
&
head
->
task_list
);
...
@@ -103,6 +104,125 @@ static inline void __remove_wait_queue(wait_queue_head_t *head,
...
@@ -103,6 +104,125 @@ static inline void __remove_wait_queue(wait_queue_head_t *head,
list_del
(
&
old
->
task_list
);
list_del
(
&
old
->
task_list
);
}
}
extern
void
FASTCALL
(
__wake_up
(
wait_queue_head_t
*
q
,
unsigned
int
mode
,
int
nr
));
extern
void
FASTCALL
(
__wake_up_locked
(
wait_queue_head_t
*
q
,
unsigned
int
mode
));
extern
void
FASTCALL
(
__wake_up_sync
(
wait_queue_head_t
*
q
,
unsigned
int
mode
,
int
nr
));
#define wake_up(x) __wake_up((x),TASK_UNINTERRUPTIBLE | TASK_INTERRUPTIBLE, 1)
#define wake_up_nr(x, nr) __wake_up((x),TASK_UNINTERRUPTIBLE | TASK_INTERRUPTIBLE, nr)
#define wake_up_all(x) __wake_up((x),TASK_UNINTERRUPTIBLE | TASK_INTERRUPTIBLE, 0)
#define wake_up_interruptible(x) __wake_up((x),TASK_INTERRUPTIBLE, 1)
#define wake_up_interruptible_nr(x, nr) __wake_up((x),TASK_INTERRUPTIBLE, nr)
#define wake_up_interruptible_all(x) __wake_up((x),TASK_INTERRUPTIBLE, 0)
#define wake_up_locked(x) __wake_up_locked((x), TASK_UNINTERRUPTIBLE | TASK_INTERRUPTIBLE)
#ifdef CONFIG_SMP
#define wake_up_interruptible_sync(x) __wake_up_sync((x),TASK_INTERRUPTIBLE, 1)
#else
#define wake_up_interruptible_sync(x) __wake_up((x),TASK_INTERRUPTIBLE, 1)
#endif
#define __wait_event(wq, condition) \
do { \
wait_queue_t __wait; \
init_waitqueue_entry(&__wait, current); \
\
add_wait_queue(&wq, &__wait); \
for (;;) { \
set_current_state(TASK_UNINTERRUPTIBLE); \
if (condition) \
break; \
schedule(); \
} \
current->state = TASK_RUNNING; \
remove_wait_queue(&wq, &__wait); \
} while (0)
#define wait_event(wq, condition) \
do { \
if (condition) \
break; \
__wait_event(wq, condition); \
} while (0)
#define __wait_event_interruptible(wq, condition, ret) \
do { \
wait_queue_t __wait; \
init_waitqueue_entry(&__wait, current); \
\
add_wait_queue(&wq, &__wait); \
for (;;) { \
set_current_state(TASK_INTERRUPTIBLE); \
if (condition) \
break; \
if (!signal_pending(current)) { \
schedule(); \
continue; \
} \
ret = -ERESTARTSYS; \
break; \
} \
current->state = TASK_RUNNING; \
remove_wait_queue(&wq, &__wait); \
} while (0)
#define wait_event_interruptible(wq, condition) \
({ \
int __ret = 0; \
if (!(condition)) \
__wait_event_interruptible(wq, condition, __ret); \
__ret; \
})
#define __wait_event_interruptible_timeout(wq, condition, ret) \
do { \
wait_queue_t __wait; \
init_waitqueue_entry(&__wait, current); \
\
add_wait_queue(&wq, &__wait); \
for (;;) { \
set_current_state(TASK_INTERRUPTIBLE); \
if (condition) \
break; \
if (!signal_pending(current)) { \
ret = schedule_timeout(ret); \
if (!ret) \
break; \
continue; \
} \
ret = -ERESTARTSYS; \
break; \
} \
current->state = TASK_RUNNING; \
remove_wait_queue(&wq, &__wait); \
} while (0)
#define wait_event_interruptible_timeout(wq, condition, timeout) \
({ \
long __ret = timeout; \
if (!(condition)) \
__wait_event_interruptible_timeout(wq, condition, __ret); \
__ret; \
})
/*
* Must be called with the spinlock in the wait_queue_head_t held.
*/
static
inline
void
add_wait_queue_exclusive_locked
(
wait_queue_head_t
*
q
,
wait_queue_t
*
wait
)
{
wait
->
flags
|=
WQ_FLAG_EXCLUSIVE
;
__add_wait_queue_tail
(
q
,
wait
);
}
/*
* Must be called with the spinlock in the wait_queue_head_t held.
*/
static
inline
void
remove_wait_queue_locked
(
wait_queue_head_t
*
q
,
wait_queue_t
*
wait
)
{
__remove_wait_queue
(
q
,
wait
);
}
#define add_wait_queue_cond(q, wait, cond) \
#define add_wait_queue_cond(q, wait, cond) \
({ \
({ \
unsigned long flags; \
unsigned long flags; \
...
@@ -120,7 +240,19 @@ static inline void __remove_wait_queue(wait_queue_head_t *head,
...
@@ -120,7 +240,19 @@ static inline void __remove_wait_queue(wait_queue_head_t *head,
})
})
/*
/*
* Waitqueue's which are removed from the waitqueue_head at wakeup time
* These are the old interfaces to sleep waiting for an event.
* They are racy. DO NOT use them, use the wait_event* interfaces above.
* We plan to remove these interfaces during 2.7.
*/
extern
void
FASTCALL
(
sleep_on
(
wait_queue_head_t
*
q
));
extern
long
FASTCALL
(
sleep_on_timeout
(
wait_queue_head_t
*
q
,
signed
long
timeout
));
extern
void
FASTCALL
(
interruptible_sleep_on
(
wait_queue_head_t
*
q
));
extern
long
FASTCALL
(
interruptible_sleep_on_timeout
(
wait_queue_head_t
*
q
,
signed
long
timeout
));
/*
* Waitqueues which are removed from the waitqueue_head at wakeup time
*/
*/
void
FASTCALL
(
prepare_to_wait
(
wait_queue_head_t
*
q
,
void
FASTCALL
(
prepare_to_wait
(
wait_queue_head_t
*
q
,
wait_queue_t
*
wait
,
int
state
));
wait_queue_t
*
wait
,
int
state
));
...
...
kernel/ksyms.c
View file @
eb2b0b9a
...
@@ -166,7 +166,7 @@ EXPORT_SYMBOL(d_alloc);
...
@@ -166,7 +166,7 @@ EXPORT_SYMBOL(d_alloc);
EXPORT_SYMBOL
(
d_alloc_anon
);
EXPORT_SYMBOL
(
d_alloc_anon
);
EXPORT_SYMBOL
(
d_splice_alias
);
EXPORT_SYMBOL
(
d_splice_alias
);
EXPORT_SYMBOL
(
d_lookup
);
EXPORT_SYMBOL
(
d_lookup
);
EXPORT_SYMBOL
(
__
d_path
);
EXPORT_SYMBOL
(
d_path
);
EXPORT_SYMBOL
(
mark_buffer_dirty
);
EXPORT_SYMBOL
(
mark_buffer_dirty
);
EXPORT_SYMBOL
(
end_buffer_io_sync
);
EXPORT_SYMBOL
(
end_buffer_io_sync
);
EXPORT_SYMBOL
(
__mark_inode_dirty
);
EXPORT_SYMBOL
(
__mark_inode_dirty
);
...
...
sound/drivers/mpu401/mpu401_uart.c
View file @
eb2b0b9a
...
@@ -29,7 +29,7 @@
...
@@ -29,7 +29,7 @@
#include <linux/init.h>
#include <linux/init.h>
#include <linux/slab.h>
#include <linux/slab.h>
#include <linux/ioport.h>
#include <linux/ioport.h>
#include <linux/
sched
.h>
#include <linux/
interrupt
.h>
#include <linux/errno.h>
#include <linux/errno.h>
#include <sound/core.h>
#include <sound/core.h>
#include <sound/mpu401.h>
#include <sound/mpu401.h>
...
...
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