summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@athlon.transmeta.com>2002-02-04 23:59:34 -0800
committerLinus Torvalds <torvalds@athlon.transmeta.com>2002-02-04 23:59:34 -0800
commitd0415686774477153ca911a612f74c2d2bb11be6 (patch)
treee5f35894e9ff6c0da29668e5560204fd49db5eb1 /include
parent25aa595a676f130148eba073cdd5a8d57e9d238f (diff)
v2.5.1.3 -> v2.5.1.4
- Jens Axboe: more bio updates, fix some request list bogosity under load - Al Viro: export seq_xxx functions - Manfred Spraul: include file cleanups, pc110pad compile fix - David Woodhouse: fix JFFS2 write error handling - Dave Jones: start merging up with 2.4.x patches - Manfred Spraul: coredump fixes, FS event counter cleanups - me: fix SCSI CD-ROM sectorsize BIO breakage
Diffstat (limited to 'include')
-rw-r--r--include/linux/blkdev.h4
-rw-r--r--include/linux/ext2_fs_sb.h1
-rw-r--r--include/linux/file.h2
-rw-r--r--include/linux/gfp.h81
-rw-r--r--include/linux/i8k.h8
-rw-r--r--include/linux/interrupt.h2
-rw-r--r--include/linux/isdn.h1
-rw-r--r--include/linux/kernel.h10
-rw-r--r--include/linux/linkage.h10
-rw-r--r--include/linux/mm.h78
-rw-r--r--include/linux/parport.h1
-rw-r--r--include/linux/proc_fs.h2
-rw-r--r--include/linux/reiserfs_fs.h2
-rw-r--r--include/linux/shm.h1
-rw-r--r--include/linux/slab.h5
-rw-r--r--include/linux/sunrpc/clnt.h1
-rw-r--r--include/linux/wait.h112
17 files changed, 116 insertions, 205 deletions
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
index 1b173a6e7f91..d084e28ef4b9 100644
--- a/include/linux/blkdev.h
+++ b/include/linux/blkdev.h
@@ -228,8 +228,8 @@ extern unsigned long blk_max_low_pfn, blk_max_pfn;
* BLK_BOUNCE_ANY : don't bounce anything
* BLK_BOUNCE_ISA : bounce pages above ISA DMA boundary
*/
-#define BLK_BOUNCE_HIGH ((blk_max_low_pfn + 1) << PAGE_SHIFT)
-#define BLK_BOUNCE_ANY ((blk_max_pfn + 1) << PAGE_SHIFT)
+#define BLK_BOUNCE_HIGH (blk_max_low_pfn << PAGE_SHIFT)
+#define BLK_BOUNCE_ANY (blk_max_pfn << PAGE_SHIFT)
#define BLK_BOUNCE_ISA (ISA_DMA_THRESHOLD)
extern int init_emergency_isa_pool(void);
diff --git a/include/linux/ext2_fs_sb.h b/include/linux/ext2_fs_sb.h
index 2e72dfbefd00..47f53158e755 100644
--- a/include/linux/ext2_fs_sb.h
+++ b/include/linux/ext2_fs_sb.h
@@ -56,6 +56,7 @@ struct ext2_sb_info {
int s_desc_per_block_bits;
int s_inode_size;
int s_first_ino;
+ u32 s_next_generation;
};
#endif /* _LINUX_EXT2_FS_SB */
diff --git a/include/linux/file.h b/include/linux/file.h
index 02edb29c31da..0994be6129fd 100644
--- a/include/linux/file.h
+++ b/include/linux/file.h
@@ -5,6 +5,8 @@
#ifndef __LINUX_FILE_H
#define __LINUX_FILE_H
+#include <linux/sched.h>
+
extern void FASTCALL(fput(struct file *));
extern struct file * FASTCALL(fget(unsigned int fd));
diff --git a/include/linux/gfp.h b/include/linux/gfp.h
new file mode 100644
index 000000000000..63fac87d50ef
--- /dev/null
+++ b/include/linux/gfp.h
@@ -0,0 +1,81 @@
+#ifndef __LINUX_GFP_H
+#define __LINUX_GFP_H
+
+#include <linux/mmzone.h>
+#include <linux/stddef.h>
+#include <linux/linkage.h>
+/*
+ * GFP bitmasks..
+ */
+/* Zone modifiers in GFP_ZONEMASK (see linux/mmzone.h - low four bits) */
+#define __GFP_DMA 0x01
+#define __GFP_HIGHMEM 0x02
+
+/* Action modifiers - doesn't change the zoning */
+#define __GFP_WAIT 0x10 /* Can wait and reschedule? */
+#define __GFP_HIGH 0x20 /* Should access emergency pools? */
+#define __GFP_IO 0x40 /* Can start low memory physical IO? */
+#define __GFP_HIGHIO 0x80 /* Can start high mem physical IO? */
+#define __GFP_FS 0x100 /* Can call down to low-level FS? */
+
+#define GFP_NOHIGHIO (__GFP_HIGH | __GFP_WAIT | __GFP_IO)
+#define GFP_NOIO (__GFP_HIGH | __GFP_WAIT)
+#define GFP_NOFS (__GFP_HIGH | __GFP_WAIT | __GFP_IO | __GFP_HIGHIO)
+#define GFP_ATOMIC (__GFP_HIGH)
+#define GFP_USER ( __GFP_WAIT | __GFP_IO | __GFP_HIGHIO | __GFP_FS)
+#define GFP_HIGHUSER ( __GFP_WAIT | __GFP_IO | __GFP_HIGHIO | __GFP_FS | __GFP_HIGHMEM)
+#define GFP_KERNEL (__GFP_HIGH | __GFP_WAIT | __GFP_IO | __GFP_HIGHIO | __GFP_FS)
+#define GFP_NFS (__GFP_HIGH | __GFP_WAIT | __GFP_IO | __GFP_HIGHIO | __GFP_FS)
+#define GFP_KSWAPD ( __GFP_WAIT | __GFP_IO | __GFP_HIGHIO | __GFP_FS)
+
+/* Flag - indicates that the buffer will be suitable for DMA. Ignored on some
+ platforms, used as appropriate on others */
+
+#define GFP_DMA __GFP_DMA
+
+/*
+ * There is only one page-allocator function, and two main namespaces to
+ * it. The alloc_page*() variants return 'struct page *' and as such
+ * can allocate highmem pages, the *get*page*() variants return
+ * virtual kernel addresses to the allocated page(s).
+ */
+extern struct page * FASTCALL(_alloc_pages(unsigned int gfp_mask, unsigned int order));
+extern struct page * FASTCALL(__alloc_pages(unsigned int gfp_mask, unsigned int order, zonelist_t *zonelist));
+extern struct page * alloc_pages_node(int nid, unsigned int gfp_mask, unsigned int order);
+
+static inline struct page * alloc_pages(unsigned int gfp_mask, unsigned int order)
+{
+ /*
+ * Gets optimized away by the compiler.
+ */
+ if (order >= MAX_ORDER)
+ return NULL;
+ return _alloc_pages(gfp_mask, order);
+}
+
+#define alloc_page(gfp_mask) alloc_pages(gfp_mask, 0)
+
+extern unsigned long FASTCALL(__get_free_pages(unsigned int gfp_mask, unsigned int order));
+extern unsigned long FASTCALL(get_zeroed_page(unsigned int gfp_mask));
+
+#define __get_free_page(gfp_mask) \
+ __get_free_pages((gfp_mask),0)
+
+#define __get_dma_pages(gfp_mask, order) \
+ __get_free_pages((gfp_mask) | GFP_DMA,(order))
+
+/*
+ * The old interface name will be removed in 2.5:
+ */
+#define get_free_page get_zeroed_page
+
+/*
+ * There is only one 'core' page-freeing function.
+ */
+extern void FASTCALL(__free_pages(struct page *page, unsigned int order));
+extern void FASTCALL(free_pages(unsigned long addr, unsigned int order));
+
+#define __free_page(page) __free_pages((page), 0)
+#define free_page(addr) free_pages((addr),0)
+
+#endif /* __LINUX_GFP_H */
diff --git a/include/linux/i8k.h b/include/linux/i8k.h
index 1e75f153e332..a6d3b694a0cd 100644
--- a/include/linux/i8k.h
+++ b/include/linux/i8k.h
@@ -1,5 +1,5 @@
/*
- * i8k.h -- Linux driver for accessing the SMM BIOS on Dell I8000 laptops
+ * i8k.h -- Linux driver for accessing the SMM BIOS on Dell laptops
*
* Copyright (C) 2001 Massimo Dal Zotto <dz@debian.org>
*
@@ -36,9 +36,9 @@
#define I8K_FAN_HIGH 2
#define I8K_FAN_MAX I8K_FAN_HIGH
-#define I8K_VOL_UP 0x01
-#define I8K_VOL_DOWN 0x02
-#define I8K_VOL_MUTE 0x03
+#define I8K_VOL_UP 1
+#define I8K_VOL_DOWN 2
+#define I8K_VOL_MUTE 4
#define I8K_AC 1
#define I8K_BATTERY 0
diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h
index d2afbde8212c..f4b23c425760 100644
--- a/include/linux/interrupt.h
+++ b/include/linux/interrupt.h
@@ -3,12 +3,14 @@
#define _LINUX_INTERRUPT_H
#include <linux/config.h>
+#include <linux/sched.h>
#include <linux/kernel.h>
#include <linux/smp.h>
#include <linux/cache.h>
#include <asm/bitops.h>
#include <asm/atomic.h>
+#include <asm/system.h>
#include <asm/ptrace.h>
struct irqaction {
diff --git a/include/linux/isdn.h b/include/linux/isdn.h
index 0f1dda941c26..6f6ae516028f 100644
--- a/include/linux/isdn.h
+++ b/include/linux/isdn.h
@@ -150,7 +150,6 @@ typedef struct {
#include <linux/errno.h>
#include <linux/fs.h>
#include <linux/major.h>
-#include <asm/segment.h>
#include <asm/io.h>
#include <linux/kernel.h>
#include <linux/signal.h>
diff --git a/include/linux/kernel.h b/include/linux/kernel.h
index 523e38822f65..8749f6f0c302 100644
--- a/include/linux/kernel.h
+++ b/include/linux/kernel.h
@@ -37,16 +37,6 @@
#define KERN_INFO "<6>" /* informational */
#define KERN_DEBUG "<7>" /* debug-level messages */
-# define NORET_TYPE /**/
-# define ATTRIB_NORET __attribute__((noreturn))
-# define NORET_AND noreturn,
-
-#ifdef __i386__
-#define FASTCALL(x) x __attribute__((regparm(3)))
-#else
-#define FASTCALL(x) x
-#endif
-
struct completion;
extern struct notifier_block *panic_notifier_list;
diff --git a/include/linux/linkage.h b/include/linux/linkage.h
index 23b9ae463b67..e9bf89431961 100644
--- a/include/linux/linkage.h
+++ b/include/linux/linkage.h
@@ -60,4 +60,14 @@
#endif
+# define NORET_TYPE /**/
+# define ATTRIB_NORET __attribute__((noreturn))
+# define NORET_AND noreturn,
+
+#ifdef __i386__
+#define FASTCALL(x) x __attribute__((regparm(3)))
+#else
+#define FASTCALL(x) x
+#endif
+
#endif
diff --git a/include/linux/mm.h b/include/linux/mm.h
index 5a85039279b0..51363ad4e1e0 100644
--- a/include/linux/mm.h
+++ b/include/linux/mm.h
@@ -7,6 +7,7 @@
#ifdef __KERNEL__
#include <linux/config.h>
+#include <linux/gfp.h>
#include <linux/string.h>
#include <linux/list.h>
#include <linux/mmzone.h>
@@ -344,51 +345,6 @@ extern void FASTCALL(set_page_dirty(struct page *));
/* The array of struct pages */
extern mem_map_t * mem_map;
-/*
- * There is only one page-allocator function, and two main namespaces to
- * it. The alloc_page*() variants return 'struct page *' and as such
- * can allocate highmem pages, the *get*page*() variants return
- * virtual kernel addresses to the allocated page(s).
- */
-extern struct page * FASTCALL(_alloc_pages(unsigned int gfp_mask, unsigned int order));
-extern struct page * FASTCALL(__alloc_pages(unsigned int gfp_mask, unsigned int order, zonelist_t *zonelist));
-extern struct page * alloc_pages_node(int nid, unsigned int gfp_mask, unsigned int order);
-
-static inline struct page * alloc_pages(unsigned int gfp_mask, unsigned int order)
-{
- /*
- * Gets optimized away by the compiler.
- */
- if (order >= MAX_ORDER)
- return NULL;
- return _alloc_pages(gfp_mask, order);
-}
-
-#define alloc_page(gfp_mask) alloc_pages(gfp_mask, 0)
-
-extern unsigned long FASTCALL(__get_free_pages(unsigned int gfp_mask, unsigned int order));
-extern unsigned long FASTCALL(get_zeroed_page(unsigned int gfp_mask));
-
-#define __get_free_page(gfp_mask) \
- __get_free_pages((gfp_mask),0)
-
-#define __get_dma_pages(gfp_mask, order) \
- __get_free_pages((gfp_mask) | GFP_DMA,(order))
-
-/*
- * The old interface name will be removed in 2.5:
- */
-#define get_free_page get_zeroed_page
-
-/*
- * There is only one 'core' page-freeing function.
- */
-extern void FASTCALL(__free_pages(struct page *page, unsigned int order));
-extern void FASTCALL(free_pages(unsigned long addr, unsigned int order));
-
-#define __free_page(page) __free_pages((page), 0)
-#define free_page(addr) free_pages((addr),0)
-
extern void show_free_areas(void);
extern void show_free_areas_node(pg_data_t *pgdat);
@@ -418,6 +374,9 @@ extern int ptrace_detach(struct task_struct *, unsigned int);
extern void ptrace_disable(struct task_struct *);
extern int ptrace_check_attach(struct task_struct *task, int kill);
+int get_user_pages(struct task_struct *tsk, struct mm_struct *mm, unsigned long start,
+ int len, int write, int force, struct page **pages, struct vm_area_struct **vmas);
+
/*
* On a two-level page table, this ends up being trivial. Thus the
* inlining and the symmetry break with pte_alloc() that does all
@@ -512,35 +471,6 @@ extern void truncate_inode_pages(struct address_space *, loff_t);
extern int filemap_sync(struct vm_area_struct *, unsigned long, size_t, unsigned int);
extern struct page *filemap_nopage(struct vm_area_struct *, unsigned long, int);
-/*
- * GFP bitmasks..
- */
-/* Zone modifiers in GFP_ZONEMASK (see linux/mmzone.h - low four bits) */
-#define __GFP_DMA 0x01
-#define __GFP_HIGHMEM 0x02
-
-/* Action modifiers - doesn't change the zoning */
-#define __GFP_WAIT 0x10 /* Can wait and reschedule? */
-#define __GFP_HIGH 0x20 /* Should access emergency pools? */
-#define __GFP_IO 0x40 /* Can start low memory physical IO? */
-#define __GFP_HIGHIO 0x80 /* Can start high mem physical IO? */
-#define __GFP_FS 0x100 /* Can call down to low-level FS? */
-
-#define GFP_NOHIGHIO (__GFP_HIGH | __GFP_WAIT | __GFP_IO)
-#define GFP_NOIO (__GFP_HIGH | __GFP_WAIT)
-#define GFP_NOFS (__GFP_HIGH | __GFP_WAIT | __GFP_IO | __GFP_HIGHIO)
-#define GFP_ATOMIC (__GFP_HIGH)
-#define GFP_USER ( __GFP_WAIT | __GFP_IO | __GFP_HIGHIO | __GFP_FS)
-#define GFP_HIGHUSER ( __GFP_WAIT | __GFP_IO | __GFP_HIGHIO | __GFP_FS | __GFP_HIGHMEM)
-#define GFP_KERNEL (__GFP_HIGH | __GFP_WAIT | __GFP_IO | __GFP_HIGHIO | __GFP_FS)
-#define GFP_NFS (__GFP_HIGH | __GFP_WAIT | __GFP_IO | __GFP_HIGHIO | __GFP_FS)
-#define GFP_KSWAPD ( __GFP_WAIT | __GFP_IO | __GFP_HIGHIO | __GFP_FS)
-
-/* Flag - indicates that the buffer will be suitable for DMA. Ignored on some
- platforms, used as appropriate on others */
-
-#define GFP_DMA __GFP_DMA
-
/* vma is the first one with address < vma->vm_end,
* and even address < vma->vm_start. Have to extend vma. */
static inline int expand_stack(struct vm_area_struct * vma, unsigned long address)
diff --git a/include/linux/parport.h b/include/linux/parport.h
index bee974807bd8..ce82bcdb5e1a 100644
--- a/include/linux/parport.h
+++ b/include/linux/parport.h
@@ -8,6 +8,7 @@
#ifndef _PARPORT_H_
#define _PARPORT_H_
+#include <linux/sched.h>
/* Start off with user-visible constants */
diff --git a/include/linux/proc_fs.h b/include/linux/proc_fs.h
index d6f2700e3630..4688c8c90ede 100644
--- a/include/linux/proc_fs.h
+++ b/include/linux/proc_fs.h
@@ -3,6 +3,8 @@
#include <linux/config.h>
#include <linux/slab.h>
+#include <linux/fs.h>
+#include <asm/atomic.h>
/*
* The proc filesystem constants/structures
diff --git a/include/linux/reiserfs_fs.h b/include/linux/reiserfs_fs.h
index 6425547d2175..4ae1b21703c4 100644
--- a/include/linux/reiserfs_fs.h
+++ b/include/linux/reiserfs_fs.h
@@ -15,10 +15,10 @@
#include <linux/types.h>
#ifdef __KERNEL__
#include <linux/slab.h>
+#include <linux/interrupt.h>
#include <linux/tqueue.h>
#include <asm/unaligned.h>
#include <linux/bitops.h>
-#include <asm/hardirq.h>
#include <linux/proc_fs.h>
#endif
diff --git a/include/linux/shm.h b/include/linux/shm.h
index 4ccdd749d2b7..be3351619c2e 100644
--- a/include/linux/shm.h
+++ b/include/linux/shm.h
@@ -80,7 +80,6 @@ asmlinkage long sys_shmget (key_t key, size_t size, int flag);
asmlinkage long sys_shmat (int shmid, char *shmaddr, int shmflg, unsigned long *addr);
asmlinkage long sys_shmdt (char *shmaddr);
asmlinkage long sys_shmctl (int shmid, int cmd, struct shmid_ds *buf);
-extern void shm_unuse(swp_entry_t entry, struct page *page);
#endif /* __KERNEL__ */
diff --git a/include/linux/slab.h b/include/linux/slab.h
index ed4ff483974c..ceff3509f29e 100644
--- a/include/linux/slab.h
+++ b/include/linux/slab.h
@@ -11,8 +11,8 @@
typedef struct kmem_cache_s kmem_cache_t;
-#include <linux/mm.h>
-#include <linux/cache.h>
+#include <linux/gfp.h>
+#include <linux/types.h>
/* flags for kmem_cache_alloc() */
#define SLAB_NOFS GFP_NOFS
@@ -64,6 +64,7 @@ extern void kfree(const void *);
extern int FASTCALL(kmem_cache_reap(int));
extern int slabinfo_read_proc(char *page, char **start, off_t off,
int count, int *eof, void *data);
+struct file;
extern int slabinfo_write_proc(struct file *file, const char *buffer,
unsigned long count, void *data);
diff --git a/include/linux/sunrpc/clnt.h b/include/linux/sunrpc/clnt.h
index 37feb6f6ef53..62f4b1bd4dd1 100644
--- a/include/linux/sunrpc/clnt.h
+++ b/include/linux/sunrpc/clnt.h
@@ -15,6 +15,7 @@
#include <linux/sunrpc/auth.h>
#include <linux/sunrpc/stats.h>
#include <linux/sunrpc/xdr.h>
+#include <asm/signal.h>
/*
* This defines an RPC port mapping
diff --git a/include/linux/wait.h b/include/linux/wait.h
index 3503fd2226c5..186f03f015f7 100644
--- a/include/linux/wait.h
+++ b/include/linux/wait.h
@@ -19,24 +19,11 @@
#include <asm/page.h>
#include <asm/processor.h>
-/*
- * Debug control. Slow but useful.
- */
-#if defined(CONFIG_DEBUG_WAITQ)
-#define WAITQUEUE_DEBUG 1
-#else
-#define WAITQUEUE_DEBUG 0
-#endif
-
struct __wait_queue {
unsigned int flags;
#define WQ_FLAG_EXCLUSIVE 0x01
struct task_struct * task;
struct list_head task_list;
-#if WAITQUEUE_DEBUG
- long __magic;
- long __waker;
-#endif
};
typedef struct __wait_queue wait_queue_t;
@@ -77,129 +64,47 @@ typedef struct __wait_queue wait_queue_t;
struct __wait_queue_head {
wq_lock_t lock;
struct list_head task_list;
-#if WAITQUEUE_DEBUG
- long __magic;
- long __creator;
-#endif
};
typedef struct __wait_queue_head wait_queue_head_t;
/*
- * Debugging macros. We eschew `do { } while (0)' because gcc can generate
- * spurious .aligns.
- */
-#if WAITQUEUE_DEBUG
-#define WQ_BUG() BUG()
-#define CHECK_MAGIC(x) \
- do { \
- if ((x) != (long)&(x)) { \
- printk("bad magic %lx (should be %lx), ", \
- (long)x, (long)&(x)); \
- WQ_BUG(); \
- } \
- } while (0)
-#define CHECK_MAGIC_WQHEAD(x) \
- do { \
- if ((x)->__magic != (long)&((x)->__magic)) { \
- printk("bad magic %lx (should be %lx, creator %lx), ", \
- (x)->__magic, (long)&((x)->__magic), (x)->__creator); \
- WQ_BUG(); \
- } \
- } while (0)
-#define WQ_CHECK_LIST_HEAD(list) \
- do { \
- if (!(list)->next || !(list)->prev) \
- WQ_BUG(); \
- } while(0)
-#define WQ_NOTE_WAKER(tsk) \
- do { \
- (tsk)->__waker = (long)__builtin_return_address(0); \
- } while (0)
-#else
-#define WQ_BUG()
-#define CHECK_MAGIC(x)
-#define CHECK_MAGIC_WQHEAD(x)
-#define WQ_CHECK_LIST_HEAD(list)
-#define WQ_NOTE_WAKER(tsk)
-#endif
-
-/*
* Macros for declaration and initialisaton of the datatypes
*/
-#if WAITQUEUE_DEBUG
-# define __WAITQUEUE_DEBUG_INIT(name) (long)&(name).__magic, 0
-# define __WAITQUEUE_HEAD_DEBUG_INIT(name) (long)&(name).__magic, (long)&(name).__magic
-#else
-# define __WAITQUEUE_DEBUG_INIT(name)
-# define __WAITQUEUE_HEAD_DEBUG_INIT(name)
-#endif
-
#define __WAITQUEUE_INITIALIZER(name, tsk) { \
task: tsk, \
- task_list: { NULL, NULL }, \
- __WAITQUEUE_DEBUG_INIT(name)}
+ task_list: { NULL, NULL } }
#define DECLARE_WAITQUEUE(name, tsk) \
wait_queue_t name = __WAITQUEUE_INITIALIZER(name, tsk)
#define __WAIT_QUEUE_HEAD_INITIALIZER(name) { \
lock: WAITQUEUE_RW_LOCK_UNLOCKED, \
- task_list: { &(name).task_list, &(name).task_list }, \
- __WAITQUEUE_HEAD_DEBUG_INIT(name)}
+ task_list: { &(name).task_list, &(name).task_list } }
#define DECLARE_WAIT_QUEUE_HEAD(name) \
wait_queue_head_t name = __WAIT_QUEUE_HEAD_INITIALIZER(name)
static inline void init_waitqueue_head(wait_queue_head_t *q)
{
-#if WAITQUEUE_DEBUG
- if (!q)
- WQ_BUG();
-#endif
q->lock = WAITQUEUE_RW_LOCK_UNLOCKED;
INIT_LIST_HEAD(&q->task_list);
-#if WAITQUEUE_DEBUG
- q->__magic = (long)&q->__magic;
- q->__creator = (long)current_text_addr();
-#endif
}
static inline void init_waitqueue_entry(wait_queue_t *q, struct task_struct *p)
{
-#if WAITQUEUE_DEBUG
- if (!q || !p)
- WQ_BUG();
-#endif
q->flags = 0;
q->task = p;
-#if WAITQUEUE_DEBUG
- q->__magic = (long)&q->__magic;
-#endif
}
static inline int waitqueue_active(wait_queue_head_t *q)
{
-#if WAITQUEUE_DEBUG
- if (!q)
- WQ_BUG();
- CHECK_MAGIC_WQHEAD(q);
-#endif
-
return !list_empty(&q->task_list);
}
static inline void __add_wait_queue(wait_queue_head_t *head, wait_queue_t *new)
{
-#if WAITQUEUE_DEBUG
- if (!head || !new)
- WQ_BUG();
- CHECK_MAGIC_WQHEAD(head);
- CHECK_MAGIC(new->__magic);
- if (!head->task_list.next || !head->task_list.prev)
- WQ_BUG();
-#endif
list_add(&new->task_list, &head->task_list);
}
@@ -209,25 +114,12 @@ static inline void __add_wait_queue(wait_queue_head_t *head, wait_queue_t *new)
static inline void __add_wait_queue_tail(wait_queue_head_t *head,
wait_queue_t *new)
{
-#if WAITQUEUE_DEBUG
- if (!head || !new)
- WQ_BUG();
- CHECK_MAGIC_WQHEAD(head);
- CHECK_MAGIC(new->__magic);
- if (!head->task_list.next || !head->task_list.prev)
- WQ_BUG();
-#endif
list_add_tail(&new->task_list, &head->task_list);
}
static inline void __remove_wait_queue(wait_queue_head_t *head,
wait_queue_t *old)
{
-#if WAITQUEUE_DEBUG
- if (!old)
- WQ_BUG();
- CHECK_MAGIC(old->__magic);
-#endif
list_del(&old->task_list);
}