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
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