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

Commit bd1d23a8 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6:
  sparc64: Fix initrd regression.
  usb: Sparc build fix, make USB_ISP1760_OF depend on PPC_OF
  sparc64: remove online_page()
  sparc64: use compat_sys_utimes instead of home-grown local copy.
  sbus: Fix bpp driver build.
  sparc video: make blank use proper constant
  Revert "[SPARC64]: Wrap SMP IPIs with irq_enter()/irq_exit()."
  sparc: tcx.c remove unnecessary function
parents c0a18111 d45100f7
Loading
Loading
Loading
Loading
+5 −22
Original line number Original line Diff line number Diff line
@@ -865,21 +865,14 @@ void smp_call_function_client(int irq, struct pt_regs *regs)
	void *info = call_data->info;
	void *info = call_data->info;


	clear_softint(1 << irq);
	clear_softint(1 << irq);

	irq_enter();

	if (!call_data->wait) {
		/* let initiator proceed after getting data */
		atomic_inc(&call_data->finished);
	}

	func(info);

	irq_exit();

	if (call_data->wait) {
	if (call_data->wait) {
		/* let initiator proceed only after completion */
		/* let initiator proceed only after completion */
		func(info);
		atomic_inc(&call_data->finished);
		atomic_inc(&call_data->finished);
	} else {
		/* let initiator proceed after getting data */
		atomic_inc(&call_data->finished);
		func(info);
	}
	}
}
}


@@ -1041,9 +1034,7 @@ void smp_receive_signal(int cpu)


void smp_receive_signal_client(int irq, struct pt_regs *regs)
void smp_receive_signal_client(int irq, struct pt_regs *regs)
{
{
	irq_enter();
	clear_softint(1 << irq);
	clear_softint(1 << irq);
	irq_exit();
}
}


void smp_new_mmu_context_version_client(int irq, struct pt_regs *regs)
void smp_new_mmu_context_version_client(int irq, struct pt_regs *regs)
@@ -1051,8 +1042,6 @@ void smp_new_mmu_context_version_client(int irq, struct pt_regs *regs)
	struct mm_struct *mm;
	struct mm_struct *mm;
	unsigned long flags;
	unsigned long flags;


	irq_enter();

	clear_softint(1 << irq);
	clear_softint(1 << irq);


	/* See if we need to allocate a new TLB context because
	/* See if we need to allocate a new TLB context because
@@ -1072,8 +1061,6 @@ void smp_new_mmu_context_version_client(int irq, struct pt_regs *regs)
	load_secondary_context(mm);
	load_secondary_context(mm);
	__flush_tlb_mm(CTX_HWBITS(mm->context),
	__flush_tlb_mm(CTX_HWBITS(mm->context),
		       SECONDARY_CONTEXT);
		       SECONDARY_CONTEXT);

	irq_exit();
}
}


void smp_new_mmu_context_version(void)
void smp_new_mmu_context_version(void)
@@ -1239,8 +1226,6 @@ void smp_penguin_jailcell(int irq, struct pt_regs *regs)
{
{
	clear_softint(1 << irq);
	clear_softint(1 << irq);


	irq_enter();

	preempt_disable();
	preempt_disable();


	__asm__ __volatile__("flushw");
	__asm__ __volatile__("flushw");
@@ -1253,8 +1238,6 @@ void smp_penguin_jailcell(int irq, struct pt_regs *regs)
	prom_world(0);
	prom_world(0);


	preempt_enable();
	preempt_enable();

	irq_exit();
}
}


/* /proc/profile writes can call this, don't __init it please. */
/* /proc/profile writes can call this, don't __init it please. */
+0 −31
Original line number Original line Diff line number Diff line
@@ -236,13 +236,6 @@ asmlinkage long sys32_getegid16(void)


/* 32-bit timeval and related flotsam.  */
/* 32-bit timeval and related flotsam.  */


static long get_tv32(struct timeval *o, struct compat_timeval __user *i)
{
	return (!access_ok(VERIFY_READ, i, sizeof(*i)) ||
		(__get_user(o->tv_sec, &i->tv_sec) |
		 __get_user(o->tv_usec, &i->tv_usec)));
}

