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 @@ ...@@ -45,7 +45,8 @@
* If so, 32-bit user-space code should be backwards compatible. * 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; typedef unsigned int autofs_wqt_t;
#else #else
typedef unsigned long autofs_wqt_t; typedef unsigned long autofs_wqt_t;
......
...@@ -34,7 +34,6 @@ ...@@ -34,7 +34,6 @@
#if defined(CONFIG_ARCH_S390) #if defined(CONFIG_ARCH_S390)
#include <asm/s390mach.h> #include <asm/s390mach.h>
#include <asm/ccwcache.h>
#endif #endif
#ifdef CONFIG_MTRR #ifdef CONFIG_MTRR
...@@ -393,9 +392,6 @@ asmlinkage void __init start_kernel(void) ...@@ -393,9 +392,6 @@ asmlinkage void __init start_kernel(void)
buffer_init(); buffer_init();
vfs_caches_init(mempages); vfs_caches_init(mempages);
radix_tree_init(); radix_tree_init();
#if defined(CONFIG_ARCH_S390)
ccwcache_init();
#endif
signals_init(); signals_init();
#ifdef CONFIG_PROC_FS #ifdef CONFIG_PROC_FS
proc_root_init(); proc_root_init();
......
...@@ -388,9 +388,7 @@ EXPORT_SYMBOL(add_timer); ...@@ -388,9 +388,7 @@ EXPORT_SYMBOL(add_timer);
EXPORT_SYMBOL(del_timer); EXPORT_SYMBOL(del_timer);
EXPORT_SYMBOL(request_irq); EXPORT_SYMBOL(request_irq);
EXPORT_SYMBOL(free_irq); EXPORT_SYMBOL(free_irq);
#if !defined(CONFIG_ARCH_S390) EXPORT_SYMBOL(irq_stat);
EXPORT_SYMBOL(irq_stat); /* No separate irq_stat for s390, it is part of PSA */
#endif
/* waitqueue handling */ /* waitqueue handling */
EXPORT_SYMBOL(add_wait_queue); EXPORT_SYMBOL(add_wait_queue);
......
...@@ -553,7 +553,14 @@ void console_unblank(void) ...@@ -553,7 +553,14 @@ void console_unblank(void)
{ {
struct console *c; 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) for (c = console_drivers; c != NULL; c = c->next)
if ((c->flags & CON_ENABLED) && c->unblank) if ((c->flags & CON_ENABLED) && c->unblank)
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