Commit dcfdb40c authored by Martin Schwidefsky's avatar Martin Schwidefsky Committed by Linus Torvalds

[PATCH] 2.5.22: common code changes for s/390.

1) Add __s390__ to the list of architectures that use unsigned int as
   type for rautofs_wqt_t. __s390__ is defined for both 31-bit and 64-bit
   linux for s/390. Both architectures are fine with unsigned int since
   sizeof(unsigned int) == sizeof(unsigned long) for 31 bit s/390.
2) Remove early initialization call ccwcache_init(). It doesn't exists
   anymore.
3) Remove special case for irq_stat. We moved the irq_stat structure out
   of the lowcore.
4) Replace acquire_console_sem with down_trylock & return to avoid an
   endless trap loop if console_unblank is called from interrupt context
   and the console semaphore is taken.
parent dfbb3f53
......@@ -45,7 +45,8 @@
* If so, 32-bit user-space code should be backwards compatible.
*/
#if defined(__sparc__) || defined(__mips__) || defined(__x86_64__) || defined(__powerpc__)
#if defined(__sparc__) || defined(__mips__) || defined(__x86_64) \
|| defined(__powerpc__) || defined(__s390__)
typedef unsigned int autofs_wqt_t;
#else
typedef unsigned long autofs_wqt_t;
......
......@@ -34,7 +34,6 @@
#if defined(CONFIG_ARCH_S390)
#include <asm/s390mach.h>
#include <asm/ccwcache.h>
#endif
#ifdef CONFIG_MTRR
......@@ -393,9 +392,6 @@ asmlinkage void __init start_kernel(void)
buffer_init();
vfs_caches_init(mempages);
radix_tree_init();
#if defined(CONFIG_ARCH_S390)
ccwcache_init();
#endif
signals_init();
#ifdef CONFIG_PROC_FS
proc_root_init();
......
......@@ -388,9 +388,7 @@ EXPORT_SYMBOL(add_timer);
EXPORT_SYMBOL(del_timer);
EXPORT_SYMBOL(request_irq);
EXPORT_SYMBOL(free_irq);
#if !defined(CONFIG_ARCH_S390)
EXPORT_SYMBOL(irq_stat); /* No separate irq_stat for s390, it is part of PSA */
#endif
EXPORT_SYMBOL(irq_stat);
/* waitqueue handling */
EXPORT_SYMBOL(add_wait_queue);
......
......@@ -553,7 +553,14 @@ void console_unblank(void)
{
struct console *c;
acquire_console_sem();
/*
* Try to get the console semaphore. If someone else owns it
* we have to return without unblanking because console_unblank
* may be called in interrupt context.
*/
if (down_trylock(&console_sem) != 0)
return;
console_may_schedule = 0;
for (c = console_drivers; c != NULL; c = c->next)
if ((c->flags & CON_ENABLED) && c->unblank)
c->unblank();
......
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