static inline long put_tv32(struct compat_timeval __user *o, struct timeval *i)
static inline long put_tv32(struct compat_timeval __user *o, struct timeval *i)
{
{
	return (!access_ok(VERIFY_WRITE, o, sizeof(*o)) ||
	return (!access_ok(VERIFY_WRITE, o, sizeof(*o)) ||
@@ -757,30 +750,6 @@ asmlinkage long sys32_settimeofday(struct compat_timeval __user *tv,
	return do_sys_settimeofday(tv ? &kts : NULL, tz ? &ktz : NULL);
	return do_sys_settimeofday(tv ? &kts : NULL, tz ? &ktz : NULL);
}
}


asmlinkage long sys32_utimes(char __user *filename,
			     struct compat_timeval __user *tvs)
{
	struct timespec tv[2];

	if (tvs) {
		struct timeval ktvs[2];
		if (get_tv32(&ktvs[0], tvs) ||
		    get_tv32(&ktvs[1], 1+tvs))
			return -EFAULT;

		if (ktvs[0].tv_usec < 0 || ktvs[0].tv_usec >= 1000000 ||
		    ktvs[1].tv_usec < 0 || ktvs[1].tv_usec >= 1000000)
			return -EINVAL;

		tv[0].tv_sec = ktvs[0].tv_sec;
		tv[0].tv_nsec = 1000 * ktvs[0].tv_usec;
		tv[1].tv_sec = ktvs[1].tv_sec;
		tv[1].tv_nsec = 1000 * ktvs[1].tv_usec;
	}

	return do_utimes(AT_FDCWD, filename, tvs ? tv : NULL, 0);
}

/* These are here just in case some old sparc32 binary calls it. */
/* These are here just in case some old sparc32 binary calls it. */
asmlinkage long sys32_pause(void)
asmlinkage long sys32_pause(void)
{
{
+1 −1
Original line number Original line Diff line number Diff line
@@ -45,7 +45,7 @@ sys_call_table32:
/*120*/	.word compat_sys_readv, compat_sys_writev, sys32_settimeofday, sys32_fchown16, sys_fchmod
/*120*/	.word compat_sys_readv, compat_sys_writev, sys32_settimeofday, sys32_fchown16, sys_fchmod
	.word sys_nis_syscall, sys32_setreuid16, sys32_setregid16, sys_rename, sys_truncate
	.word sys_nis_syscall, sys32_setreuid16, sys32_setregid16, sys_rename, sys_truncate
/*130*/	.word sys_ftruncate, sys_flock, compat_sys_lstat64, sys_nis_syscall, sys_nis_syscall
/*130*/	.word sys_ftruncate, sys_flock, compat_sys_lstat64, sys_nis_syscall, sys_nis_syscall
	.word sys_nis_syscall, sys32_mkdir, sys_rmdir, sys32_utimes, compat_sys_stat64
	.word sys_nis_syscall, sys32_mkdir, sys_rmdir, compat_sys_utimes, compat_sys_stat64
/*140*/	.word sys32_sendfile64, sys_nis_syscall, sys32_futex, sys_gettid, compat_sys_getrlimit
/*140*/	.word sys32_sendfile64, sys_nis_syscall, sys32_futex, sys_gettid, compat_sys_getrlimit
	.word compat_sys_setrlimit, sys_pivot_root, sys32_prctl, sys_pciconfig_read, sys_pciconfig_write
	.word compat_sys_setrlimit, sys_pivot_root, sys32_prctl, sys_pciconfig_read, sys_pciconfig_write
/*150*/	.word sys_nis_syscall, sys_inotify_init, sys_inotify_add_watch, sys_poll, sys_getdents64
/*150*/	.word sys_nis_syscall, sys_inotify_init, sys_inotify_add_watch, sys_poll, sys_getdents64
+3 −13
Original line number Original line Diff line number Diff line
@@ -771,6 +771,9 @@ static void __init find_ramdisk(unsigned long phys_base)
		initrd_end = ramdisk_image + sparc_ramdisk_size;
		initrd_end = ramdisk_image + sparc_ramdisk_size;


		lmb_reserve(initrd_start, initrd_end);
		lmb_reserve(initrd_start, initrd_end);

		initrd_start += PAGE_OFFSET;
		initrd_end += PAGE_OFFSET;
	}
	}
#endif
#endif
}
}
@@ -2362,16 +2365,3 @@ void __flush_tlb_all(void)
	__asm__ __volatile__("wrpr	%0, 0, %%pstate"
	__asm__ __volatile__("wrpr	%0, 0, %%pstate"
			     : : "r" (pstate));
			     : : "r" (pstate));
}
}

#ifdef CONFIG_MEMORY_HOTPLUG

void online_page(struct page *page)
{
	ClearPageReserved(page);
	init_page_count(page);
	__free_page(page);
	totalram_pages++;
	num_physpages++;
}

#endif /* CONFIG_MEMORY_HOTPLUG */
+1 −1
Original line number Original line Diff line number Diff line
@@ -41,7 +41,7 @@
#define BPP_DELAY 100
#define BPP_DELAY 100


static const unsigned  BPP_MAJOR = LP_MAJOR;
static const unsigned  BPP_MAJOR = LP_MAJOR;
static const char* dev_name = "bpp";
static const char *bpp_dev_name = "bpp";


/* When switching from compatibility to a mode where I can read, try
/* When switching from compatibility to a mode where I can read, try
   the following mode first. */
   the following mode first. */
Loading