Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f6e77c94 authored by Steve French's avatar Steve French
Browse files

Merge with /pub/scm/linux/kernel/git/torvalds/linux-2.6.git



Signed-off-by: default avatarSteve French <sfrench@us.ibm.com>
parents beb84dc8 d0b00484
Loading
Loading
Loading
Loading
+6 −4
Original line number Diff line number Diff line
@@ -422,12 +422,14 @@ static int timer_dyn_tick_disable(void)
void timer_dyn_reprogram(void)
{
	struct dyn_tick_timer *dyn_tick = system_timer->dyn_tick;
	unsigned long next, seq;

	if (dyn_tick) {
		write_seqlock(&xtime_lock);
		if (dyn_tick->state & DYN_TICK_ENABLED)
	if (dyn_tick && (dyn_tick->state & DYN_TICK_ENABLED)) {
		next = next_timer_interrupt();
		do {
			seq = read_seqbegin(&xtime_lock);
			dyn_tick->reprogram(next_timer_interrupt() - jiffies);
		write_sequnlock(&xtime_lock);
		} while (read_seqretry(&xtime_lock, seq));
	}
}

+3 −0
Original line number Diff line number Diff line
@@ -45,6 +45,9 @@
#include <asm/setup.h>
#include <asm/pgtable.h>

void (*pm_power_off)(void) = NULL;
EXPORT_SYMBOL(pm_power_off);

asmlinkage void ret_from_fork(void);

/*
+8 −6
Original line number Diff line number Diff line
@@ -70,10 +70,13 @@ static void efi_call_phys_prelog(void)
{
	unsigned long cr4;
	unsigned long temp;
	struct Xgt_desc_struct *cpu_gdt_descr;

	spin_lock(&efi_rt_lock);
	local_irq_save(efi_rt_eflags);

	cpu_gdt_descr = &per_cpu(cpu_gdt_descr, 0);

	/*
	 * If I don't have PSE, I should just duplicate two entries in page
	 * directory. If I have PSE, I just need to duplicate one entry in
@@ -103,18 +106,17 @@ static void efi_call_phys_prelog(void)
	 */
	local_flush_tlb();

	per_cpu(cpu_gdt_descr, 0).address =
				 __pa(per_cpu(cpu_gdt_descr, 0).address);
	load_gdt((struct Xgt_desc_struct *)__pa(&per_cpu(cpu_gdt_descr, 0)));
	cpu_gdt_descr->address = __pa(cpu_gdt_descr->address);
	load_gdt(cpu_gdt_descr);
}

static void efi_call_phys_epilog(void)
{
	unsigned long cr4;
	struct Xgt_desc_struct *cpu_gdt_descr = &per_cpu(cpu_gdt_descr, 0);

	per_cpu(cpu_gdt_descr, 0).address =
			(unsigned long)__va(per_cpu(cpu_gdt_descr, 0).address);
	load_gdt((struct Xgt_desc_struct *)__va(&per_cpu(cpu_gdt_descr, 0)));
	cpu_gdt_descr->address = __va(cpu_gdt_descr->address);
	load_gdt(cpu_gdt_descr);

	cr4 = read_cr4();

+2 −2
Original line number Diff line number Diff line
@@ -412,9 +412,9 @@ static int timer_resume(struct sys_device *dev)
	write_seqlock_irqsave(&xtime_lock, flags);
	xtime.tv_sec = sec;
	xtime.tv_nsec = 0;
	write_sequnlock_irqrestore(&xtime_lock, flags);
	jiffies += sleep_length;
	jiffies_64 += sleep_length;
	wall_jiffies += sleep_length;
	write_sequnlock_irqrestore(&xtime_lock, flags);
	if (last_timer->resume)
		last_timer->resume();
	cur_timer = last_timer;
+3 −0
Original line number Diff line number Diff line
@@ -1537,6 +1537,9 @@ _STATIC(__boot_from_prom)
	mr	r28,r6
	mr	r27,r7

	/* Align the stack to 16-byte boundary for broken yaboot */
	rldicr	r1,r1,0,59

	/* Make sure we are running in 64 bits mode */
	bl	.enable_64b_mode

Loading