summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@home.transmeta.com>2003-06-04 18:32:32 -0700
committerLinus Torvalds <torvalds@home.transmeta.com>2003-06-04 18:32:32 -0700
commit5e1159759461b03f131bc6b7d5fb02cf2def99d7 (patch)
tree669942057f0e66c5063df5d264f9098d983ddd5f
parent84d58710feb87cde414ced92e55be2dff5660a4a (diff)
parent98e6f1098d22f87640a96312d3024ffb8ca467f3 (diff)
Merge bk://kernel.bkbits.net/davem/net-2.5
into home.transmeta.com:/home/torvalds/v2.5/linux
-rw-r--r--arch/alpha/kernel/core_marvel.c4
-rw-r--r--arch/alpha/kernel/core_titan.c4
-rw-r--r--arch/alpha/kernel/systbls.S9
-rw-r--r--drivers/block/cciss.c4
-rw-r--r--drivers/block/ll_rw_blk.c41
-rw-r--r--include/asm-alpha/agp_backend.h4
-rw-r--r--include/asm-alpha/unistd.h11
-rw-r--r--include/linux/blkdev.h1
8 files changed, 33 insertions, 45 deletions
diff --git a/arch/alpha/kernel/core_marvel.c b/arch/alpha/kernel/core_marvel.c
index 9f660ea72ddc..52d27b27ebe5 100644
--- a/arch/alpha/kernel/core_marvel.c
+++ b/arch/alpha/kernel/core_marvel.c
@@ -980,7 +980,7 @@ marvel_agp_configure(alpha_agp_info *agp)
}
static int
-marvel_agp_bind_memory(alpha_agp_info *agp, off_t pg_start, agp_memory *mem)
+marvel_agp_bind_memory(alpha_agp_info *agp, off_t pg_start, struct agp_memory *mem)
{
struct marvel_agp_aperture *aper = agp->aperture.sysdata;
return iommu_bind(aper->arena, aper->pg_start + pg_start,
@@ -988,7 +988,7 @@ marvel_agp_bind_memory(alpha_agp_info *agp, off_t pg_start, agp_memory *mem)
}
static int
-marvel_agp_unbind_memory(alpha_agp_info *agp, off_t pg_start, agp_memory *mem)
+marvel_agp_unbind_memory(alpha_agp_info *agp, off_t pg_start, struct agp_memory *mem)
{
struct marvel_agp_aperture *aper = agp->aperture.sysdata;
return iommu_unbind(aper->arena, aper->pg_start + pg_start,
diff --git a/arch/alpha/kernel/core_titan.c b/arch/alpha/kernel/core_titan.c
index e47649d3bbf9..86e4ca9c5c10 100644
--- a/arch/alpha/kernel/core_titan.c
+++ b/arch/alpha/kernel/core_titan.c
@@ -679,7 +679,7 @@ titan_agp_configure(alpha_agp_info *agp)
}
static int
-titan_agp_bind_memory(alpha_agp_info *agp, off_t pg_start, agp_memory *mem)
+titan_agp_bind_memory(alpha_agp_info *agp, off_t pg_start, struct agp_memory *mem)
{
struct titan_agp_aperture *aper = agp->aperture.sysdata;
return iommu_bind(aper->arena, aper->pg_start + pg_start,
@@ -687,7 +687,7 @@ titan_agp_bind_memory(alpha_agp_info *agp, off_t pg_start, agp_memory *mem)
}
static int
-titan_agp_unbind_memory(alpha_agp_info *agp, off_t pg_start, agp_memory *mem)
+titan_agp_unbind_memory(alpha_agp_info *agp, off_t pg_start, struct agp_memory *mem)
{
struct titan_agp_aperture *aper = agp->aperture.sysdata;
return iommu_unbind(aper->arena, aper->pg_start + pg_start,
diff --git a/arch/alpha/kernel/systbls.S b/arch/alpha/kernel/systbls.S
index 392a312b8907..bc482d9388a3 100644
--- a/arch/alpha/kernel/systbls.S
+++ b/arch/alpha/kernel/systbls.S
@@ -433,6 +433,15 @@ sys_call_table:
.quad sys_set_tid_address
.quad sys_restart_syscall
.quad sys_fadvise64
+ .quad sys_timer_create
+ .quad sys_timer_settime /* 415 */
+ .quad sys_timer_gettime
+ .quad sys_timer_getoverrun
+ .quad sys_timer_delete
+ .quad sys_clock_settime
+ .quad sys_clock_gettime /* 420 */
+ .quad sys_clock_getres
+ .quad sys_clock_nanosleep
.size sys_call_table, . - sys_call_table
.type sys_call_table, @object
diff --git a/drivers/block/cciss.c b/drivers/block/cciss.c
index 22f0528a9aa7..2933c96a6142 100644
--- a/drivers/block/cciss.c
+++ b/drivers/block/cciss.c
@@ -1961,7 +1961,7 @@ queue:
goto queue;
startio:
- __blk_stop_queue(q);
+ blk_stop_queue(q);
start_io(h);
}
@@ -2021,8 +2021,8 @@ static irqreturn_t do_cciss_intr(int irq, void *dev_id, struct pt_regs *regs)
/*
* See if we can queue up some more IO
*/
- spin_unlock_irqrestore(CCISS_LOCK(h->ctlr), flags);
blk_start_queue(&h->queue);
+ spin_unlock_irqrestore(CCISS_LOCK(h->ctlr), flags);
return IRQ_HANDLED;
}
/*
diff --git a/drivers/block/ll_rw_blk.c b/drivers/block/ll_rw_blk.c
index c51044b66f86..93f6160dd982 100644
--- a/drivers/block/ll_rw_blk.c
+++ b/drivers/block/ll_rw_blk.c
@@ -391,12 +391,6 @@ void blk_queue_dma_alignment(request_queue_t *q, int mask)
q->dma_alignment = mask;
}
-void blk_queue_assign_lock(request_queue_t *q, spinlock_t *lock)
-{
- spin_lock_init(lock);
- q->queue_lock = lock;
-}
-
/**
* blk_queue_find_tag - find a request by its tag and queue
*
@@ -1076,30 +1070,12 @@ static void blk_unplug_timeout(unsigned long data)
* blk_start_queue() will clear the stop flag on the queue, and call
* the request_fn for the queue if it was in a stopped state when
* entered. Also see blk_stop_queue(). Must not be called from driver
- * request function due to recursion issues.
+ * request function due to recursion issues. Queue lock must be held.
**/
void blk_start_queue(request_queue_t *q)
{
- if (test_and_clear_bit(QUEUE_FLAG_STOPPED, &q->queue_flags)) {
- unsigned long flags;
-
- spin_lock_irqsave(q->queue_lock, flags);
- if (!elv_queue_empty(q))
- q->request_fn(q);
- spin_unlock_irqrestore(q->queue_lock, flags);
- }
-}
-
-/**
- * __blk_stop_queue: see blk_stop_queue()
- *
- * Description:
- * Like blk_stop_queue(), but queue_lock must be held
- **/
-void __blk_stop_queue(request_queue_t *q)
-{
- blk_remove_plug(q);
- set_bit(QUEUE_FLAG_STOPPED, &q->queue_flags);
+ if (test_and_clear_bit(QUEUE_FLAG_STOPPED, &q->queue_flags))
+ schedule_work(&q->unplug_work);
}
/**
@@ -1114,15 +1090,12 @@ void __blk_stop_queue(request_queue_t *q)
* or if it simply chooses not to queue more I/O at one point, it can
* call this function to prevent the request_fn from being called until
* the driver has signalled it's ready to go again. This happens by calling
- * blk_start_queue() to restart queue operations.
+ * blk_start_queue() to restart queue operations. Queue lock must be held.
**/
void blk_stop_queue(request_queue_t *q)
{
- unsigned long flags;
-
- spin_lock_irqsave(q->queue_lock, flags);
- __blk_stop_queue(q);
- spin_unlock_irqrestore(q->queue_lock, flags);
+ blk_remove_plug(q);
+ set_bit(QUEUE_FLAG_STOPPED, &q->queue_flags);
}
/**
@@ -2364,7 +2337,6 @@ EXPORT_SYMBOL(blk_rq_map_sg);
EXPORT_SYMBOL(blk_nohighio);
EXPORT_SYMBOL(blk_dump_rq_flags);
EXPORT_SYMBOL(submit_bio);
-EXPORT_SYMBOL(blk_queue_assign_lock);
EXPORT_SYMBOL(blk_phys_contig_segment);
EXPORT_SYMBOL(blk_hw_contig_segment);
EXPORT_SYMBOL(blk_get_request);
@@ -2383,7 +2355,6 @@ EXPORT_SYMBOL(blk_queue_invalidate_tags);
EXPORT_SYMBOL(blk_start_queue);
EXPORT_SYMBOL(blk_stop_queue);
-EXPORT_SYMBOL(__blk_stop_queue);
EXPORT_SYMBOL(blk_run_queue);
EXPORT_SYMBOL(blk_run_queues);
diff --git a/include/asm-alpha/agp_backend.h b/include/asm-alpha/agp_backend.h
index 3998e2547545..55dd44a2cea7 100644
--- a/include/asm-alpha/agp_backend.h
+++ b/include/asm-alpha/agp_backend.h
@@ -33,8 +33,8 @@ struct alpha_agp_ops {
int (*setup)(alpha_agp_info *);
void (*cleanup)(alpha_agp_info *);
int (*configure)(alpha_agp_info *);
- int (*bind)(alpha_agp_info *, off_t, agp_memory *);
- int (*unbind)(alpha_agp_info *, off_t, agp_memory *);
+ int (*bind)(alpha_agp_info *, off_t, struct agp_memory *);
+ int (*unbind)(alpha_agp_info *, off_t, struct agp_memory *);
unsigned long (*translate)(alpha_agp_info *, dma_addr_t);
};
diff --git a/include/asm-alpha/unistd.h b/include/asm-alpha/unistd.h
index d110fd3afb5a..494765bb1c92 100644
--- a/include/asm-alpha/unistd.h
+++ b/include/asm-alpha/unistd.h
@@ -349,7 +349,16 @@
#define __NR_set_tid_address 411
#define __NR_restart_syscall 412
#define __NR_fadvise64 413
-#define NR_SYSCALLS 414
+#define __NR_timer_create 414
+#define __NR_timer_settime 415
+#define __NR_timer_gettime 416
+#define __NR_timer_getoverrun 417
+#define __NR_timer_delete 418
+#define __NR_clock_settime 419
+#define __NR_clock_gettime 420
+#define __NR_clock_getres 421
+#define __NR_clock_nanosleep 422
+#define NR_SYSCALLS 423
#if defined(__GNUC__)
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
index 03691501d68f..fd211093a374 100644
--- a/include/linux/blkdev.h
+++ b/include/linux/blkdev.h
@@ -431,7 +431,6 @@ extern void blk_queue_max_hw_segments(request_queue_t *, unsigned short);
extern void blk_queue_max_segment_size(request_queue_t *, unsigned int);
extern void blk_queue_hardsect_size(request_queue_t *, unsigned short);
extern void blk_queue_segment_boundary(request_queue_t *, unsigned long);
-extern void blk_queue_assign_lock(request_queue_t *, spinlock_t *);
extern void blk_queue_prep_rq(request_queue_t *, prep_rq_fn *pfn);
extern void blk_queue_merge_bvec(request_queue_t *, merge_bvec_fn *);
extern void blk_queue_dma_alignment(request_queue_t *, int);