Commit 256ac6fa authored by Steve French's avatar Steve French

Merge bk://linux.bkbits.net/linux-2.5

into hostme.bitkeeper.com:/repos/c/cifs/linux-2.5cifs
parents 8cf7497f d6594193
......@@ -31,9 +31,6 @@
#include "irq_vectors.h"
int irq_vector[NR_IRQS] = { FIRST_EXTERNAL_VECTOR, 0 };
static spinlock_t cobalt_lock = SPIN_LOCK_UNLOCKED;
/*
......@@ -42,7 +39,7 @@ static spinlock_t cobalt_lock = SPIN_LOCK_UNLOCKED;
*/
static inline void co_apic_set(int entry, int irq)
{
co_apic_write(CO_APIC_LO(entry), CO_APIC_LEVEL | irq_vector[irq]);
co_apic_write(CO_APIC_LO(entry), CO_APIC_LEVEL | (irq + FIRST_EXTERNAL_VECTOR));
co_apic_write(CO_APIC_HI(entry), 0);
}
......@@ -299,7 +296,6 @@ void init_VISWS_APIC_irqs(void)
else if (IS_CO_APIC(i)) {
irq_desc[i].handler = &cobalt_irq_type;
}
irq_vector[i] = i + FIRST_EXTERNAL_VECTOR;
}
setup_irq(CO_IRQ_8259, &master_action);
......
......@@ -819,6 +819,7 @@ void blk_recount_segments(request_queue_t *q, struct bio *bio)
{
struct bio_vec *bv, *bvprv = NULL;
int i, nr_phys_segs, nr_hw_segs, seg_size, cluster;
int high, highprv = 1;
if (unlikely(!bio->bi_io_vec))
return;
......@@ -826,7 +827,15 @@ void blk_recount_segments(request_queue_t *q, struct bio *bio)
cluster = q->queue_flags & (1 << QUEUE_FLAG_CLUSTER);
seg_size = nr_phys_segs = nr_hw_segs = 0;
bio_for_each_segment(bv, bio, i) {
if (bvprv && cluster) {
/*
* the trick here is making sure that a high page is never
* considered part of another segment, since that might
* change with the bounce page.
*/
high = page_to_pfn(bv->bv_page) >= q->bounce_pfn;
if (high || highprv)
goto new_hw_segment;
if (cluster) {
if (seg_size + bv->bv_len > q->max_segment_size)
goto new_segment;
if (!BIOVEC_PHYS_MERGEABLE(bvprv, bv))
......@@ -839,12 +848,14 @@ void blk_recount_segments(request_queue_t *q, struct bio *bio)
continue;
}
new_segment:
if (!bvprv || !BIOVEC_VIRT_MERGEABLE(bvprv, bv))
if (!BIOVEC_VIRT_MERGEABLE(bvprv, bv))
new_hw_segment:
nr_hw_segs++;
nr_phys_segs++;
bvprv = bv;
seg_size = bv->bv_len;
highprv = high;
}
bio->bi_phys_segments = nr_phys_segs;
......
......@@ -1432,7 +1432,7 @@ static int radeonfb_check_var (struct fb_var_screeninfo *var, struct fb_info *in
den = 1;
v.red.offset = 10;
v.green.offset = 5;
v.red.offset = 0;
v.blue.offset = 0;
v.red.length = v.green.length = v.blue.length = 5;
v.transp.offset = v.transp.length = 0;
break;
......
......@@ -128,16 +128,17 @@ static struct quota_format_type *find_quota_format(int id)
if (!actqf || !try_module_get(actqf->qf_owner)) {
int qm;
spin_unlock(&dq_list_lock);
for (qm = 0; module_names[qm].qm_fmt_id && module_names[qm].qm_fmt_id != id; qm++);
if (!module_names[qm].qm_fmt_id || request_module(module_names[qm].qm_mod_name)) {
actqf = NULL;
goto out;
}
if (!module_names[qm].qm_fmt_id || request_module(module_names[qm].qm_mod_name))
return NULL;
spin_lock(&dq_list_lock);
for (actqf = quota_formats; actqf && actqf->qf_fmt_id != id; actqf = actqf->qf_next);
if (actqf && !try_module_get(actqf->qf_owner))
actqf = NULL;
}
out:
spin_unlock(&dq_list_lock);
return actqf;
}
......
......@@ -15,6 +15,7 @@
#include <linux/module.h>
#include <linux/netdevice.h>
#include <linux/if.h>
#include <net/sock.h>
#include <linux/rtnetlink.h>
#include <linux/jiffies.h>
#include <linux/spinlock.h>
......@@ -91,9 +92,11 @@ static void linkwatch_event(void *dummy)
linkwatch_nextevent = jiffies + HZ;
clear_bit(LW_RUNNING, &linkwatch_flags);
rtnl_lock();
rtnl_shlock();
rtnl_exlock();
linkwatch_run_queue();
rtnl_unlock();
rtnl_exunlock();
rtnl_shunlock();
}
......
......@@ -595,10 +595,10 @@ struct sk_buff *skb_copy_expand(const struct sk_buff *skb,
head_copy_len = skb_headroom(skb);
head_copy_off = 0;
if (newheadroom < head_copy_len) {
head_copy_off = head_copy_len - newheadroom;
if (newheadroom <= head_copy_len)
head_copy_len = newheadroom;
}
else
head_copy_off = newheadroom - head_copy_len;
/* Copy the linear header and data. */
if (skb_copy_bits(skb, -head_copy_len, n->head + head_copy_off,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment