Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 45743
b: refs/heads/master
c: bc6191b
h: refs/heads/master
i:
  45741: c86da0f
  45739: b6af323
  45735: 192660a
  45727: 776ee05
v: v3
  • Loading branch information
Karsten Wiese authored and Jaroslav Kysela committed Jan 23, 2007
1 parent 5c39a75 commit 072457a
Show file tree
Hide file tree
Showing 35 changed files with 573 additions and 256 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: fe6ea1f7e5c2d3947bf62f2a219e69718ca0b187
refs/heads/master: bc6191b10018311a301fb6ef22994177c769b868
4 changes: 0 additions & 4 deletions trunk/Documentation/SubmitChecklist
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,3 @@ kernel patches.

If the new code is substantial, addition of subsystem-specific fault
injection might be appropriate.

22: Newly-added code has been compiled with `gcc -W'. This will generate
lots of noise, but is good for finding bugs like "warning: comparison
between signed and unsigned".
7 changes: 0 additions & 7 deletions trunk/Documentation/feature-removal-schedule.txt
Original file line number Diff line number Diff line change
Expand Up @@ -318,10 +318,3 @@ Why: /proc/acpi/button has been replaced by events to the input layer
Who: Len Brown <len.brown@intel.com>

---------------------------

What: JFFS (version 1)
When: 2.6.21
Why: Unmaintained for years, superceded by JFFS2 for years.
Who: Jeff Garzik <jeff@garzik.org>

---------------------------
49 changes: 11 additions & 38 deletions trunk/Documentation/kdump/kdump.txt
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ You can use common Linux commands, such as cp and scp, to copy the
memory image to a dump file on the local disk, or across the network to
a remote system.

Kdump and kexec are currently supported on the x86, x86_64, ppc64 and ia64
Kdump and kexec are currently supported on the x86, x86_64, ppc64 and IA64
architectures.

When the system kernel boots, it reserves a small section of memory for
Expand Down Expand Up @@ -61,12 +61,7 @@ Install kexec-tools

2) Download the kexec-tools user-space package from the following URL:

http://www.kernel.org/pub/linux/kernel/people/horms/kexec-tools/kexec-tools-testing.tar.gz

This is a symlink to the latest version, which at the time of writing is
20061214, the only release of kexec-tools-testing so far. As other versions
are made released, the older onese will remain available at
http://www.kernel.org/pub/linux/kernel/people/horms/kexec-tools/
http://www.kernel.org/pub/linux/kernel/people/horms/kexec-tools/kexec-tools-testing-20061214.tar.gz

Note: Latest kexec-tools-testing git tree is available at

Expand All @@ -76,11 +71,11 @@ http://www.kernel.org/git/?p=linux/kernel/git/horms/kexec-tools-testing.git;a=su

3) Unpack the tarball with the tar command, as follows:

tar xvpzf kexec-tools-testing.tar.gz
tar xvpzf kexec-tools-testing-20061214.tar.gz

4) Change to the kexec-tools directory, as follows:
4) Change to the kexec-tools-1.101 directory, as follows:

cd kexec-tools-testing-VERSION
cd kexec-tools-testing-20061214

5) Configure the package, as follows:

Expand Down Expand Up @@ -229,23 +224,7 @@ Dump-capture kernel config options (Arch Dependent, ppc64)

Dump-capture kernel config options (Arch Dependent, ia64)
----------------------------------------------------------

- No specific options are required to create a dump-capture kernel
for ia64, other than those specified in the arch idependent section
above. This means that it is possible to use the system kernel
as a dump-capture kernel if desired.

The crashkernel region can be automatically placed by the system
kernel at run time. This is done by specifying the base address as 0,
or omitting it all together.

crashkernel=256M@0
or
crashkernel=256M

If the start address is specified, note that the start address of the
kernel will be aligned to 64Mb, so if the start address is not then
any space below the alignment point will be wasted.
(To be filled)


Boot into System Kernel
Expand All @@ -264,10 +243,6 @@ Boot into System Kernel

On ppc64, use "crashkernel=128M@32M".

On ia64, 256M@256M is a generous value that typically works.
The region may be automatically placed on ia64, see the
dump-capture kernel config option notes above.

Load the Dump-capture Kernel
============================

Expand All @@ -286,8 +261,7 @@ For x86_64:
For ppc64:
- Use vmlinux
For ia64:
- Use vmlinux or vmlinuz.gz

(To be filled)

If you are using a uncompressed vmlinux image then use following command
to load dump-capture kernel.
Expand All @@ -303,19 +277,18 @@ to load dump-capture kernel.
--initrd=<initrd-for-dump-capture-kernel> \
--append="root=<root-dev> <arch-specific-options>"

Please note, that --args-linux does not need to be specified for ia64.
It is planned to make this a no-op on that architecture, but for now
it should be omitted

Following are the arch specific command line options to be used while
loading dump-capture kernel.

For i386, x86_64 and ia64:
For i386 and x86_64:
"init 1 irqpoll maxcpus=1"

For ppc64:
"init 1 maxcpus=1 noirqdistrib"

For IA64
(To be filled)


Notes on loading the dump-capture kernel:

Expand Down
8 changes: 7 additions & 1 deletion trunk/arch/i386/kernel/nmi.c
Original file line number Diff line number Diff line change
Expand Up @@ -310,7 +310,13 @@ static int __init setup_nmi_watchdog(char *str)

if ((nmi >= NMI_INVALID) || (nmi < NMI_NONE))
return 0;

/*
* If any other x86 CPU has a local APIC, then
* please test the NMI stuff there and send me the
* missing bits. Right now Intel P6/P4 and AMD K7 only.
*/
if ((nmi == NMI_LOCAL_APIC) && (nmi_known_cpu() == 0))
return 0; /* no lapic support */
nmi_watchdog = nmi;
return 1;
}
Expand Down
9 changes: 1 addition & 8 deletions trunk/arch/i386/kernel/paravirt.c
Original file line number Diff line number Diff line change
Expand Up @@ -566,11 +566,4 @@ struct paravirt_ops paravirt_ops = {
.irq_enable_sysexit = native_irq_enable_sysexit,
.iret = native_iret,
};

/*
* NOTE: CONFIG_PARAVIRT is experimental and the paravirt_ops
* semantics are subject to change. Hence we only do this
* internal-only export of this, until it gets sorted out and
* all lowlevel CPU ops used by modules are separately exported.
*/
EXPORT_SYMBOL_GPL(paravirt_ops);
EXPORT_SYMBOL(paravirt_ops);
2 changes: 2 additions & 0 deletions trunk/arch/x86_64/kernel/nmi.c
Original file line number Diff line number Diff line change
Expand Up @@ -302,6 +302,8 @@ int __init setup_nmi_watchdog(char *str)
if ((nmi >= NMI_INVALID) || (nmi < NMI_NONE))
return 0;

if ((nmi == NMI_LOCAL_APIC) && (nmi_known_cpu() == 0))
return 0; /* no lapic support */
nmi_watchdog = nmi;
return 1;
}
Expand Down
11 changes: 5 additions & 6 deletions trunk/block/elevator.c
Original file line number Diff line number Diff line change
Expand Up @@ -590,12 +590,6 @@ void elv_insert(request_queue_t *q, struct request *rq, int where)
*/
rq->cmd_flags |= REQ_SOFTBARRIER;

/*
* Most requeues happen because of a busy condition,
* don't force unplug of the queue for that case.
*/
unplug_it = 0;

if (q->ordseq == 0) {
list_add(&rq->queuelist, &q->queue_head);
break;
Expand All @@ -610,6 +604,11 @@ void elv_insert(request_queue_t *q, struct request *rq, int where)
}

list_add_tail(&rq->queuelist, pos);
/*
* most requeues happen because of a busy condition, don't
* force unplug of the queue for that case.
*/
unplug_it = 0;
break;

default:
Expand Down
2 changes: 2 additions & 0 deletions trunk/drivers/acpi/video.c
Original file line number Diff line number Diff line change
Expand Up @@ -1677,6 +1677,8 @@ static void acpi_video_device_notify(acpi_handle handle, u32 event, void *data)
struct acpi_video_device *video_device = data;
struct acpi_device *device = NULL;


printk("video device notify\n");
if (!video_device)
return;

Expand Down
43 changes: 15 additions & 28 deletions trunk/drivers/char/tlclk.c
Original file line number Diff line number Diff line change
Expand Up @@ -186,7 +186,6 @@ static int got_event; /* if events processing have been done */
static void switchover_timeout(unsigned long data);
static struct timer_list switchover_timer =
TIMER_INITIALIZER(switchover_timeout , 0, 0);
static unsigned long tlclk_timer_data;

static struct tlclk_alarms *alarm_events;

Expand All @@ -198,19 +197,10 @@ static irqreturn_t tlclk_interrupt(int irq, void *dev_id);

static DECLARE_WAIT_QUEUE_HEAD(wq);

static unsigned long useflags;
static DEFINE_MUTEX(tlclk_mutex);

static int tlclk_open(struct inode *inode, struct file *filp)
{
int result;

if (test_and_set_bit(0, &useflags))
return -EBUSY;
/* this legacy device is always one per system and it doesn't
* know how to handle multiple concurrent clients.
*/

/* Make sure there is no interrupt pending while
* initialising interrupt handler */
inb(TLCLK_REG6);
Expand All @@ -231,7 +221,6 @@ static int tlclk_open(struct inode *inode, struct file *filp)
static int tlclk_release(struct inode *inode, struct file *filp)
{
free_irq(telclk_interrupt, tlclk_interrupt);
clear_bit(0, &useflags);

return 0;
}
Expand All @@ -241,25 +230,26 @@ static ssize_t tlclk_read(struct file *filp, char __user *buf, size_t count,
{
if (count < sizeof(struct tlclk_alarms))
return -EIO;
if (mutex_lock_interruptible(&tlclk_mutex))
return -EINTR;


wait_event_interruptible(wq, got_event);
if (copy_to_user(buf, alarm_events, sizeof(struct tlclk_alarms))) {
mutex_unlock(&tlclk_mutex);
if (copy_to_user(buf, alarm_events, sizeof(struct tlclk_alarms)))
return -EFAULT;
}

memset(alarm_events, 0, sizeof(struct tlclk_alarms));
got_event = 0;

mutex_unlock(&tlclk_mutex);
return sizeof(struct tlclk_alarms);
}

static ssize_t tlclk_write(struct file *filp, const char __user *buf, size_t count,
loff_t *f_pos)
{
return 0;
}

static const struct file_operations tlclk_fops = {
.read = tlclk_read,
.write = tlclk_write,
.open = tlclk_open,
.release = tlclk_release,

Expand Down Expand Up @@ -550,7 +540,7 @@ static ssize_t store_select_amcb1_transmit_clock(struct device *d,
SET_PORT_BITS(TLCLK_REG3, 0xf8, 0x7);
switch (val) {
case CLK_8_592MHz:
SET_PORT_BITS(TLCLK_REG0, 0xfc, 2);
SET_PORT_BITS(TLCLK_REG0, 0xfc, 1);
break;
case CLK_11_184MHz:
SET_PORT_BITS(TLCLK_REG0, 0xfc, 0);
Expand All @@ -559,7 +549,7 @@ static ssize_t store_select_amcb1_transmit_clock(struct device *d,
SET_PORT_BITS(TLCLK_REG0, 0xfc, 3);
break;
case CLK_44_736MHz:
SET_PORT_BITS(TLCLK_REG0, 0xfc, 1);
SET_PORT_BITS(TLCLK_REG0, 0xfc, 2);
break;
}
} else
Expand Down Expand Up @@ -849,13 +839,11 @@ static void __exit tlclk_cleanup(void)

static void switchover_timeout(unsigned long data)
{
unsigned long flags = *(unsigned long *) data;

if ((flags & 1)) {
if ((inb(TLCLK_REG1) & 0x08) != (flags & 0x08))
if ((data & 1)) {
if ((inb(TLCLK_REG1) & 0x08) != (data & 0x08))
alarm_events->switchover_primary++;
} else {
if ((inb(TLCLK_REG1) & 0x08) != (flags & 0x08))
if ((inb(TLCLK_REG1) & 0x08) != (data & 0x08))
alarm_events->switchover_secondary++;
}

Expand Down Expand Up @@ -913,9 +901,8 @@ static irqreturn_t tlclk_interrupt(int irq, void *dev_id)

/* TIMEOUT in ~10ms */
switchover_timer.expires = jiffies + msecs_to_jiffies(10);
tlclk_timer_data = inb(TLCLK_REG1);
switchover_timer.data = (unsigned long) &tlclk_timer_data;
mod_timer(&switchover_timer, switchover_timer.expires);
switchover_timer.data = inb(TLCLK_REG1);
add_timer(&switchover_timer);
} else {
got_event = 1;
wake_up(&wq);
Expand Down
2 changes: 0 additions & 2 deletions trunk/drivers/kvm/kvm_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -272,9 +272,7 @@ static void kvm_free_physmem(struct kvm *kvm)

static void kvm_free_vcpu(struct kvm_vcpu *vcpu)
{
vcpu_load(vcpu->kvm, vcpu_slot(vcpu));
kvm_mmu_destroy(vcpu);
vcpu_put(vcpu);
kvm_arch_ops->vcpu_free(vcpu);
}

Expand Down
2 changes: 1 addition & 1 deletion trunk/drivers/kvm/paging_tmpl.h
Original file line number Diff line number Diff line change
Expand Up @@ -274,7 +274,7 @@ static int FNAME(fix_write_pf)(struct kvm_vcpu *vcpu,
struct kvm_mmu_page *page;

if (is_writeble_pte(*shadow_ent))
return !user || (*shadow_ent & PT_USER_MASK);
return 0;

writable_shadow = *shadow_ent & PT_SHADOW_WRITABLE_MASK;
if (user) {
Expand Down
3 changes: 1 addition & 2 deletions trunk/drivers/kvm/svm.c
Original file line number Diff line number Diff line change
Expand Up @@ -1407,8 +1407,7 @@ static int svm_vcpu_run(struct kvm_vcpu *vcpu, struct kvm_run *kvm_run)
int r;

again:
if (!vcpu->mmio_read_completed)
do_interrupt_requests(vcpu, kvm_run);
do_interrupt_requests(vcpu, kvm_run);

clgi();

Expand Down
3 changes: 1 addition & 2 deletions trunk/drivers/kvm/vmx.c
Original file line number Diff line number Diff line change
Expand Up @@ -1717,8 +1717,7 @@ static int vmx_vcpu_run(struct kvm_vcpu *vcpu, struct kvm_run *kvm_run)
vmcs_writel(HOST_GS_BASE, segment_base(gs_sel));
#endif

if (!vcpu->mmio_read_completed)
do_interrupt_requests(vcpu, kvm_run);
do_interrupt_requests(vcpu, kvm_run);

if (vcpu->guest_debug.enabled)
kvm_guest_debug_pre(vcpu);
Expand Down
Loading

0 comments on commit 072457a

Please sign in to comment.